분류 전체보기
MS Azure로 갈아타기 - 4. React 어플리케이션 만들기
MS Azure로 갈아타기 - 4. React 어플리케이션 만들기
2019.01.30이번 포스트에서는 기본적인 React 어플리케이션을 생성하고 Github에 등록하여 소스 관리가 가능하도록 구성해보겠습니다. 다음 과정으로 진행하겠습니다. React 어플리케이션 생성 Github 등록 React 어플리케이션 생성 react app을 생성합니다. 로컬 머신의 nvm을 통해 Node 8.10.0 버전 이상을 설치하고 진행하시기 바랍니다. 만약 하위 버전을 사용해야 한다면, create-react-app 모듈을 별도 설치해 진행해주셔도 무방합니다. node --version # v8.10.0 이상 npx create-react-app my-react-app react app을 실행해봅니다. 브라우저에 정상적으로 뜬다면 성공입니다. cd my-react-app npm start Compiled..
MS Azure로 갈아타기 - 3. 웹서버 실행하기
MS Azure로 갈아타기 - 3. 웹서버 실행하기
2019.01.20저번 포스트에서 리눅스 가상머신 준비를 마쳤습니다. 이번에는 아래 과정을 진행해보겠습니다. Nginx 설치 웹 어플리케이션 연결 도메인 설정 (Optional) SSL 인증서 설정 (Optional) nginx 설치 CentOS의 경우 nginx 설치는 yum으로 진행하면 됩니다. 운영체제에 따라 다르겠지만, CentOS가 아니라면 nginx의 공식 문서를 참고하여 설치하도록 합시다. sudo yum -y update && sudo yum -y install epel-release nginx 설치가 다 됐으면 nginx를 구동해봅시다. 시스템이 재시작됐을 때 자동으로 nginx를 시작하게 하고싶다면 enable을 해줘야 합니다. sudo systemctl enable nginx sudo systemctl..
MS Azure로 갈아타기 - 2. 가상머신 만들기
MS Azure로 갈아타기 - 2. 가상머신 만들기
2019.01.20이번 포스트에서는 아래 과정을 진행해보겠습니다. (MS Azure 공식 문서에 대부분 나와 있으니 참고하셔도 됩니다) 가상머신 생성 가상머신 접속 디스크 마운트 (Optional) 가상머신 생성 가상머신을 추가합니다. 홈 > 가상머신 > 추가 선택 구독 및 리소스 그룹을 설정합니다. 그룹이 없는 경우 리소스 그룹을 새로 만들기 생성합니다. 인스턴스 정보를 입력합니다. 이미지: 선호하는 운영체제를 선택합니다. 저는 CentOS-based 7.5로 진행해보겠습니다. 지역, 가용성, 크기: 각각 대한민국, 사용 안 함, B1s로 선택합니다. 관리자 계정 정보를 입력합니다. SSH 키 방식을 선택하고 사용자 이름, SSH 키 정보를 넣어줍니다. (SSH 키 생성 방법 참고) 네트워크 인바운드를 설정합니다. 여기..
MS Azure로 갈아타기 - 1. 체험판 계정 만들기
MS Azure로 갈아타기 - 1. 체험판 계정 만들기
2018.12.31Azure 체험 계정 FAQ를 가볍게 흝어보고 시작하겠습니다. 체험판 계정을 통해 제공되는 것은 아래와 같습니다. 12개월 무료 서비스 750시간의 Microsoft Windows Server용 Azure B1S 범용 Virtual Machines 750시간의 Linux용 Azure B1S 범용 Virtual Machines 128GB의 Managed Disks: 64GB(P6) SSD 저장소 2개의 조합, 1GB 스냅숏 및 2백만 개 I/O 작업 5GB의 LRS-Hot Blob Storage: 2백만 개의 읽기, 2백만 개의 쓰기 및 2백만 개의 읽기/목록 작업 5GB의 LRS File Storage: 2백만 개의 읽기, 2백만 개의 목록 및 2백만 개의 기타 파일 작업 데이터베이스 트랜잭션 단위가 1..
MS Azure로 갈아타기 - 0. 시작하며
MS Azure로 갈아타기 - 0. 시작하며
2018.12.31공부도 할 겸 나만의 웹 서버를 갖고싶어 사용한 클라우드 서비스가 있었습니다. Digital Ocean이라는 호스팅 서비스인데, 나름 메이저에 속하면서 가성비도 괜찮아 최근까지 만족스럽게 잘 써 왔습니다. 그런데 얼마 전 친구가 구글 GCP 크레딧을 얻어 사용하는 모습을 보고 혹하게 됐습니다. 그래서 GCP를 들어가 확인해보니, 예전에 무슨 생각이었는지 몰라도 크레딧을 받았었고 그 사실을 까맣게 잊어버려 300$가 그대로 만료되어 있었습니다. 대충 넘어갈 수 있었지만, 전에 AWS 프리티어도 이와 비슷하게 활용하지 못한 전적이 있었기 때문에 어떻게든 체험판 크레딧을 써보자 하고 마음먹게 됐습니다. 그래서 생각한 것이 바로 MS Azure입니다. 알만한 사람은 다 알겠지만 MS 역시 구글, 아마존과 비슷하..
ping은 되는데 curl/wget이 안되는 경우
ping은 되는데 curl/wget이 안되는 경우
2018.12.29최근 리눅스에서 개발 중 특정 서버의 Rest API를 curl/wget으로 호출 시 timeout 에러가 발생한 적이 있습니다. 방화벽 문제를 의심했으나, ping은 가능한 상황입니다. 통신이 가능하므로 방화벽 외의 다른 문제가 있을 것이라고 의심하게 됐습니다. 결론 위의 경우 특정 port의 인바운드/아웃바운드 방화벽이 적용된 것이라고 먼저 의심해봅시다. ping은 port를 사용하지 않는다 흔히 특정 port에 대해 통신 테스트를 할 경우 ping이 아니라 telnet을 사용합니다. ping은 port 옵션이 없기 때문입니다. 여기서 유추해볼 수 있는 것은 ping이 port를 사용하지 않는 통신 방식이라는 것입니다. Protocol curl은 HTTP, FTP, LDAP 등 어플리케이션 계층의 다..
다익스트라 알고리즘 파이썬으로 구현하기 - 최단경로
다익스트라 알고리즘 파이썬으로 구현하기 - 최단경로
2018.12.17https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 다익스트라 알고리즘을 사용해 최단거리를 구하는 문제입니다. 별다른 고민 없이 알고리즘 그대로 파이썬으로 옮겨 적으면 쉽게 통과할 것 같지만, 한 가지 함정이 있습니다. 바로 빠른 IO 처리입니다. 파이썬에서의 빠른 입출력 구현은 input 대신 sys.stdin.readline을 사용하는 것인데, 입출력이 큰 경우 시간 최적화를 위해 습관화하는 것이 좋습니다...
빅데이터 개발자로 거듭나기 - 2019 회고
빅데이터 개발자로 거듭나기 - 2019 회고
2018.12.03빅데이터 엔지니어링 분야의 지식은 방대하기 때문에 처음부터 공부를 시작하기 쉽지 않습니다. 하둡이 뭔지, 스파크가 대세라고 하는데 그건 또 뭔지, 무엇을 알아야 데이터 엔지니어가 될 수 있는건지... 빅데이터 분야의 커리어를 시작하고 싶으나, 자신이 무엇을 모르는지도 모르는 상태로 느껴질 수 있습니다. 작년 말 쯤 저도 이와 비슷한 느낌을 가지고 있었습니다. 하지만, 올 해 배운 것들이 쌓여 점차 블랙박스처럼 느껴졌던 것들이 보이기 시작했고 무엇을 모르는지를 아는 상태가 되었습니다. 빅데이터 엔지니어링이 뭔지 대충 감이 오는 개발자로 거듭난 것이죠. 이번 글에서는 2019년도의 스스로를 회고하며 저의 생각과 느낌 점을 두서 없이 적어보겠습니다. 아쉬운 점, 좋았던 점 입사 초 저는 데이터 엔지니어링 관련..
Tmux 사용하기
Tmux 사용하기
2018.12.02tmux(tty multiplexer)는 아래와 같은 터미널 작업 시 유용한 도구입니다. 멀티 세션 지원 터미널 창 분할 (수평, 수직) 개발자 간 작업 중인 터미널 세션 공유 잘 작성된 cheatsheet가 있으니 헷갈릴 때 참고하면 좋습니다. # 세션 열기 # -s: 세션 이름 부여. 없을 시 0부터 순차 적용 tmux -2 tmux -2 new -s my-session # -2 옵션은 터미널의 256 Color를 세팅하기 위한 옵션입니다. # 이를 지정하지 않으면 vi 에디터의 colorscheme이 제대로 작동하지 않습니다. # 매번 지정이 귀찮다면 아래 명령어로 shortcut을 등록할 수 있습니다. echo "alias tmux='tmux -2'" >> ~/.tmux.conf tmux # 세션..
성당과 시장의 한 구절
성당과 시장의 한 구절
2018.12.02These are the people who proudly call themselves “hackers” — not as the term is now abused by journalists to mean a computer criminal, but in its true and original sense of an enthusiast, an artist, a tinkerer, a problem solver, an expert.
레일즈 Strong parameters 사용하기
레일즈 Strong parameters 사용하기
2018.12.02루비 온 레일즈는 매개변수 검증 방법으로 Strong Parameters를 제공합니다. Strong Parameters를 왜, 어떻게 사용하는지 알아봅시다. Why use? 유효성 검사는 API(특히 Public API)를 개발할 때 기본으로 생각해야 할 부분입니다. 사용자가 문서에 맞게 잘 사용할 수도 있지만, 그렇지 않을 경우를 대비해 방어적으로 만들지 않으면 시스템이 쉽게 무너지기 때문입니다. 아래와 같은 상황을 생각해보겠습니다. case #1 class UserController def create_user user = User.create(params) user.save end end 위의 코드는 전달받은 파라미터를 모델에 넘겨 유저를 생성하는 기본적인 코드입니다. 여기서 파라미터에 이상이 있다..
유향 그래프에서 BFS, DP 사용하기 - ACM Craft
유향 그래프에서 BFS, DP 사용하기 - ACM Craft
2018.11.28https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 유향 그래프에서 인접 노드의 비용을 고려해 최대 소요 시간을 구하는 문제입니다. 문제 분류는 위상정렬로 되어있지만, 더 자주 쓰이는 BFS와 DP로 해결했습니다. BFS (Breadth First Search) 전형적인 bfs 알고리즘 형태로 풀 수 있습니다. indegree가 0인 노드에서 최댓값을 체크하면 됩니다. #include #include #include #include #incl..