-
zych1751's profile image
zych1751
September 18, 2019
problem solving 1
문제풀이를 하면서 재미있었던 문제를 소개하고자 간단하게 문제 설명과 풀이를 작성해보았습니다. Min Max Convert (SEERC 2018) $N (N \leq 100,000)$개의 숫자를 가진 배열 $A, B$가 주어질 때, 2가지 쿼리를 이용하여 $A$ 배열을 $B$ 배열로 만들 수 있으면 해당 쿼리를 출력하고 불가능하면 -1을 출력하는 문제입니다. 그리고 가능한 경우에는 쿼리를 $2*N$ 번 이하로 사용해서 만들어야 합니다. 첫번째 쿼리는 $[a, b]$ 구간의 숫자들을 모두 해당 구간의 최대값으로 변경하는 쿼리고, 두번째 쿼리는 $[a, b]$ 구간의 숫자들을 모두 해당 구간의 최소값으로...
-
zych1751's profile image
zych1751
August 17, 2019
websocket, socket.io를 이용한 양방향 통신
웹 브라우저에서 양방향 통신을 가능하게 해주는 websocket, socket.io에 대해 공부한 내용에 대하여 정리했습니다. 웹 브라우저 에서의 양방향 통신 기존 웹페이지에서 사용하는 http 프로토콜은 요청/응답 패러다임이기에 클라이언트에서 요청을 보내야만 그에 대한 응답을 받습니다. 옛날 홈페이지의 경우에는 동적인 홈페이지가 거의 없어서 큰 문제가 없었으나 동적인 기능이 많이 요구가 됩니다. 그러다 보니 요청을 보내지 않아도 서버에서 클라이언트쪽으로 데이터를 보내야 하는 경우도 종종 생기고는 합니다. 하지만 http 프로토콜로 통신하는 경우 특성상 연결이 유지되지 않아서 서버에서 먼저 요청을 보내는 것이...
-
zych1751's profile image
zych1751
July 21, 2019
Google Test와 gcov 소개
이 글에서는 Google Test를 이용하여 간단한 c++ 유닛 테스트 코드를 작성해보고 이후 gcov를 이용하여 코드 커버리지를 측정하는 방법에 대해서 다뤄보겠습니다. 유닛 테스트란? 유닛 테스트는 특정 모듈(함수 or 특정 코드)이 내가 원하는 바 대로 정확히 작동하는지 검증하는 절차입니다. 즉, 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차를 말합니다. 우리는 이를 자동화하고 반복할 수 있게 하여 코드가 수정되어 문제가 발생하였을 경우에 이를 빠르게 찾고 수정할 수 있도록 해주고, 유닛 테스트를 통과했다면 해당 모듈이 잘 작동하고 있음을 확신하고...
-
zych1751's profile image
zych1751
January 8, 2019
리액트 배포 및 자동화
리액트의 개발을 마치고 서버를 통해 배포할 때의 과정을 간단하게 정리해보았습니다. 리액트라고 적어 놓긴 했지만 SPA(Single Page Application)라면 굳이 리액트가 아니어도 같은 방법으로 배포가 가능합니다. 보통 aws, firebase 같은 CDN 서비스를 이용하여 배포, 관리를 많이 하기도 하지만 이 글에서는 서버에서 직접 nginx, docker를 이용하여 배포하는 과정을 다루며 추가로 github과 연동이 되는 travis를 이용하여 자동화를 합니다. 이 글에서 사용되는 소스 코드는 이 링크에서 확인할 수 있습니다. 해당 소스 코드는 create-react-app을 이용하여 만들어지는 기본 소스 코드에서 자동화, 배포할...