Development
개발 전반적인 지식에 대해 작성하는 공간
2021
- HTTPS 동작 과정 (대칭키, 공개키, SSL, TLS, CA)
- 멀티스레드, 멀티쓰레드 / 멀티 태스킹 / 멀티 프로세싱 / 프로세스와 스레드의 차이
- 트랜잭션의 특징 (ACID)
- 트랜잭션 격리 수준(Transaction Isolation Level)
- 클러스터 인덱스, 비클러스터 인덱스
- 인덱스 뜻, 작동 과정, 장단점, 특징
- Lock의 종류 (Shared Lock, Exclusive Lock, Record Lock, Gap Lock, Next-key Lock)
- B-Tree
- REST의 기본 원칙 6가지
- static 사용을 최대한 자제해라. / 필드가 없는 클래스는 잘못 만든 클래스일 가능성이 높다.
- XSS(cross-site scripting) 공격
- JWT - 기본 개념
- CORS(Cross-Origin Resource Sharing)
- 호스트 이름(hostname) 설정 및 변경하기
- [트랜잭션] @Transaction 개념 / @Transactional을 활용해서 DB에 정보 반영하지 않기
- 객체 지향 프로그래밍, 다형성이란 ? (feat. 스프링)
- 인터페이스 분리 원칙 (ISP, Interface Segregation Principle)
- REST API에서의 HTTP 상태 코드, 상태 메시지 (응답 코드, 응답 메시지)
- 의존성 주입(DI, Dependency Injection)
- 의존 역전 원칙 (DIP)
- 상속보단 조립(조합, 컴포지션)을 사용해라.
- DRY (Don't Repeat Yourself)
- '템플릿 메서드 패턴'과 '전략 패턴'의 사용시기
- 템플릿 메서드 패턴 예제 2 - Authenticator (Local, SNS)
- 템플릿 메서드 패턴 예제 1 - 커피, 차 만들기
- 디미터(Demeter) 법칙
- 자바의 가장 큰 장점 - 운영체제에 독립적이다.[WORA(Write Once, Run Anywhere)]
- JAVA는 인터프리터(interpreter) 방식과 컴파일(compile) 방식이 혼합된 언어이다.
- Java가 C, C++보다 느리고, Python보다 수행 속도가 빠른 이유
- 템플릿 메서드 패턴 (Template Method Pattern)
- [모던 자바 인 액션] 3장 - 람다 표현식
- [모던 자바 인 액션] 2장 - 동작 파라미터화
- MVC 패턴
- 스트림(Stream) 개념, 특징
- 리스코프 치환의 원칙 (LSP)
- 단일 책임 원칙(SRP)
- 개방-폐쇄 원칙 (OCP)
- '전략(Strategy) 패턴'과 '상태(State) 패턴'의 차이점
- 전략 패턴(Strategy Pattern)
- 상태 패턴(State Pattern)
- 상수 선언 시는 대부분 private static final을 사용한다. (+ static을 같이 붙이는 이유)
- 한치의 오차 없는 정확한 답이 필요하다면 float, double은 사용하지 마라.
- 보다 덜 구체적인 것(추상적인 것)을 타입으로 참조해서 선언해라.
- 박싱된 기본 타입(Integer, Double 등)보다는 기본 타입(int, double 등)을 사용해라.
- 직접 개발하지 말고, 라이브러리를 익히고 사용해라.
- 외부의 의도치 않은 수정을 막기 위해, 방어적 복사본을 만들어라.
- 어떤 메서드든 'null'을 반환하게 만들지 마라.
- 매개변수 수가 같은 다중정의(오버로딩, Overloading)는 만들지 마라.
- for문보다는 for-each문을 사용해라.
- 인스턴스화 방지(정적 유틸리티 만들기), 상속 방지 → 'private 생성자' 사용
- 상수를 열거 → Enum 사용
- '상속'보다는 '컴포지션'을 사용해라. (예외 존재)
- 사용하는 자원(객체, 변수 등)에 따라 동작이 달라지는 클래스 → '의존 객체 주입' 사용
- 불필요한 객체 생성을 피하라. (new String, String.matches-정규표현식)
- 매개변수가 유효한지는 메서드 몸체가 시작되기 전에 가능한 한 빨리 검사해야 한다.
- 단 하나의 인스턴스를 생성하면 되는 경우 → '싱글턴' 사용
- 꼭 변경해야 할 필드를 뺀 나머지는 모두 private final로 선언해라.
- toString을 항상 오버라이딩(재정의, Overriding)해라.
- [이펙티브 자바] 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라.
- [이펙티브 자바 / 예제 코드 추가] 아이템 1. 생성자 대신 정적 팩토리 메소드를 고려해라.
- Gradle에서 Junit5 셋팅하는 방법