지속적인 성장을 위해 기록합니다.
깊이있는 탐구를 통해 핵심을 이해하고자 합니다.
Obsidian을 사용하여 글을 작성합니다.
- Java Platform Edition - SE, ME, EE, FX, Card
- Java EE(Jakarta EE)
- Java Platform 연대기
- OpenJDK의 배경과 개념, OracleJDK와 유료화 문제 - OpenJDK ,JEP, OCA, OCTLA
- 자바가 발전하는 과정
- OpenJDK와 타 JDK와 비교 - JVM 비교
- Java 바이트코드 구조
- Java 클래스 로드, ClassLoader
- JVM Run-Time Data Areas
- Java Garbage Collection
- JDK8 버전 이후 제거된 JVM Permanent 영역
- Java Primitive Type(기본형) vs Reference Type(참조형)
- 자바에는 Call by reference가 없다. (항상 Call by value)
- Java
==
, equals() 차이 - Java String 객체와 String 리터럴
- Java BigInteger, BigDecimal
- (내 생각) package-private 접근제어자를 사용해야 하는 경우와 아닌 경우
- Java package-info.java 이란?
- Java - Map.of(), Map.ofEntries(), ImmutableCollections.MapN
- DTO(Data Transfer Object) - VO(Value Object)
- JavaBeans
- Java Bean Validation - JSR 303, JSR 380
- Optional을 올바르게 사용하는 방법
- JAVA - Wrapper & Auto boxing & Auto Unboxing & 형변환
- JAVA - Iterable & Iterator의 정의와 C Style, for-each, Iterator의 차이
- Java - DB 관련 기술 - JDBC, SQL Mapper, JPA
- JPA(Java Persistence API) 개념정리
- Java - Annotation(어노테이션)
- Inner Class를 Static으로 선언해야 하는 이유
- Java - ThreadLocal
- Java - java.lang.ref, WeakReference, SoftReference, PhantomReference
- Java - Stack Trace 읽는 법
- Java - 깊은복사 얕은복사
- Java - Static Final을 사용하는 이유 + 리터럴 복사 현상
- ==작성 예정 == Java 파일 입출력 Stream==
- 바이트코드와 가상머신 - 보완 필요
- Blocking-NonBlocking-Synchronous-Asynchronous
- Socket은 File이다. - VFC(Virtual File System)
- 네트워크 기초 개념
- TCP-UDP 기초 개념
- HTTP, HTTPS, TLS 기초 개념
- 단방향-양방향 암호화
- DNS 기초 개념
- (내 생각) 웹 애플리케이션의 효과적인 예외 처리 전략
- Spring MVC - 예외처리 HandlerExceptionResolver
- Spring MVC - @ControllerAdvice 동작 원리
- Spring MVC - 전역 예외 처리 시, ResponseEntityExceptionHandler를 상속해야 하는 이유
- SpringBoot Properties 관리, 커스텀 Properties 관리하기
- Spring Bean Validation
- 스프링에서 사용하는 Reflection - DI, AOP
- 스프링의 트랜잭션(Transaction)
- Spring Data JPA - OSIV(Open Session In View)
- Spring Data JPA 간단 개념
- Conventional Commits, Git Hooks, Husky, JGit 란?
- Git 브랜치 관리 전략
- GIt과 Github 차이
- Github - Fork와 Upstream & Downstream
- Github Action
- Github Actions - Java with Gradle 분석하기 with Dependabot
- devops - CI-CD 개념
- Docker 데이터 관리 - Volume, Bind Mount, tmpfs Mount
- Private한 환경변수 관리하는 법
- AWS 간단 개념 정리
- IaaS, PaaS, SaaS, DBaaS
- 영상 요약 - 쿠버네티스는 어떻게 대세가 되었고, 도커는 왜 몰락했나? 쿠버네티스까지 30년 역사
- 도커와 쿠버네티스 개념 알아보기
- 쿠버네티스 기초 개념
- 쿠버네티스 - Service와 Ingress
아직 분류 기준이 정확하지 않은 노트들
- Test Double 정리 - 단위 테스트에서 사용되는 객체들
- 실무 DB에서 FK를 지정하지 않는 이유 - github이 외래키를 쓰지 않는 이유
- Database Table Naming Conventions
- URL에 언더스코어(_) 보다 대시(-)를 사용해야 하는 이유
- HTTP API 에러 응답 포멧 표준 - RFC7807, RFC9457
- Soft Delete를 사용하지 않아야 하는 이유와 반론
- Gradle에서 JaCoCo 도입하기
- 권·편·장·절·관·조·항·호·목
- (작성 중) - 객체지향이란?
- OWASP, CORS, XSS, CSRF, SQL Injection
- 디버깅은 어떻게 동작하는가?
- 디버깅(Debugging)과 사용법
특정 주제가 아니라 목적을 가지고 진행한 작업들에 대한 기록
- 스터디 진행 Github Repository - Wiki에 정리되어 있음
- 실제 어셈블리어 흝어보기
- Project Repository
- README
- 0. Mac에서 CLion을 사용한 개발환경 구축하기 + CMake 알아보기
- 0-1. CLion에서 Assert 적용하기, 테스트 코드 작성법
- 1. C 기초 정리
- 2. C로 자료구조 구현하기
- 3. 프로젝트를 진행하면서 얻은 인사이트 정리
- 4. 중단 이유 및 후기
- Readme
- Network - HTTP, Web 위주
- Network - IP, TCP, UDP, 4 layer 이하
- DataBase - RDB, NoSQL, index 등
- Frontend 관련 지식 - 나중에 FE 배울 때 다시 읽기
- Spring
- 1주차 (2024.2.22.~2024.2.28)
- 2주차 (2024.2.29.~2024.3.6)
- 3주차 (2024.3.7.~2024.3.13)
- 4주차 (2024.3.14.~2024.3.20)
- 5주차 (2024.3.21.~2024.3.27)
- 6주차 (2024.3.28.~2024.3.3)
- 7주차 (2024.4.4.~2024.4.10)
- 8주차 (2024.4.11.~2024.4.17)