일지/TIL 79

TIL 220826 - 클론코딩 마무리, 새로운 시작 전

클론 코딩이 마무리되었다. 에어비앤비를 클론 하면서 많은 기능을 축소해서 했지만, 우리가 정한 기본 스코프는 모두 깔끔하게 구현을 했고, 프론트에서도 UI를 정말 비슷하게 만들어주어서 좋은 이야기를 들을 수 있었다. 그리고 마지막 날에 타임어택으로 무한 스크롤을 적용할 수 있어서 좋은 경험이었다. 백앤드인 나는 전부터 오프셋 기반, 커서 기반에 대해서 둘 다 준비했는데 프론트가 너무 바쁘다 보니 적용할 여력이 없었는데 딱 마침 오늘 시간이 좀 남는다고 해서 무한 스크롤도 적용해보고, 혼자 cors를 이용해서 특정 도메인만 지정해서 api통신을 허락하는 보안 적인 부분도 해볼 수 있었다. 클론 코딩 때 미니 프로젝트랑 너무 다를 게 없어서 이번 주 얻어가는 게 너무 없으면 어떻게 하지 하는 걱정이 컸는데 ..

일지/TIL 2022.08.26

TIL 220824 - 스파르타 커피챗(회사탐방)

오늘은 특별한 경험을 했다. 어제 스파르타에서 커피 챗 참여를 권유받아서 팀원들께 양해를 구하고 잠깐 스파르타 본사에 갔다 왔다. 무슨 이유로 불렀을까? 하는 기대감과 누가 올까 하는 궁금증으로 선릉에 있는 본사에 갔다. 오랜만에 외출을 해서 그런지 걷는 것조차 너무 좋았는데 얼마 안 걸었는데 어질어질함을 느끼고 아 진짜 지금까지 정말 앉아서 코딩만 했구나를 느꼈다. 서울에 있는 본사에 가보니 으리으리한 빌딩에 위치했는데 수많은 직장인들을 보면서 '아 나도 빨리 수료하고 좋은 곳에 취직해서 좀 더 의미 있게 살고 싶다'라는 생각과 동기부여와 자극이 느껴졌다. 그 후 회사에 들어가 사람들을 기다리니 보현님, 효선님, 도윤님이 오셨다. 항해를 하면서 항상 온라인에서 캠으로만 보던 사람을 직접 보니 정말 감회..

일지/TIL 2022.08.25

TIL 220823

오늘은 어제 중간 멘토링에서 나온 매니저님들의 조언을 토대로 클론 코딩하는 에어비앤비의 모습을 따라 하기로 결정했다. 그에 맞춰서 프론트는 입력받는 값을 추가하고, 뷰를 더 만들기로 했고, 백앤드에서는 추가하는 값만큼 새로운 DB 모델을 만들기로 했다. 프론트와 같이 화면을 공유하면서 어떤 값을 어떤 타입으로 줄지, 변수명은 무엇으로 할지 정한 뒤 각자 작업에 들어갔다. 내가 맡았던 게시물의 모델이 바뀌기 때문에 item 테이블의 모델을 수정하고, 다시 테이블을 생성해서 디비를 구축하였다. 그 후 추가로 받는 값을 저장하고, 저장한 값을 잘 보여줄 수 있게 로직을 수정하여 재배포를 하여 일을 마쳤다. 그렇게 오전을 보내고 어제 매니저님이 말씀하신 데이터베이스 정규화에 대해서 찾아보고 개인 공부를 하였다...

일지/TIL 2022.08.24

TIL 220822

오늘은 백앤드에서는 주요 기능들은 거의 완성해서 다른 분들의 코드를 같이 봐주고, 나 혼자 공부하는 시간을 가졌다. 오늘은 무한 스크롤 기능을 구현하기 위해서 페이지 네이션을 공부하고 코드로 작성해 보았다. 오늘 하면서 알게 된 부분은 페이지 네이션에서 오프셋 방법과 커서 방법이 있고, 오프셋은 내가 평소에 보는 페이지 이동이 있는 그런 일반적인 방법을 말하고, 주로 무한 스크롤은 커서 기반 페이지 네이션을 사용한다고 한다. 그 이유는 오프셋은 새로운 요청을 보배는 사이 데이터의 변화가 생기면 중복 / 누락되는 데이터가 생기는데 커서 기반은 마지막 데이터의 다음 꺼를 콕 집어 가져오기 때문에 중복되는 데이터가 없기 때문이다. 그래서 그와 관련한 블로그들을 많이 찾아보고 적용할 만한 코드를 기반으로 활용해..

일지/TIL 2022.08.23

TIL 220820

클론 코딩 2일 차 미니 프로젝트와 기능이 별 다를 게 없어서 그런지 어제 바로 모델을 생성하고, 절반 정도 기능 구현을 했다. 오늘은 수정 및 삭제, 그리고 좋아요 등록 기능을 만들었다. 전체 게시글 안에 좋아요 표시와 댓글 평점의 평균값을 넣어 보내드리려고 했지만 이 부분이 생각처럼 잘되진 않았다. 각 게시글 안에 불리언 타입으로 주지는 못하고, 해당 사용자가 좋아요 누른 게시글의 키값을 따로 배열로 만들어 줄 수 있었다. 하루 종일 댓글의 평균값을 구하려고 했는데 결국 못했다. 콜백 지옥에 다시 한번 빠졌다. 그땐 2중이었는데 이번에 3중이라 어렵다.. 결국 마지노선으로 각 게시물의 달린 댓글의 값을 모두 가져올 수는 있었는데 거기서 가각 다 더해서 총합으로 나누지는 못하였다.. 프론트 분들 죄송해..

일지/TIL 2022.08.20

TIL 220818 - 클론코딩 시작

클론 코딩이 시작되었다. 미니 프로젝트로 협업을 처음 시작해서 1주일이 진짜 빨리 지나갔는데 또다시 협업을 통해서 만드는 거라니.. ㅋ 어렵다 어려워 팀원들과 또다시 친해져야 하고, 주제도 정해야 하고 하... 아침에 일어나서 출석부를 보니 모두 새로운 사람들과 만나게 되었다. 어떻게 또 친해지지.. 그중 한 분은 미니 프로젝트 때 자기주장이 조금 강하셔서 얘기가 나오던 사람이었다. 아.. 이분과는 어떻게 진행이 될까 했다. 발제가 끝나고 팀원들이 전부 모여서 간단한 소개를 하고, 잠시 주제를 찾아보고 다시 모여서 무엇을 클론 코딩할지 얘기를 했다. 그중 나온 게 홍루이젠의 홈페이지(프랜차이즈 가게 소개), 링크드(OTT 구독 파티 구하는 사이트), 에어비앤비(숙소 예약) 이 나오고 어떤 걸 정해야 적당..

일지/TIL 2022.08.20

TIL 220818 - 인스턴스 접속불가..ㅠ

으... 미니 프로젝트가 끝났다... 정말 항해 시작하고 가장 빨리 지나간 주였다. 너무 바쁘고, 생각할게 많아서? 백앤드인 나는 주특기 숙달 느낌이 많이 들었지만, 그래도 해야 할 일은 많았고, 처음 써보는 기능들도 구현하다 보니 시간은 정말 빨리 지나갔다. 그리고 프로트 분들이 많이 힘드셨을 것 같다. 처음 써보는 기술들과 실력적으로도 많이 뛰어난 편은 아니셔서 고생이 많으셨다. 약간 구글링을 하면서 이게 왜 되지?라는 느낌보다는 하나하나 다 찍어보면서 되나 안 되나? 식으로 하셔서 오래 걸렸던 것 같다. 하지만, 열정만큼은 정말 너무 뛰어나셨다. 성격도 너무 좋으신 분들 이어서 나도 의지가 많이 되었고, 자극도 많이 되었다. 오늘은 마지막 프로젝트 제출을 하기 때문에 뷰를 완성하고, 머지해서 서버에..

일지/TIL 2022.08.19

TIL 220818

오늘은 디비에 비밀번호를 저장할 때 사용하는 암호화 작업을 공부하고 적용시켜봤다. 아무래도 비밀번호 같은 매우 중요한 정보들은 그대로 저장하면 안 된다. 관리자도 그 정보를 직접적으로 보아서는 안되고, 혹여나 DB서버가 해커에게 탈취를 당하더라도 암호화를 시켜 2차 피해를 막을 수 있다. 그렇기 때문에 중요한 정보들은 암호화를 통해 항상 저장해야 한다고 익히 들었는데 항상 시간이 부족해서 제대로 공부할 시간이 없어 적용 못했는데 이번에 개인 공부시간이 조금 생겨 bcrypt를 통해서 암호화를 적용시켰다. node에서 기본적으로 제공하는 모듈이 있지만, bcrypt가 보안성도 더 높고, 사용도 쉬워서 이 모듈을 설치하여 적용해서 비밀번호를 저장했다. 이렇게 저장한 암호는 단방향 해쉬 함수로 암호화했기 때문..

일지/TIL 2022.08.18

TIL 220817 - 새로운 기능 습득

미니 프로젝트의 중간 정도가 지나고 있는데 서버에서는 기능을 다 끝내서 프론트에서 힘든 일이 있거나 에러가 있을 땐 프론트와 얘기를 하면서 오류를 해결하고 남는 시간에는 개인 공부? 다른 기능들을 추가할 수 있도록 혼자 공부하고 연습해보고 있다. 지금 내가 공부하고 있는 거는 swagger는 api 명세서를 다른 파일에서 보통 작성해서 공유를 하는데 서버에서 api를 보기 좋은 UI로 만들어서 모두가 확인하고 공유할 수 있도록 도와주는 프레임워크이다. 어제 자기 전에 잠깐 찾아보고 오늘 아침부터 어제 찾은 자료들을 제대로 보고 하나씩 시도해 보고 있다. 처음 설치하고, 설정까지는 그대로 따라 하면서 쉽게 따라갔는데 swagger를 적용하는 것부터 조금 어렵더니 중간에 토큰을 사용하는 것에서 애를 많이 먹..

일지/TIL 2022.08.17

TIL 220815

주말에 늦잠을 자서 월요일 새벽은 항상 잠이 안 온다. 뭐 덕분에 게더에서 공부도 좀 하고, 프로젝트 정리도 하고, 만들었던 코드 보수도 하면서 새벽까지 공부를 했다. 프론트 팀원들도 몇 분 오셔서 같이 질문하면서 로그인 쪽에 대해서 얘기를 많이 했다. 아무래도 토큰에 대한 개념이나 req, res에 대한 것에 익숙하지 않으셔서 어려워하셨다. 최대한 쉽게 설명드리고 싶은데 나도 많이 부족하지만, 설명을 들어서 조금씩 진전이 있는 것 같다. 리액트에 대해서 모르고 내가 직접 코드를 만지는 게 아니다 보니 힘들었다. 콘솔 로그를 내 마음대로 찍어볼 수가 없어 저렇게 해주세요 이렇게 해보시겠어요? 말 밖에.. 좀 죄송스러웠지만, 뭐 이것도 다 과제의 일부니까 하면서 생각했다. 어느 정도 작업이 끝나곤 팀원들이..

일지/TIL 2022.08.15