Java, Object-oriented
- 절차지향, 객체지향의 차이
- 생성자란?
- IS-A 관계란?
- JVM 이란?
- JVM-JRE 그리고 JDK 차이점
- POJO 란?
- Stream API란?
- Lambda란?
- 멀티스레드란?
- Optional이란?
- 싱글톤 패턴이란?
- OCP 개방폐쇄의원칙
- 직렬화란?
- GC 이해하기
- Lambda Expression
- Functional Interface
- HashMap을 효과적으로 사용하는 방법
- 무조건 빌더 패턴을 사용해야 하는 이유
- 기본 생성자가 필요한 이유
- 래퍼 클래스란?
- 제네릭의 이해
- 자바 컬렉션 정리
- JVM 구조와 자바 런타임 메모리 구조
- CompletableFuture 자바 비동기 프로그래밍
- ClassLoader 자세하게 파해치기
- 바이트코드를 조작해보기
- 자바 리플랙션
- 나만의 @애노테이션 만들기
- java 리플랙션을 사용해 DI 구현하기
- java 메소드 레퍼런스
- java 인테페이스 기본 메서드와 스태틱 메서드
- java 8 API의 기본 메서드와 스태틱 메서드
- checked-exception unchecked-exception
- java thread 완벽하게 알고가자
- java Executors
- java Callable과 Future
- java CompletableFuture과 callback
- java 배열의 깊은 복사와 얕은 복사
- 제네릭의 활용
- impl Comparable<>, @Override compareTo()
- java number를 intArray로 convert 하는 방법
- java arrayList item 중복 제거를 하는 방법
- java 참조형 변수
- 상속관계에서의 lombok @Builder 사용
- Immutable:: java StringBuilder를 쓰는 이유
- Java는 Call By Value만 있다
Backend
- SOA 그리고 MSA
- BEST HTTP Authorization header type for JWT
- jwt 의존성 중복으로 인한 기이한 에러
- sentry로 로깅 시스템 구축하기
- 지금의 REST API는 REST를 따르고 있지 않다.
- 높은 응집도와 낮은 결합도
Design Pattern
Springboot
- TDD란
- Swagger 연동 방법
- Spring에서 사용하는 어노테이션
- Springboot 동작원리
- springboot JUnit5 MockMvc Test
- springboot @Async 는 어떻게 동작하는가?
- springboot bean은 기본적으로 singleton으로 관리된다고?
- 자바 싱글톤 vs 스프링 싱글톤
- spring mvc lifecycle
- 스프링 빈 순환참조 오류
- 내 springboot 에 ehcache를 적용해보자!
- spring DI(Dependency Injection)은 어떻게 동작할까?
- Spring Bean Life Cycle
- @NoargsConstructor(AccessLevel.PROTECTED) 와 @Builder
- springboot app request client ip 가져오기
- 장애회고, HikariCP connection error
- spring application을 운영할 때 고려해야 security
- 사랑해요❤️ modelMapper
- DispatcherServlet이 대체 뭐하는 녀석인가
- 빈 생명주기 콜백
- 스프링은 싱글톤 컨테이너
- @Configuration과 바이트코드 조작의 마법
- @Autowired 필드 명, @Qualifier, @Primary
- 빈 스코프 - 프로토타입 스코프
- 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 문제점
- Spring REST docs 도입하기
- Gradle, jar에 html 파일들을 생성하는 방법
- testing configuration error found multiple declarations of @BootstrapWith
- Gradle 6 to 7
- Spring PSA 기술을 통해 static method를 쉽고 빠르게 테스트 하다.
- Spring Persistence Context 그리고 Transactional
Computer Science
Algorithm
Git, Commands
DevOps
- CICD
- 온프레미스, 오프프레미스
- AWS EC2 제대로 알기
- AWS Route53 제대로 알기
- AWS EC2 직접 사용해 본다
- Docker란?
- 내 애플리케이션에 HTTPS 프로토콜 적용하기
- 50x 에러 해결하기
- RDS can't connect 에러 해결하기
- nohup 사용하기
- Ubuntu 서버에 내 애플리케이션 올리기
- 내 springboot application docker image화 시키기
- docker-compose란?
- springboot에 dockerfile 설정하기
- 클라우드 서비스 이해하기 IaaS, PaaS, SaaS
- xx.com의 리다이렉션 횟수가 너무 많습니다.
- notion 사이트 내 도메인이름으로 타겟팅 하기
- 학교가불편한순간 v1.1.1에서 마주한 트러블슈팅
- 20명 정도 되는 규모의 팀에 Vault 도입하기
Network
모든 개발자들을 위한 HTTP
- 인터넷 네트워크
- URI와 웹브라우져의 요청 흐름
- HTTP 기본
- HTTP 상태코드
- HTTP 헤더 1 - 일반 헤더
DataBase, JPA, SQL
- GraphQL 이란?
- JPQL
- h2DB
- Elastic Search
- JPA can't return 2 result 오류
- 상속관계 매핑이란?
- 다양한 JPA findBy 메서드
- JPA 엔티티 매핑 방법
- JPA 연관관계 주인
- Querydsl 이란?
- transaction이란?
- querydsl 사용시 주의하기
- 영속성 컨텍스트
- Flush
- ddl-auto 와 hbm2ddl.auto
- 왜 Hibernate orm column이 WrapperClass일까?
- SQLD 한번에 보기
- 나는 왜 JPA를 쓸까
- 그냥 우리 N+1 그냥 맞닥뜨리자
- 알고나면 화를 유발하는 JPA 오류 모음
- maven에 querydsl 설정하기
- 더모먼트팀 every-moment 쿼리 성능 개선사례
Grammar
library
Methodology
Extra