Notes
Notes
습득한 개념과 지식 정리
- 객체 지향 프로그래밍(OOP)의 특징과 Spring객체 지향 프로그래밍의 4가지 특징과 SOLID 원칙을 정리하고, Spring이 제어의 역전과 Bean 등록을 통해 JDBC·JDBC Template·JPA·Spring Data JPA 구현체를 유연하게 교체하는 원리를 살펴본다.
- Spring 데이터베이스 접근 기술 비교 — JDBC · JPA · Spring Data JPAJDBC부터 JDBC Template, JPA, Spring Data JPA까지 이어지는 Spring의 데이터베이스 접근 기술을 코드로 비교하고, 각 방식의 특징과 트랜잭션 처리 원리를 정리한다.
- Spring 계층형 아키텍처와 의존성 주입Spring의 계층형 아키텍처(Controller-Service-Repository-Domain) 구조와 각 계층의 역할을 코드 예시로 살펴보고, 의존성 주입 개념과 스프링 컨테이너를 통한 빈 등록·주입 방식을 정리한다.
- Spring 기본 구조와 작동 방식Spring 프레임워크의 핵심 특징과 프로젝트 생성 과정을 살펴보고, 정적 콘텐츠·MVC+템플릿 엔진·API 세 가지 웹 요청 처리 방식의 동작 원리를 정리한다.
- GitHub SSH 설정MacOS 환경에서 SSH 키를 생성하고 GitHub 계정에 등록해 SSH 통신으로 저장소에 접근하는 과정을 정리한다.
- 자바스크립트 프로토타입자바스크립트의 프로토타입 개념과 동작 원리, 그리고 프로토타입 체인 구조를 정리한다.
- 자바스크립트 클로저와 가비지 컬렉션클로저가 발생하는 원리와 LexicalEnvironment가 가비지 컬렉션 대상에서 제외되는 이유를 정리하고, 참조 카운트를 이용해 클로저로 인한 메모리 누수를 해결하는 방법과 활용 사례를 살펴본다.
- 자바스크립트 콜백 함수자바스크립트 콜백 함수의 개념과 제어권 이전 방식을 정리하고, 콜백 지옥이 발생하는 이유와 이를 해결하는 방법을 살펴본다.
- 자바스크립트 this자바스크립트의 this가 무엇을 가리키는 키워드인지 살펴보고, 전역 공간과 호출 방식(함수·메서드·콜백·생성자)에 따라 this가 어떻게 결정되는지 정리한다.
- 자바스크립트 스코프 체인실행 컨텍스트의 LexicalEnvironment가 갖는 outerEnvironmentReference 개념을 통해 스코프 체인이 동작하는 원리를 정리한다.
- 자바스크립트 함수 선언문과 함수 표현식자바스크립트에서 함수를 정의하는 두 가지 방식인 함수 선언문과 함수 표현식의 개념과 호이스팅 동작 차이를 정리한다.
- 자바스크립트 호이스팅실행 컨텍스트의 environmentRecord가 식별자를 수집하는 방식을 바탕으로 변수·함수 선언의 호이스팅 규칙을 정리한다.
- 자바스크립트 실행 컨텍스트자바스크립트 엔진이 코드를 실행하기 위해 참조하는 실행 컨텍스트의 개념과 생성 과정, 그리고 내부에 저장되는 환경 정보를 정리한다.
- 자바스크립트 undefined와 null값을 지정할 것으로 예상되는 상황에서 지정되지 않았을 때 반환되는 undefined의 발생 케이스와, 명시적으로 없음을 표현하기 위한 null의 쓰임을 정리한다.
- Linux Ubuntu 디렉토리 권한 설정백엔드 서버에서 이미지 파일 저장 시 원격 서버 배포 후 발생한 디렉토리 권한 오류를 리눅스 권한 체계로 분석하고, 디렉토리 소유자 변경으로 해결한 과정을 정리한다.
- Nginx HTTPS - Let's Encrypt SSL/TLS 설정원격 서버에 Let's Encrypt certbot으로 SSL/TLS 인증서를 발급받고, 이를 Nginx 서버 블록에 적용해 HTTPS 리버스 프록시를 구성하는 과정을 정리한다.
- Nginx 웹서버 설치와 리버스 프록시Ubuntu 서버에 Nginx를 설치하고, 리버스 프록시로 백엔드와 프론트엔드의 CORS 이슈를 완화하는 서버 블록 설정 과정을 정리한다.
- AWS RDS 인스턴스 생성과 파라미터 그룹 설정AWS RDS에서 MySQL 파라미터 그룹을 생성·설정하고 이를 적용해 RDS 인스턴스를 생성하는 과정을 정리한다.
- AWS EC2 탄력적 IP 주소 할당EC2 인스턴스를 재시작할 때마다 IP가 바뀌는 문제를 해결하기 위해 탄력적 IP를 할당하고 인스턴스에 연결하는 과정을 정리한다.
- AWS EC2 인스턴스 생성과 설정AWS 프리티어를 활용해 EC2 Ubuntu 인스턴스를 생성하고 보안그룹 인바운드 규칙과 도메인 연결까지 설정한 과정을 정리한다.
- Nest.js 환경 변수 관리 — Config ModuleNestJS 공식 ConfigModule을 이용해 환경변수를 분리·관리하는 이유와 설정 방법, 그리고 ConfigService로 환경변수를 불러와 활용하는 방법을 정리한다.
- Nest.js API 문서화 — Swagger ModuleNest.js 프로젝트에서 SwaggerModule로 API 문서를 자동 생성하고, Controller와 DTO 데코레이터로 문서 내용을 채우는 방법을 정리한다.
- Nest.js 유효성 검사 — Validation Pipe와 class-validatorNest.js의 ValidationPipe와 class-validator를 이용해 요청 데이터의 유효성을 전역으로 검증하는 방법을 정리한다.
- Nest.js CORS 설정프론트엔드와 협업 개발 시 CORS가 필요한 이유와 Nest.js의 enableCors() 메소드를 이용한 CORS 설정 방법을 정리한다.
- Nest.js HTTP exceptions 에러 처리 모음Nest.js가 내장 제공하는 HTTP exception 클래스로 상태 코드별 에러를 간편하게 던지는 방법과, 상태 코드에 대응하는 Exception 클래스 목록을 정리한다.
- Nest.js 의존성 주입 개념과 적용 방법객체 지향 프로그래밍 관점에서 의존성 주입의 개념과 인스턴스 생성 방식과의 차이를 정리하고, Nest.js의 Controller-Service 구조에서 의존성 주입이 실제로 어떻게 적용되는지 살펴본다.
- Nest.js Decorator 동작원리와 종류, Custom DecoratorNest.js에서 데코레이터가 동작하는 원리와 클래스/메소드 수준의 주요 내장 데코레이터 종류를 정리하고, 전역 Guard 예외 처리를 위해 커스텀 데코레이터를 직접 만들어 문제를 해결한 경험을 기록한다.
- Nest.js 프로젝트 생성과 구조Node.js 웹서버 프레임워크 Nest.js의 설치와 프로젝트 생성, 디렉토리 구조, 그리고 데코레이터·의존성 주입·예외 처리 등 주요 기능을 정리한다.