전체 글

전체 글

    3/24 금 (프로젝트 기술 질답(수정중)) TIL

    (최종 프로젝트 진행중)오늘은 프로젝트에서 나올 수 있는 예상 기술 질문에 대한 질답 시간을 가졌다. ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니다. 학습용으로 적합하지 않음을 유념해주세요. ※ 커서 기반 페이지네이션 v.s. 오프셋 기반 페이지네이션 과 각각의 장단점offset 이전/다음 페이지의 결과를 요청할 때 페이지의 번호와 크기를 지정해 이전 페이지의 마지막 결과 행의 오프셋을 사용하여 다음 페이지의 결과를 가져오는 방식이다. offset/limit을 사용한 쿼리 이용장점: 페이지 단위로 구분해 유저가 페이지를 선택하고 이동가능하며 전체 페이지의 갯수를 알 수 있다.직관적이고 구현이 간단하다. (어드민 페이지 같은 단순한 경우에 적합)단점: 데이터 중복, 사용자가 ..

    3/23 목 (이래서 다들 오픈일에 비상 근무 하는 거구나…) TIL, TIT

    (최종 프로젝트 진행중)어제 배포하고 오늘 유저 테스트를 오픈함. 배포환경에서 잘 동작하도록 낮까지 열심히 버그를 수정하고 또 수정하고 하다가 설문을 공지하기로 한 시간보다 한참 지나서야 공지를 올리게 되었다. 이때까지만 해도 고칠 건 대략 다 고쳤으니까 유저 피드백이 들어오는 동안 밥 먹으러 갈 수 있겠거니 하는 생각을 하고 있었더랬지… 또 나름 ‘지금 상태로 유저에게 적발되는(?) 에러도 피드백의 일종이니까, 설문이 마감될 때까지 코드를 고치지 않는 게 타당하지 않겠냐’하는 논의도 팀 내에서 오갔었다. 다시 말하지만 이 모든 생각은 유저가 몰려든 직후 메인 페이지가 다운되기 이전까지의 일이었다. ‘에러도 피드백의 일종이니까’는 무슨, 아예 서비스를 접속도 못해서 피드백 자체가 불가능하게 생겼는데 밥은..

    3/22 수 (HTTPS로 배포하기 사전 조사 및 과정) TIL, TIT

    (최종 프로젝트 진행중)오늘은 서버 배포를 진행하였다. ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니다. 학습용으로 적합하지 않음을 유념해주세요. ※ Heroku로 배포를 결정하기까지 의사 결정 과정로컬 컴퓨터에서 만든 웹 서비스를 빌드하여(정적 파일로 만든 다음에) S3에 배포할 수 있다고 한다. 빌드(Build)란?소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과를 말한다. 인간이 짠 코드를 한 번에 기계어로 변환해주는 작업을 컴파일이라고 하는데, 빌드는 이렇게 컴파일 된 코드를 실제 실행할 수 있는 상태로 만드는 일. (빌드 과정을 도와주는 도구를 Build Tool이라고 함) 정리: Build = Complie + 그 외 작업 (테스..

    3/20 월 (할 일 목록 정해 개발 중) TIL

    (최종 프로젝트 진행중)할 일 users.module에 위치를 인증할 수 있도록 하는 PATCH api 만들기 users.address_certified 를 true(=1)로 바꾸는 PATCH api 작성 ‘동네명’이 같거나, 좌표 사이 거리가 1km 이내라면 ‘동네 인증이 완료되었습니다’ 메세지와 함께 ⇒ 프로트에서 체크 후 PATCH api 호출 이 프론트를 어디 페이지에 붙일 것인가? 일단 ‘위치 인증하는 페이지’를 만든다. → 아니다. 그냥 js 함수만 만들어둔다. … → 으아 복잡하다. 그냥 페이지로 가서 버튼을 누르면 동작하게 하자!후보1: 최초 회원가입 시 ‘위치 인증 하러 가시겠습니까?’ 모달과 함께 위치 인증 js 함수를 호출한다. 후보2: 아니면 상단바에 위치 미인증 유저일 시 ‘위치인..

    3/19 일 (Jest로 프론트 동작 테스트하기 연구중) TIL

    (최종 프로젝트 진행중)할 일 mooin_cat_dev DB를 새로 만들고 구조 먼저 따오고 데이터 복사하기 ‘mooin_cat_dev’라는 이름으로 새 DB 만들기 서버 켜서 synchronization: true로 외래키 설정이랑 디폴트값 같은 설정 그대로 빈 테이블들 만들기 mooin_cat에서 테이블들 선택하여 ‘데이터 내보내기’로 mooin_cat_dev에 타겟 지정하여 데이터 복사하기 share_product 파트의 외래키와 관련해서 에러 메세지가 두 번 떳지만 일단 필요한 데이터는 다 들어옴 확인. (참고: https://islet4you.tistory.com/entry/dbeaver-table-data-다른-DB로-내보내기) users 테이블이 ‘우편번호 → 도로명 주소’, ‘동네명’, ‘..

    3/18 토 (localhost에 HTTPS 연결하기와 Geolocation 웹 API 실험) TIL, TIT

    (최종 프로젝트 진행중)할 일 Date input타입을 서버로 보내기 시작 날짜와 끝 날짜를 requests 테이블에 저장하기 ‘모집중|모집완료’ 컬럼을 requests 테이블에 추가하기 ‘작성 완료’ 버튼 ajax 연결하기 수정하기 페이지에 기본 글과 함께 불러와놓기 작성자 본인이면 수정하기 및 삭제 버튼이 나타나도록 하기 ‘수정 완료’ 버튼 ajax 연결하기 ‘모집중’→’모집완료’로 바꿀 방법 생각하기 삭제는 마이페이지에 가서 하도록 할 생각. ? user에게서 받은 집주소로 geoCoder.address…()으로 좌표와 동네명 얻기. ‘처음에 테이블 구조를 단순히 address만 있는 항목으로 만들어서 아직 수정하지 못했다” ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니..

    3/17 금 (<img> 경로 설정 문제) TIL, TIT

    3/17 금 (<img> 경로 설정 문제) TIL, TIT

    (최종 프로젝트 진행중)할 일 Date input타입을 서버로 보내기 시작 날짜와 끝 날짜를 requests 테이블에 저장하기 ‘모집중|모집완료’ 컬럼을 requests 테이블에 추가하기 ‘작성 완료’ 버튼 ajax 연결하기 수정하기 페이지에 기본 글과 함께 불러와놓기 작성자 본인이면 수정하기 및 삭제 버튼이 나타나도록 하기 ‘수정 완료’ 버튼 ajax 연결하기 ‘모집중’→’모집완료’로 바꿀 방법 생각하기 삭제는 마이페이지에 가서 하도록 할 생각. ? user에게서 받은 집주소로 geoCoder.address…()으로 좌표와 동네명 얻기. ‘처음에 테이블 구조를 단순히 address만 있는 항목으로 만들어서 아직 수정하지 못했다” ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니..

    3/16 목 (Geolocation API와 Kakao Map으로 위치 인증 간단히 구현하기) TIL

    (최종 프로젝트 진행중)할 일 Date input타입을 서버로 보내기 시작 날짜와 끝 날짜를 requests 테이블에 저장하기 ‘모집중|모집완료’ 컬럼을 requests 테이블에 추가하기 ‘작성 완료’ 버튼 ajax 연결하기 수정하기 페이지에 기본 글과 함께 불러와놓기 작성자 본인이면 수정하기 및 삭제 버튼이 나타나도록 하기 ‘수정 완료’ 버튼 ajax 연결하기 ‘모집중’→’모집완료’로 바꿀 방법 생각하기 삭제는 마이페이지에 가서 하도록 할 생각. ? user에게서 받은 집주소로 geoCoder.address…()으로 좌표와 동네명 얻기. ‘처음에 테이블 구조를 단순히 address만 있는 항목으로 만들어서 아직 수정하지 못했다” ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니..

    3/15 수 (Kakao Map으로 위치 서비스 만드는 중) TIL

    3/15 수 (Kakao Map으로 위치 서비스 만드는 중) TIL

    (최종 프로젝트 진행중) 오늘 한 일 카카오 우편 서비스 API가 좌표 ↔ 주소 로 바로바로 전환해주는지. 특히 좌표를 주소로. 어제 만든 페이지를 손보고 새 페이지 작업에 들어갔다. 품앗이 신청 페이지(진행중)품앗이 목록 조회 페이지품앗이 상세 조회 페이지 kakao developers - REST API 키 발급받는 페이지:Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.https://developers.kakao.com/ ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니다. 학습용으로 적합하지 않음을 유념해주세요. ※ TypeORM findOne()을 하면..

    3/14 화 (ejs는 일일이 눈으로 검사해서 에러를 찾아야 함이 불편) TIL, TIT

    아래처럼 의 최하단에 두면 위와 같은 에러가 난다. ... 전에 script는 최대한 아래에 두라고 했던 것 같은데 왜 얘는 반대로 작동하고 있는지 모르겠다. [Nest.js] cookie로 하는 로그인 인증 처리하기req.user를 계속 못 받아오다가 공식 문서 첫머리에 바로 cookie-parser가 전역으로 필요하다고 해서 설정해주니 해결됐다. Documentation | NestJS - A progressive Node.js frameworkNest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript a..

    3/13 월 (VS Code의 Rest Client 옵션을 초기화해주다) TIL, TIT

    (최종 프로젝트 진행중) 이어서 할 일: 카카오 우편 서비스 API가 좌표 ↔ 주소 로 바로바로 전환해주는지. 특히 좌표를 주소로. → 유저에게 동네 인증하게 하는 흐름 짜보기. ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니다. 학습용으로 적합하지 않음을 유념해주세요. ※ 별 게 다 문제가 생긴다VS Code에서 Rest Client 확장 프로그램으로 HTTP 요청을 보낼 때 새로 뜨는 창이 갑자기 안 떠서 그걸 검색하느라 시간이 가고 → Ctrl + Shift + P에 ‘settings’로 들어가서 rest client 관련 preview 옵션 체크박스를 해제했다가 다시 해주니 되었고 저기서 나오는 수많은 옵션을 켰다 껐다 하다가 결국 Rest Client를 지우고 재설치한..

    3/12 일 (req.user 정보를 불러오지 못할 땐 app.module 확인하기) TIL, TIT

    (최종 프로젝트 진행중)한 일: queryBuilder 문서 보던중. 두 번 조인과 그 때 select하는 법, (https://typeorm.io/select-query-builder#join-without-selection) 그렇게 가져온 ‘정재된 결과물’을 partial 타입으로 넘겨서 테스트 할 것인지… 그렇다면 어떻게.. …? 테스트 코드 강의 노트와 유튜브 보던 중 (나중에 볼 만한 것)로그인 e2e. jwt토큰 검증으로 HttpStatus.FORBIDDEN에서 OK로 만들기NestJS e2e TestingIn this video we primarily work on a integration test for our authentication controller with Super Test. W..

    3/11 토 (모듈 하나 e2e테스트 성공, Date타입의 toString 종류 총정리) TIL, TIT

    (최종 프로젝트 진행중) ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니다. 학습용으로 적합하지 않음을 유념해주세요. ※[Nest.js][Jest] 에러 TypeError: this.repository.create is not a function발생 상황: messages.service.spec.ts를 실행하는데 messages.service.ts 소스코드에 정의한 this.repository.create()이라는 TypeORM Repository의 기본 메소드가 인식되지 않는다고 함. 에러 메세지 전문: FAIL src/messages/messages.service.spec.ts (7.845 s) MessagesService getMessageById √ should be d..

    3/10 금 (구현할 기술 파트와 범위를 구체적으로 재설정하다) TIL, TIT

    (최종 프로젝트 진행중)오늘은 팀 회의와 튜터님과의 멘토링을 통해 팀원 각자가 맡을 파트를 기술(페이지네이션, 이미지 업로드 등) 기준으로 재할당하고 범위를 구체적으로 한정지었다. 부담을 조금 덜 수 있어 좋았다. 어제에 이어 여러 레퍼런스의 도움을 얻어 마침내 테스트 코드 감을 좀 잡게 되었다. 남은 것은 팀원들이 봤을 때 쉽게 따라할 수 있도록 코드를 다듬고 공유하는 것. 그리고 오늘 저녁엔 ‘동네(위치) 인증 기반 서비스’를 어떻게 얼마나 제공할 수 있을까에 대해 혼자 조사를 해 보았는데 몇 가지 자료를 찾을 수 있었다. (조사하며 마구 필기해 놓은 것은 너무 날림이라 오늘 TIL에 포함하지 않았다.) 이게 핵심 기능이었는데 다행히도 서툴게나마 구현할 수 있을 것 같다. 이어서 할 일: 카카오 우편..

    3/9 목 (Nest.js로 처음 하는 테스팅) TIL, TIT

    (최종 프로젝트 진행중)Nest.js에게는 ‘모듈’이라는 색다른 개념이 있어서 이 자체를 mocking하는 새로운 개념들을 익혀야 했다. 에러가 끊임없이 나서 안 그래도 부족한 Jest와 테스트 코드 지식에 난감함이 많았다. ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니다. 학습용으로 적합하지 않음을 유념해주세요. ※[Nest.js] Testing, 테스팅Jest가 기본 테스트 프레임워크로 제공된다. 필요 패키지 @nestjs/testing 를 설치해야 한다? ⇒ 기본 Nest.js 패키지에 이미 포함된 걸로 아는데. Unit testingFor unit tests, the important one is the TestingModule.compile() method.This ..

    3/8 수 (팀 커밋 방식을 조율하다) TIL, TIT

    (최종 프로젝트 진행중)오늘 한 일:깃 cherry picking 방법을 배워서 원격 main에 잘못 push한 실수를 바로잡았다. 내 파트 중 기본 기능 ‘품앗이 CRUD’를 커밋하였다.팀의 커밋 방식과 PR - .. - pull 사이클을 (수많은 대화 끝에) 조금 수정했다. 이제는 정말 기본 설정을 거의 마쳐서, 냅둬도 굴러가게 될 것 같다. 깃과 씨름하고 API를 실험 작동하다보니 테스트코드가 너무나 필요해졌다. 작성에 뛰어들었다. (여기 보던 중: Nest.js module-ref)Documentation | NestJS - A progressive Node.js frameworkNest is a framework for building efficient, scalable Node.js serve..

    3/7 화 (GitHub Actions와 Nest.js 네이밍 컨벤션, 그리고 프로젝트 모듈명 바꾸기 노가다) TIL, TIT

    3/7 화 (GitHub Actions와 Nest.js 네이밍 컨벤션, 그리고 프로젝트 모듈명 바꾸기 노가다) TIL, TIT

    (최종 프로젝트 진행중)오늘 한/마친 일: 프로젝트 전체 폴더, 파일, 클래스 및 임포트 경로를 단수형(’user’)에서 복수형(’users’)로 바꿨다. ⇒ 프로젝트 폴더와 파일명을 바꾸는 작업은 생각보다 복잡한 작업이며, 팀원 아무도 코드를 작성하지 않은 초창기 시점이나 팀 프로젝트의 모든 코드가 작성된 마무리 시점에 바꾸는 것이 좋다는 배움을 얻었다… 파일명과 폴더명, 클래스명과 임포트되는 경로에 들어가는 모듈명 전부를 단수형(user)에서 복수형(users.controller.ts)로 바꾸느라 삽질하며 배운 것:노가다로 반복 숙달된 단축키 커맨드와 윈도우 명령어 renNest.js (암묵적인) 네이밍 컨벤션이 모듈, 컨트롤러, 서비스 파일명 및 클래스명은 복수형(UsersModule)을 취하고, ..

    3/6 월 (N2T가 말썽이다) TIL, TIT

    3/6 월 (N2T가 말썽이다) TIL, TIT

    (최종 프로젝트 진행중)에러가 많았다. 노션에 정리한 노트를 티스토리로 옮겨주는 프로그램인 N2T도 갑자기 안된다. 오늘 한 일: TypeError: Class extends value undefined is not a constructor or null 튜터님 찾아가 해결하기 (순환 참조 문제라는데 해결법마다 내 케이스는 아니다. 정말 모르겠다.) GitHub Actions 대략 세팅 건으로 회의 후 튜터님 찾아가기. 에러 정리와 재현을 다 못하고 우선 마무리한다. ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니다. 학습용으로 적합하지 않음을 유념해주세요. ※ 에러 TypeError: Class extends value undefined is not a constructor ..

    3월 5일 (프로젝트 구조를 짜다) TIL

    (최종 프로젝트 진행중)오늘은 문서를 읽고 기초 세팅을 일단 마치는 데 몰두하느라, 노트가 정리되지 못하고 여기저기서 노트 조각처럼 수집한 내용을 모아만 놓았다. 새벽 3시에 (어쩌다보니) 정리하고 내일을 기약함. 내일 할 일: TypeError: Class extends value undefined is not a constructor or null 튜터님 찾아가 해결하기 (순환 참조 문제라는데 해결법마다 내 케이스는 아니다. 정말 모르겠다.) GitHub Actions 대략 세팅 건으로 회의 후 튜터님 찾아가기. ※ 이하는 스스로 공부하며 적어둔 노트이며 불확실한 내용이 있을 수 있습니다. 학습용으로 적합하지 않음을 유념해주세요. ※ Nest.js와 TypeORM을 적용한 모듈 세팅하기Nest.js ..

    3/4 토 (TypeORM 소스 파일과 공식 문서를 함께 후루룩) TIL, TIT

    (최종 프로젝트 진행중)어제의 Nest.js에 이어 오늘은 TypeORM을 깊게 들여다봤다. 공식 문서를 보러가기 전에 TypeORM의 소스 파일들을 직접 옮겨다니며 이리저리 이해해보고 가설을 세워보고 무식하게 실험으로 증명해보며 적고 정리하는 시간을 가졌다. 노트에 정리한 양이 너무 많기도 하고 시간이 오래 걸려서, 과연 효율적으로 공부한 것인지 의문이긴 하지만 덕분에 TypeORM이 어떻게 구성되어있는지 전반적으로 이해할 수 있었다. 어제 Nest.js보다 더 제대로 개념을 잡게 된 것 같다. 내일(모레) 할 일: One to Many 등 관계 설정법을 마저 알아보고 Entity 작성하기 GitHub Actions 대략이라도 세팅 해보고 팀원과 얘기 나누기 ※ 이하는 스스로 공부하며 적어둔 노트이며 ..