목록개발 (301)
오늘은 upco 프로젝트 진행 중 알게 된 geo API 에 대해 포스팅한다. geo API geo API 는 Redis에서 제공하는 서비스 중 하나로 그 이름 말마따나 지리적 위치에 대한 API를 의미한다. 내가 geo API를 선택한 이유로는, 이미 사용해본 적 있는 redis 내에서 서비스한다는 이유도 있었지만 '특정 위치를 기준으로 특정 범위 내에 존재하는 데이터를 반환'할 수 있는 메서드가 존재한다는 것이 그 이유였다. 먼저 위치 정보를 저장하는 로직에 대해 다룬다. async saveLocation({ email, location }): Promise { const { lat, lng } = location; // redis 환경 셋팅 const redisInfo: RedisOptions = ..
코드캠프 내 프로젝트 시작 후 일주일이 지났다. 오늘은 그간 있었던 내용들을 포스팅하고 최대한 시간순서대로 정리하는 시간을 가져본다. 1일차. 프로젝트 첫날은 팀원 배정 후 역할을 나누었고, 나는 팀장을 맡게 되었다. 장(長)의 역할은 익숙한 편이라 자신이 있었다. 역할을 선정한 이후에는 어떤 서비스를 만들지 함께 고민했다. 내가 제시한 아이디어는 기각되었지만, 아이디어가 변형되어 결국 '실시간 유저들 위치정보를 제공하는 동네친구 찾기 서비스'로 결정되었다. 단순히 한 사람의 위치정보가 아닌, 다른 유저들의 위치정보까지 제공하는 기능, 채팅을 포함한 화상채팅 기능을 넣어 다른 팀들과 다른 차별점을 둘 수 있다는 것이 그 이유였다. 이후 팀장으로서 주말동안 할 것에 대해, 각자의 역할에 따라 할 일을 부여..
코드캠프 선택 이유 처음 코드캠프에 대해 알게 된 것은 불쑥 개발자로 취업했다는 친한 친구의 얘기부터였다. 비전공자였던 친구가 꽤 좋은 조건으로 그것도 코드캠프를 수료하고 한 달이 채 되지 않아 취업했다니, 사실 꽤 놀랐다. 내가 얘기를 듣고 혹해보인다는 표정을 짓자 친구는 내게, 너도 비전공자지만 잘할 수 있을 것이라 얘기를 해주자 그 말에 자신감을 얻어 코드캠프에 대한 정보를 찾기 시작했다. 물론, 친구따라 강남간다고 코드캠프를 선택한 것은 아니었다. 지갑과 프로그래밍 지식이 가벼운 나였기에, 최대한 단 기간에 수료할 수 있으며 코딩에 대한 기본적인 개념을 잡아줄 수 있는 커리큘럼을 가진 곳이여야 했다. 그리고 며칠 간 수소문하다가 가장 내 이상과 적합하다고 생각한 곳이 코드캠프였고 내 성향과 가장 ..
지난 8주, 너는 그간 열렬히 달렸느냐 스스로 묻는다면 쉬이 대답할 수 없다. 하지만 달리다 지칠 땐 그자리에 멈추지 않고 걷기라도 했다는 점에 대해서는 내게 흠뻑 칭찬해주고 싶다. 내가 두 달간 무사히 코드캠프 교육 과정을 수강한 것에 대해서는 내 주변사람들의 공이 컸다. 먼저 내 의사를 지지해주고 어제와 오늘 모두 같은 자리에서 응원해준 가족들과, 바빴던 내 시간에 맞춰서까지 기꺼이 술을 사주었던 친구들, 하루 중 가장 많은 시간을 함께 보내며 가벼운 농담과 고민거리를 나누던 살가운 동기들, 그리고 키보드와 마우스처럼 늘 닿는 자리에서 도움을 주고자 노력해주셨던 멘토님들까지. 한자한자 써내려가며 왜 그동안 모든 감사함을 털어내지 못했는가에 대해 내 그릇이 아직 부족하다는 것을 다시 깨닫는 지금이다. ..
Gitflow gitflow 란 Git 브랜치를 관리하기 위한 git workflow 를 말한다. 브랜치 브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다. 이때 해당 브랜치는 작업 중 타인의 작업에 의해 영향을 받거나 주지 않는다. 그리고 만들어진 브랜치는 다른 브랜치와 병합(merge)함으로써 새로운 브랜치를 새로 생성할 수도 있다. 브랜치 5종류 1. master 브랜치 : gitflow 에서 병합의 기준이 되는 브랜치로, 어플리케이션을 배포하는 역할을 한다. 2. develop 브랜치 : 릴리즈 버전 개발을 진행하는 브랜치로, 어떤 기능의 구현이 필요한 경우 develop 브랜치에서 브랜치를 생성한 후 개발을 하며, 개발이 완료된 경우는 develop 브랜치에 다시 병합시키는 역할을 한다. ..
CI / CD CI / CD 란 개발의 시작부터 끝인 배포까지의 모든 단계를 자동화하여 효율적이면서도 빠르게 배포하는 것을 의미한다. CI / CD 를 사용할 경우, 애플리케이션을 보다 더 짧은 주기로 고객에게 제공할 수 있다는 장점이 있다. CI / CD 를 정확히 구분하자면, Continuous Integration : 지속적 통합 Continuous Delivery : 지속적 서비스 제공 Continuous Deployment : 지속적 배포 총 세 가지로 나뉜다. CI / CD 파이프라인 CI (Continuous Integration / 지속적 통합) CI 란 개발자를 위한 자동화 프로세스를 의미한다. CI 가 제대로 구현될 경우, 애플리케이션 코드의 변경 사항이 정기적으로 빌드&테스트를 거쳐 ..
Kubernetes Kubernetes (이하 쿠버네티스)는 컨테이너 관리자로 컨테이너 운영을 자동화하기 위한 도구다. 도커 스웜(Docker swarm) / 메소스(Mesos) 등과 같은 역할을 하는 도구라고 볼 수 있으며, 위와 같은 도구들은 일컬어 오케스트레이션 도구라고도 한다. Kubernetes Cluster 쿠버네티스 클러스터는 Kubernetes의 여러 리소스를 관리하기 위한 집합체다. 그리고 클러스터는 노드 > 파드 > 컨테이너 등이 구성되어 이루어져있다. Node ( Master node / worker node) 노드는 클러스터 안의 가장 큰 개념으로, 마스터 노드와 워커 노드로 구분된다. MasterNode 마스터 노드는 클러스터 전체(워커 노드들)를 관리하는 서버이며 클러스터에 핵심..