전체 글

· TIL
오늘 한 일 협업 툴 웹 사이트를 만드는 팀 프로젝트를 시작했다(NestJS + TypeORM). 내가 맡은 부분은 그 중에서도 Board부분으로, 협업 툴의 제일 큰 구분 단위를 맡게 되었다. 여느 때와 마찬가지로 팀 회의를 거친 후에 ERD 작성 및 API 명세서 작성, 와이어 프레임을 작성했다. 그 후 Board를 맡았기 때문에 Board와 관련한 CRUD 기능을 구현했다. 고민한 부분 Board 테이블에서 구현해야 하는 기능 중 하나가 "초대" 기능이었다. Board를 만들어 작업 단위를 구성한 사람이 멤버들을 초대 해야하는 구조를 만들어야 했다. 그렇다면 초대를 받은 사람에 한해서 접근이 가능하도록 데코레이터를 넣어주어야 했고, 더 중요하게 초대받은 사람들을 어떻게 구성해줄 것인가가 제일 큰 부..
· git
문제 제목과 같이 gitignore이 안 된 채로 github에 .env 파일이나 node_modules 파일을 올린 경우 vscode에서 파일을 삭제하고 다시 git에 올리는 방법은 옳지 않다. 왜냐하면 제대로 삭제되지 않은 채로 기록이 남기 때문이다. 이번 프로젝트에서 팀원이 Mac을 사용했고, Mac에 호환되는 dist파일과 node_modules 파일을 git에 올려서 그걸 clone 받고 시작하게 되었는데 npm run start:dev 명령어를 통해 서버를 실행하게 되면 win32와 호환이 안된다는 오류가 발생했다. 해결 따라서 터미널에 다음과 같은 명령어를 통해 기록을 포함한 모든 데이터를 삭제해 준 뒤 다시 github에 올려야 한다. (현재 프로젝트에서 Typescript와 NestJS를..
· TIL
오늘 한 일 오늘은 공연 예약 사이트 마무리 한 것을 다듬는 시간을 가졌다.(NestJS + TypeORM) 어제까지 코드를 완성했다 싶었는데 한 번 손을 대기 시작하니까 손 볼 부분이 한 두 군데가 아니어서 시간이 많이 들었던 것 같다. 어제는 완성본이라기 보단 기능 구현에 초점을 맞춘 코드였기 때문에 오늘은 @Guard를 사용해서 로그인한 사람만 마이페이지 조회가 가능하다던지, 로그인 시 Role이 Admin인 사람만 게시글을 올릴 수 있다던지 하는 기능들을 추가해서 넣었다. 배운 부분 로그인한 사용자만 접근하게 하기 @nestjs/common 과 @nestjs/passport 패키지를 다운 받은 뒤 @nestjs/common에서는 UseGuard를 @nestjs/passport에서는 AuthGuar..
· TIL
오늘 한 일 새해 연휴동안 공연 예매 프로젝트를 완성시켰다(Nest.js + TypeORM). 그런데 테스트를 해보지 않고 생각으로만 만들어뒀던 코드들이라 오늘 코드들을 api client로 돌려보며 에러를 해결하는 하루를 보냈다. 테스트를 해보지 않고 생각대로만 만들었던 건데 기대했던 것보다 고칠 부분 없이 완성도 있게 만든 것 같아 뿌듯했다. 역시나, 언제나 그랬듯이(mongoose, sequelize,prisma에서도 그랬듯이) 초기 설정하는 부분이 조금 어려웠던 것 같다. 배운 부분 오류를 수정하며 배운 몇 가지에 대해 간략하게 적어보려고 한다. TypeORM 메서드 원래 만들었던 코드에서는 특정한 id값이 주어졌을 때 그 id값의 row 하나를 가져오는 메서드로 find를 쓰고 있었다. 그런데 ..
· TIL
오늘 한 일 오늘은 어제 공부했던 NestJS 부분이 이해가 잘 되지 않아 추가적으로 노마드코더 강의를 들으며 기본 CRUD 구현에 대해 배웠다. 그리고 프로젝트를 시작했는데, api 명세서 작성 및 ERD를 작성했다. API 명세서 https://docs.google.com/spreadsheets/d/1rT34ONPqngH7swocxEmefstqsa4cLM1zAADa-__wxlc/edit#gid=0 ERD https://drawsql.app/teams/-740/diagrams/reservation-performance-project reservation_performance_project | DrawSQL Database schema diagram for reservation_performance_pr..
· TIL
오늘 한 일 오늘은 타입스크립트 인터페이스 부분 추가적인 공부와 제네릭, 데코레이터에 대해서 공부했다. 추가적으로 스파르타 강의를 다시 복습하면서 개인과제를 어떻게 만들면 좋을지에 대해 구상해봤다. 알고리즘 스터디를 하는 날이었는데 알고리즘 문제를 풀다가 아스키 코드로 풀면 좋을 것 같은 문제여서 아스키 코드에 대해 간략하게 정리해봤다. 배운 부분 아스키 코드 https://yoonchan1121.tistory.com/133
· Javascript
아스키 코드 아스키 코드(ASCII 코드)는 영문 알파벳, 숫자, 특수 문자 등을 컴퓨터에서 사용할 수 있도록 각 문자에 대응하는 7비트 또는 8비트의 이진수로 표현한 것이다. ASCII는 "American Standard Code for Information Interchange"의 약자로 미국 표준 협회에서 제정한 표준 코드이다. 아스키 코드는 0부터 127까지의 값으로 표현되며, 숫자와 일부 특수 문자도 이 코드를 사용하여 표현된다. 한편, 확장 아스키 코드는 8비트로 확장된 아스키 코드로, 추가적인 문자와 기호를 포함하고 있다. UTF-8과 같은 유니코드와 함께 현재는 더 다양한 문자를 나타내기 위해 사용되고 있다. 아스키 코드 관련 JS 코드 charCodeAt() : 문자의 아스키 번호를 반환..
· TIL
오늘 한 일 오늘까지 typescript를 끝내고 nestJS를 들으려 했으나 생각보다 typescript의 분량이 많았다. typescipt에서 오늘 배운 부분을 크게 나누어보면 클래스와 인터페이스, 제네릭에 대해서 배웠다. 내일은 데코레이터부분을 보고 바로 개인 프로젝트를 만들어봐야 할 것 같다. 배운 부분 게터와 세터 게터 : 값을 가져오기 위해 함수나 메서드를 실행하는 프로퍼티로서, 게터를 사용하면 복잡한 로직을 구현할 수 있다. 게터를 정의할 때는 get 키워드를 사용한 다음 원하는 대로 이름을 지으면 되는데, 일반적으로 엑세스하려는 프로퍼티의 이름과 관련지어 이름을 짓는다. 게터 메서드이기 때문에 값을 반환해야 한다. class AccountingDepartment extends Departm..
· TypeScript
컴파일러 옵션 tsc --init을 하게되면 tsconfig 파일이 생성되는데 여기서 컴파일 옵션을 설정해줄 수 있다. target 기본적으로 설정되어 있는 옵션, 주석처리 되어있지 않다. 어떤 자바스크립트 버전으로 코드를 컴파일하고 싶은지 설정하는 옵션. target을 설정함으로써 컴파일된 코드를 지원하는 브라우저를 정의한다. es5는 모든 코드 유형이 컴파일 된다는 뜻이다. es5로 let, const 같은 키워드를 컴파일하면 js파일에서는 var로 보인다. 왜냐하면 target이 es5이고 es5 세계에서는 let과 const가 없기 때문이다.(es6로하면 let과 const를 볼 수 있다) 여기서 좋은 점은 타입스크립트로 구형 브라우저에서도 작동하는 코드를 만들 수 있다는 점이다. 추가적으로, t..
윤찬님
찬이_Devlog