클래스/└ 항해99 18

<WIL> 실전 프로젝트 3주차부터 최종발표회까지

🌊 # 11 ~ 13주차 진행사항 프런트엔드 구현부와 실제로 API 테스트를 진행하면서 수정할 부분들이 드러났습니다. 프런트에서 발생할 시나리오를 충분히 예상했다고 생각했지만 막상 실제로 구현하고 보니 오버페치, 언더페치된 부분이 많았습니다. 하나하나 수정해 나가면서 프로젝트가 완성되어가는 기분을 느낄 수 있었습니다. 실전 프로젝트를 진행하며 바쁘다는 핑계로 블로그 관리에는 소홀하였지만 배운점이 많습니다. 스스로 필요한 기능을 구현하기 위해 고민하는 과정에서 많은 성장을 할 수 있었던 점이 강의만 들으며 따라했을 때와 가장 큰 차이점인 것 같습니다. 무엇보다 혼자였다면 하지 못했을 프로젝트의 완성을 이루게 된 것이 가장 큰 성과라고 생각합니다. 최종발표회 (6.3) 최종설명회를 진행하며 멘토님과 여러 파..

<WIL> 실전 프로젝트 2주차 (외부 API 활용시간 단축)

🌊 # 10주차 진행사항 실전 프로젝트를 진행하면서 NestJS, TypeORM, Jest를 다루는 훈련을 하고 있습니다. 이슈 프로젝트에서 유저 주변으로 퀘스트를 생성해서 뿌려주는 로직이 있습니다. 외부 API(kakaI, 공공API)로 좌표와 주소값을 가져오는데 걸리는 시간을 단축시키기 위해 여러가지 고민과 시도를 하는 중입니다. 아래는 해당 로직의 프로세스 입니다. #1. (from 클라이언트) 유저의 좌표값을 받아옴 #2. (from kakao API) 유저의 좌표 값으로 지역(시/구/동) 데이터를 받아옴 #3. (from 공공 API) 지역 데이터로 지역의 개요(전체 주소 갯수 등)를 받아옴 #4. (from 공공 API) 지역의 개요를 활용해 지역 내 전체 주소 중 랜덤한 주소를 받아옴 (전체..

<WIL> 주특기(노드) 3주차 ~ 실전 프로젝트 1주차

🌊 # 8~9주차 8주차 진행사항 주특기 3주차에 TypeScript와 TypeORM 관련 과제가 주어졌습니다. 노드 주특기 분들끼리 실전에는 다같이 NestJS를 활용해 보자는데 의견이 모아졌습니다. 실전 프로젝트 대비를 위해 NestJS를 차근차근 익혀보았습니다. 9주차 진행사항 실전 프로젝트가 시작되었습니다. 기획, API 설계, ERD를 작성하고 피드백 받고 수정하고 하는 과정을 거치는 동안 거의 1주일이 지났습니다. 그리고 협업을 하면서 깃 충돌이 번번히 발생하여 애를 먹고 있습니다. 혼자 작업할 때는 별거 아닌줄 알았던 version control이 협업을 하기 위해서는 조금 더 많은 개념을 알고 있어야 한다는 것을 깨닫게 되었습니다. 현재 이슈 카카오 API와 juso.go.kr의 공공 AP..

<WIL> 주특기(노드) 2주차 진행사항과 N+1 문제

🌊 # 7주차 진행사항 주특기 2-3주차에는 로그인을 포함한 매거진 웹의 API를 만들면서 시작합니다. 이 API를 바탕으로 테스트 코드, 타입스크립트 등을 적용해 나가는 방식으로 진행하고 있습니다. 1주차와 비교해서 큰 차이점은 JWT를 활용한 로그인 구현과 MySQL이라는 관계형 DB를 다루게 된 것입니다. 특히 MySQL을 접하는 것이 DB에 대한 사고를 확장하는데 도움이 많이 된 것 같습니다. 테스트 코드 Jest를 활용하여 테스트 코드를 작성하였습니다. 함수 단위의 유닛 테스트 부터 API를 검증하기 위한 통합 테스트까지 하나씩 작성해 가면서 감을 익힐 수 있었습니다. 레이지 로딩, 이거 로딩, N+1 문제 (숙제...?) 매거진 웹의 게시글을 로드하면서 댓글까지 한꺼번에 불러오는 쿼리를 작성하..

<WIL> NoSQL에서 SQL로

🌊 # 6주차 노드 주특기 1주차 과제는 로그인 없는 게시글, 댓글 CRUD 구현이었습니다. 과제 자체는 어렵지 않아서 기한보다 조금 일찍 끝냈습니다. 디벨롭시킬 부분에 대해서 고민해 보았습니다. 로그인 등의 기능을 붙일 수도 있겠지만, TypeScript 마이그레이션을 해보기로 결심했습니다. 프로젝트 규모가 커지면 TypeScript 마이그레이션에 애를 먹을 것 같아 매도 먼저 맞는 놈이 났다고(?) 간단한 프로젝트에 적용해 보기로 했습니다. 실은 API 테스트, 테스트 코드 작성 등도 하고 싶었으나 프로젝트가 워낙 단순하여 의미없는 테스트를 하게 될 것 같아서 생략하였습니다. 다음번 이 2가지를 염두에 두고 과제를 진행하여 꼭 포함시키고자 합니다. 목요일까지 주특기 1주차를 마무리 짓고 2주차에 접어..

<WIL> 알고리즘 끝! 노드 시작!

🌊 # 5주차 알고리즘 2주차에서 5주차까지 4주간 진행된 알고리즘 학습이 일단락 짓게 되었습니다. 연결리스트, 스택 부터 시작해서 DFS, BFS, DP까지 머리 아팠지만 그만큼 얻은 것도 많은 과정이었습니다. 특히 코드의 흐름을 파악하는 능력이 향상된 것을 느낍니다. 노드 주특기로서 노드 학습을 시작하였습니다. 개인 과제를 진행하면서 코드 한줄한줄 제대로 이해하고 작성하려고 노력 중입니다. 항해톡 지난주에 항해톡 발표를 진행했습니다. 코로나 주간이라고 쉬어간 탓에 금주 내용으로 작성합니다. 트랜잭션을 주제로 발표하였고, 발표를 준비하면서 많은 것을 배울 수 있었습니다. 당연하게도 해당 주제에 대한 이해도가 높아집니다. 구체적으로는 대충 이해하고 넘어간 내용들을 다시 보게 되었습니다. 상대방에게 매끄럽..

<WIL> 알고리즘, 어려운 것, 낯선 것

🌊 # 3주차 심화반을 선택한 관계로 알고리즘이 4주 동안 진행됩니다. 알고리즘에 집중하고 싶었다. 라기보다는 심화반을 선택하는 동료들에게 자극을 받고 싶었습니다. 하지만 하루 종일 알고리즘 풀이를 하는 것이 쉽지만은 않습니다. 당장 프로그래밍 실력이 향상되는 것 같지도 않고, 게다가 알고리즘 풀이 조차도 늘고 있는 것인지 애초에 풀수 있던 문제일 뿐인지 헷갈리기도 합니다. 그럼에도 얻는 것이 있다면 복잡한 구조의 코드를 해석하고 흐름을 이해한다는 것입니다. 반복문과 조건문이 중첩되기 시작하면 코드의 흐름을 따라가기가 어려웠습니다. 자료구조를 비롯한 알고리즘 학습을 집중적으로 하면서 흐름을 따라가는 것이 한층 수월해짐을 느낍니다. 어려운 것이 아니라 낯선 것이었습니다. 늘 그렇듯이. 코드를 작성할 때도 ..

<WIL> 이제 2주 지났다고요?

🌊 # 2주차 3/14(월) 자료구조: 스택 새로운 한주가 시작되었고, 자료구조 학습을 이어나갑니다. 스택 자료구조를 구현하고 문제풀이를 진행하였습니다. 조금씩 익숙해지는 기분이 듭니다. 익숙해짐의 속도보다 다가오는 자료구조들의 속도가 더 빠른 것이 문제입니다. 3/15(화) 자료구조: 큐 큐의 구조를 이해하고 문제풀이를 진행하였습니다. 스택과 비슷한 부분이 있어서 조금 친근한 느낌이 듭니다. 하지만 문제풀이는 다른 차원입니다. 큐를 손에 쥔채로 문제에 접근해 보지만 문제들과 쉽게 친해지기 어려웠습니다. 3/16(수) 자료구조: 해시테이블 '반복없는가장긴문자열'이라는 문제로 과제톡 발표를 하였습니다. 문제부터 가장 긴 제목을 가지고 있었습니다. 해시 테이블을 주제로 진행된 날이라 접목시켜 보고 싶었지만 ..

<WIL> 미니 프로젝트 끝! 하면 바로 알고리즘 시작!

🌊 # 1주차 3/7(월) 미니 프로젝트 1일차 팀원분들과 미니 프로젝트 기획을 하였습니다. 개발에 필요한 소스를 얻기 위해 웹개발 종합반 플러스 강의를 중간중간 학습하였습니다. 저녁에 기술 멘토링과 기획 멘토링이 진행되었습니다. 기술 멘토님과 처음 뵙는 자리라 기술적인 이야기 보다는 일반적인 이야기를 나누었습니다. 기획 멘토링 때는 저희 조가 짠 기획 중 API 설계 등에 대해 질문을 드리고 방향성을 얻을 수 있었습니다. 3/8(화) 미니프로젝트 2일차 협업을 위해 깃 사용법(브랜치, 머지, 풀, 푸쉬)을 익혔습니다. JWT에 대해 학습하였습니다. JWT 방식의 요점은 유저 정보를 서버가 아닌 클라이언트 측에 저장하는 것입니다. 3/9(수) 미니 프로젝트 3일차 파일업로드 기능을 구현하는데 애를 먹었습..