🪩 35

nestjs 프로젝트 프론트 ejs 도입

이번 프로젝트를 진행하며 ejs를 처음 써보게 되었다 nestjs의 컨트롤러 코드를 html 코드와 연결해준다는 느낌이다 이렇게 html로 작성된 파일의 확장자를 .ejs로 변경한 후, ejs 문법에 맞추어 연결할 코드를 수정한다. 컨트롤러에는 @Render를 추가하고 연결할 파일명을 기입한다. main.ts 파일도 작성해준다. public에는 css 파일이, views에는 ejs 파일이 있다.

🪩/기타 2024.04.15

최종프로젝트 오류

북마크 조회가 되지 않고 있음(서버 오류) -> 콘솔 에러메시지 보니까 NaN 문제라고 함 userId가 number로 받아와지지 않고 있는 것 같음 찾아보니 @Param('userId') 데코레이터로 매개변수를 추출하면 일반적으로 문자열로 나온다고 함 const userId = Number(user.id); const myBookmarkList = await this.collectionService.getBookmarkColList(userId); 이렇게 수정했는데 여전히 오류 -> 팀원분이 알아내심 @Get('bookmark') 이 코드가 @Get('/:collectionId') 이런 : 들어간 코드 아래에 있어서 그게 적용된거였음 결론: controller 파일을 한 번 더 분리했습니다

🪩/기타 2024.04.05

[백엔드 기술 면접 대비] RDBMS의 정규화, Primary Key, Foreign Key

내용 추가 예정 💡 3. RDBMS의 정규화에 대해 설명해주세요. RDBMS 정규화란? 관계형 데이터베이스의 설계에서 데이터를 중복 없이 효율적으로 저장하기 위한 과정 -> 중복을 최소화 왜 필요한가? 이상 현상이 발생할 수 있기 때문 이상현상이란? 정규화가 되지 않은 DB의 테이블에 어떠한 작업을 할 때 비합리적인 문제들이 발생하는 현상 테이블에 불필요한 데이터가 함께 들어가야 하는 삽입 이상, 테이블에서 삭제를 원치 않는 데이터도 함께 삭제가 되는 삭제 이상, 중복된 데이터에서 어떤 특정한 부분만 수정되어 값이 모순을 일으키는 갱신 이상이 있다. 이러한 이상 현상을 막기 위해 RDBMS의 정규화가 필요하다. 💡 4. Primary Key, Foreign Key에 대해 설명해주세요. Primary Ke..

[백엔드 기술 면접 대비] HTTP 메서드, GET, POST의 개념과 데이터 흐름

💡 5. HTTP 메서드에 대해 설명해주세요. HTTP 메서드는 요청과 응답에 관한 전송 방식을 말한다. 총 9가지가 있는데 보통 GET, POST, PUT, PATCH, DELETE를 많이 사용한다. GET: 리소스의 표시를 요청. 게시글의 목록을 조회하는 것 POST: 요청한 데이터를 처리. 게시글 작성 PUT: 리소스 전체 변경. 리퀘스트에서 모든 부분을 변경 PATCH: 리소스 부분 변경. 리퀘스트에서 일부만 변경해도 전체 처리 DELETE: 리소스 삭제. 게시글 삭제 💡 15. GET, POST의 개념과 함께 데이터 흐름에 대해서 설명해주세요. 추후 작성 예정

[DB] RDBMS, SQL, NoSQL

DBMS 데이터베이스 관리 시스템 데이터베이스를 조작하는 소프트웨어 데이터베이스를 구축하고 효율적으로 데이터 검색 및 저장 기능 제공 RDBMS 관계형 데이터베이스(관리 시스템) 키와 밸류의 관계를 테이블화 시킨 데이터베이스 SQL 관계형 데이터베이스를 관리하기 위해 설계된 프로그래밍 언어 MySQL sql을 사용하는 오픈소스의 관계형 데이터베이스 관리 시스템 NoSQL 기존의 관계형 데이터베이스보다 더 융통성 있는 데이터 모델, 데이터의 저장 및 검색에 특화 스키마가 필요없고 데이터 분산이 용이 단순 검색 및 추가 작업에 최적화된 기법 사용 -> 응답 속도나 처리 효율이 뛰어남!

🪩/기타 2024.03.29

[백엔드 기술 면접 대비] 프로세스, 쓰레드, 멀티 프로세스, 멀티 쓰레드

💡 23. 프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요. 프로세스 이전에 프로그램이라는 개념을 먼저 알아야 할 것 같았다. 프로그램이란? 하드 디스크에 저장된 코드 실행 파일 저장 장치에 저장되어 있는 정적인 상태 프로세스란? 실행 중인 프로그램이자 작업의 단위 더 정확히 말하면 프로그램을 실행하면 파일에 있던 코드의 데이터가 메모리에 저장되어 프로세스로 동작한다. 실행되기 위해 메모리에 올라와있는 동적인 상태 스레드란? 프로그램, 특히 프로세스 내에서 실행되는 흐름의 단위 프로세스의 여러가지 상태 중에서도 CPU에 작업 요청을 하는 실행 단위가 스레드 -> 프로세스와 스레드의 차이 프로세스 스레드 실행시키는 주체 운영체제 CPU 독립성 각각의 프로세스는 서로에게 영향을 미치지 않음..

도커(Docker), 메시지큐(Message Queue)

최종 프로젝트를 준비하며 팀원들과 기술 스택에 대해 이틀동안 이야기를 나누고 있다. 낯선 기술이 많아서 먼저 기술을 알아가는 시간을 가지기로 했다. 각자 배우지 않았던 기술을 한두개씩 담당해서 30분동안 공부해온 뒤 서로에게 알려주는 방식으로 진행해봤다. 나의 담당 기술은 도커와 메시지큐였고, 이때 정리한 내용을 올리려고 하는데 30분동안 정말 감만 잡은!! 감도 100% 잡은게 아니고 어떤 상황에 어떤 기술과 연계가 되는지 정도만 아주 대략적으로!! 담긴 내용이기 때문에 정보성 글보다는 그냥 개인 기록정도로 보는 것이 맞을 것 같다. 도커 컨테이너 기반의 오픈소스 가상화 플랫폼 여기서 컨테이너는 항구에서 볼수있는 그 컨테이너를 떠올리면 이해가 쉬울 것 같음 프로그램, 실행환경을 컨테이너로 추상화 동일한..

🪩/기타 2024.03.26

[Git] 체리픽(Cherry-Pick)

팀 프로젝트를 진행하다보니 dev 브랜치에 package.json 파일만 올리고 싶은데, 다른 코드는 아직 dev 브랜치에 올릴 수 있는 상태가 아니라 고민하게 되는 상황이 있었다. 팀원 분께서 체리픽에 대해 말씀해주셔서 찾아봤다. 체리픽은 a 브랜치에서 b 브랜치로 특정 커밋의 선택과 적용이 가능한 Git 기능 중 하나이다. (나같은 경우에는 혼자 작업 중인 feat 브랜치에서 -> dev 브랜치로) 전체 커밋이 아닌 개별 커밋을 선택할 수 있다는 특징 덕에 사용해보게 되었다. git log 먼저 git log 명령어로 올리고 싶은 커밋을 식별한다. (커밋 해시라고 하는 것 같다) git switch switch 명령어로 브랜치를 옮겨준다. (checkout도 가능하나 switch 권장) 나같은 경우에..

🪩/Git 2024.03.22

[NestJS] 컨트롤러, 핸들러, 서비스

컨트롤러란? 들어오는 요청 처리, 클라이언트에 응답 반환 @Controller 데코레이터로 클래스를 정의 인자는 컨트롤러에 의해서 처리되는 경로로 받음 (ex: @Controller('/board') 핸들러란? @Get, @Post, @Delete 등 데코레이터로 장식된, 컨트롤러 내의 단순한 메서드 서비스란? 컨트롤러에서 데이터 유효성 검사를 하거나, DB에 아이템을 생성하는 등의 작업 처리 데이터베이스 관련 로직: DB에서 데이터 가져오기, 게시판 생성 시 DB 안에 생성한 게시판 정보 넣어주기 등 @Injectable 데코레이터로 감싸지고, 서비스 인스턴스는 모듈 전체에서 자유롭게 사용이 가능 서비스를 컨트롤러에서 사용하려면 constructor (private boardsService: Board..

🪩/기타 2024.03.14