오늘 배운, 알게 된, 학습한 내용을 정리하는 저장소.
좋은 개발자가 되기 위해 하루동안 학습한 내용이나 개발관련 경험들을 기록으로 남긴다.
- 🍞 빵 부스러기 저장소
- INFCON - 김영한님 강연
- INFCON - 이동욱님 강연
- 질문하는 방법
- 코딩 테스트 노하우
- 3배의 효율을 올리는 독서 방법
- Java Style Guide
- Java 네이밍 규칙
- 객체지향적 코드 설계
- @Slf4j - 사용 방법
평소, 생각 없이 사용해 왔던 것들.
정확히 어떤 의미인지 모르고 사용해 왔던것들.
단순 문법적인 내용을 익히는 게 아니라,
내부 원리에 대해 깊게 이해하도록 노력하기
- [CS] - ‘메모리에 적재’ / CPU의 연산
- [CS] - 동시성 vs 동기화 / 경쟁 조건 vs 임계 영역
- [CS] - 동시성 문제 해결 방법으로는 무엇인가요?
- [CS] - context switch vs Context
- [CS] - process란 무엇인가요?
- [CS] - PCB가 무엇인가요?
- [CS] - Multi process가 무엇인가요?
- [CS] - multi thread VS multi process
- [CS] - PSA(Portable Service Abstraction)란 무엇인가요?
- [CS] - Reentrant Lock과 synchronized의 차이는 무엇인가요?
- [CS] - CAS 알고리즘이란 무엇인가요?
- [CS] - Block vs Non-Block / sync(동기) vs async(비동기)
- [CS] - blocking / non-blocking, sync / async 코드 구현
- [CS] - 뮤텍스와 세마포어의 차이는?
- ["왜?" 관점에서 생각] - JVM 동작원리와 내부구조는 어떻게 되나요?
- ["왜?" 관점에서 생각] - JIT 컴파일러의 내부 동작은 어떻게 되나요?
- ["왜?" 관점에서 생각] - JVM 힙 내부구조는 어떻게 되어 있나요?
- ["왜?" 관점에서 생각] - 가비지 컬렉션(G.C)의 내부 동작은 어떻게 되나요?
- ["왜?" 관점에서 생각] - 배열의 선언과 메모리 할당은 어떤식으로 되나요?
- ["왜?" 관점에서 생각] - String 객체를 생성하는 방법과 내부 동작 원리는 어떻게 되나요?
- ["왜?" 관점에서 생각] - 자바는 어떻게 실행 되나요?
- ["왜?" 관점에서 생각] - 자바 메모리 구조가 어떻게 되어 있나요?
- ["왜?" 관점에서 생각] - 변수들은 JVM에서 어디에 할당 되나요?
- ["왜?" 관점에서 생각] - 원시형과 참조형 타입은 JVM 메모리에 어느 위치에 할당 되나요?
- ["왜?" 관점에서 생각] - static 메서드와 일반 메서드의 차이점은 무엇인가요?
- ["왜?" 관점에서 생각] - 왜 모든 클래스는 Object 클래스의 상속을 받나요?
- ["왜?" 관점에서 생각] - 왜 인터페이스는 상수 필드만 선언이 가능한가요?
- ["왜?" 관점에서 생각] - 왜 실행을 위해서는 main 메서드가 필요한 것 인가요?
- ["왜?" 관점에서 생각] - System.out.println() 내부 동작원리가 어떻게 되나요?
- ["왜?" 관점에서 생각] - 상속이 갖는 단점들은 어떤 것들이 있나요?
- ["왜?" 관점에서 생각] - 상속받는 자식 클래스를 생성하면 부모 객체는 생성 될까?
- ["왜?" 관점에서 생각] - DTO를 만들어 두면 무슨 장점이 있나요?
- ["왜?" 관점에서 생각] - 클래스 멤버 변수의 초기화 순서는 어떻게 되나요?
- ["왜?" 관점에서 생각] - 왜 배열의 index는 0부터 시작하나요?
- ["왜?" 관점에서 생각] - 왜 생성자를 만들어야 하나요?
- ["왜?" 관점에서 생각] - 왜 String 객체가 불변인가요?
- ["왜?" 관점에서 생각] - 왜 char타입은 정수인가요?
- ["왜?" 관점에서 생각] - 클래스와 객체 차이는 무엇인가요?
- ["왜?" 관점에서 생각] - 클래스와 메소드를 사용하는 이유는 무엇인가요?
- ["왜?" 관점에서 생각] - 왜 추상클래스와 인터페이스의 용도를 나눈 것인가요?
- ["왜?" 관점에서 생각] - 왜 인터페이스를 왜 사용하나요?
- ["왜?" 관점에서 생각] - 왜 인터페이스는 Default Method는 왜 추가 했나요?
- ["왜?" 관점에서 생각] - 왜 enum을 사용하는 건가요?
- ["왜?" 관점에서 생각] - 왜 박싱을 해야 하고, 언박싱을 해야 하나요?
- ["왜?" 관점에서 생각] - 왜 제네릭이 필요한가요? / 타입 소거란?
- ["왜?" 관점에서 생각] - 왜 래퍼 클래스를 사용하나요?
- ["왜?" 관점에서 생각] - 왜 equals, hashCode 메서드는 사용하나요?
- ["왜?" 관점에서 생각] - feat : (JAVA) : try / catch / finally 동작 순서에 대해서 자세히 설명
- ["왜?" 관점에서 생각] - 왜 불변 객체나 final을 굳이 사용해야 하는 이유가 있나요?
- ["왜?" 관점에서 생각] - String, StringBuffer, StringBuilder의 3개의 차이는 무엇인가요?
- ["왜?" 관점에서 생각] - String을 합칠때 “+” 연산자를 사용한다면 단점은?
- ["왜?" 관점에서 생각] - Comparable과 Comparator을 사용하는 이유는 무엇인가요?
- ["왜?" 관점에서 생각] - exception VS error
- ["왜?" 관점에서 생각] - 왜 스프링을 쓰는 건가요?
- ["왜?" 관점에서 생각] - Annotation을 왜 사용하나요?
- ["왜?" 관점에서 생각] - IoC, DI, DIP 다 같은거 아닌가요?
- ["왜?" 관점에서 생각] - AOP (=Aspect Oriented Programming)란 무엇인가요?
- ["왜?" 관점에서 생각] - PSA(Portable Service Abstraction)
- ["왜?" 관점에서 생각] - DI 생성자 주입을 권장 하는 이유는 무엇인가요?
- ["왜?" 관점에서 생각] - 스프링 컨테이너 내부 동작은 어떻게 되나요?
- ["왜?" 관점에서 생각] - 스프링 빈(Bean)이랑, BeanDefinition 차이가 무엇인가요?
- ["왜?" 관점에서 생각] - 빈 생명주기 콜백 내부 동작 순서는 어떻게 되나요?
- ["왜?" 관점에서 생각] - 왜 싱글톤 레지스트리를 사용하나요?
- ["왜?" 관점에서 생각] - @Configuration 내부에서 @Bean이 등록되는 과정은 어떻게 되나요?
- ["왜?" 관점에서 생각] - 왜? @Bean과 @Configuration 함께 사용해야 되나요?
- ["왜?" 관점에서 생각] - @Bean vs @Component 차이가 무엇인가요?
- ["왜?" 관점에서 생각] - 스프링에서 빈을 등록하는 방법은 무엇인가요?
- ["왜?" 관점에서 생각] - 프로토타입 사용 이유 / 싱글톤 빈과 같이 사용시 문제점은 무엇인가요?
- ["왜?" 관점에서 생각] - 빌더 패턴 사용 이유는?
- ["왜?" 관점에서 생각] - @RequestBody, @RequestParam, @ModelAttribute의 차이는?
- ["왜?" 관점에서 생각] - 롬복이 만드는 메소드들이 생성되는 시점은?
- ["왜?" 관점에서 생각] - form태그의 실행 내부 동작은?
- ["왜?" 관점에서 생각] - API (json)방식 / @ResponseBody 내부 동작은?
- ["왜?" 관점에서 생각] - 서블릿 설명 / 내부 동작은?
- ["왜?" 관점에서 생각] - Front Controller란?
- ["왜?" 관점에서 생각] - 리다이렉트, 디스패처 서블릿은 무엇인가?
- ["왜?" 관점에서 생각] - 디스패처 서블릿 내부 동작은 어떠한가?
- ["왜?" 관점에서 생각] - 뷰 리졸버(viewResolver) 사용 이유는?
- ["왜?" 관점에서 생각] - Handler vs HandlerAdapter 비교
- ["왜?" 관점에서 생각] - MVC 요청 처리 내부 동작
- ["왜?" 관점에서 생각] - HTTP 메시지 컨버터란 무엇인가요?
- ["왜?" 관점에서 생각] - 요청 매핑 헨들러 어뎁터 구조는?
- ["왜?" 관점에서 생각] - PRG, RedirectAttributes 설명
- ["왜?" 관점에서 생각] - 스프링 메시지 적용하기
- ["왜?" 관점에서 생각] - MessageCodesResolver, Validation
- ["왜?" 관점에서 생각] - @Validated 설명, Bean Validation
- ["왜?" 관점에서 생각] - 검증: Form 전송 객체 분리
- ["왜?" 관점에서 생각] - 검증: HTTP 메시지 컨버터
- ["왜?" 관점에서 생각] - 로그인 쿠키, 세션 이해, ArgumentResolver 활용
- ["왜?" 관점에서 생각] - 필터, 스프링 인터셉터 설명
- ["왜?" 관점에서 생각] - 예외 처리와 오류 페이지 개념
- ["왜?" 관점에서 생각] - API 예외 처리
- ["왜?" 관점에서 생각] - 스프링 타입 컨버터
- ["왜?" 관점에서 생각] - @EventListener
- ["왜?" 관점에서 생각] - database system 동작하는 방식은 어떻게 되나요?
- ["왜?" 관점에서 생각] - RDBMS와 DBMS 차이는 무엇인가요?
- ["왜?" 관점에서 생각] - logical vs conceptual vs physical 각각의 차이는 무엇인가요?
- ["왜?" 관점에서 생각] - three-schema architecture란? 무엇인지 설명해주세요
- ["왜?" 관점에서 생각] - DML, VDL, DDL 각각 무엇인가요?
- ["왜?" 관점에서 생각] - relation database 개념 / 특징 / keys 종류는 어떤 것들이 있나요?
- ["왜?" 관점에서 생각] - attribute data type 정의란 무엇인가요?
- ["왜?" 관점에서 생각] - 프로시저(procedure)란 무엇인가요?
- ["왜?" 관점에서 생각] - trigger란 무엇인가요?
- ["왜?" 관점에서 생각] - JDBC 표준 인터페이스란 무엇인가요?
- ["왜?" 관점에서 생각] - 커넥션 풀, DataSource는 무엇인가요?
- ["왜?" 관점에서 생각] - transaction은 무엇인가요?
- ["왜?" 관점에서 생각] - Isolation 비정상적인 현상이란?
- ["왜?" 관점에서 생각] - transaction isolation level이란?
- ["왜?" 관점에서 생각] - 서비스 계층에 대해서
- ["왜?" 관점에서 생각] - 스프링으로 트랜잭션을 해결한다면?
- ["왜?" 관점에서 생각] - 트랜잭션 AOP, @Transactional은 무엇인가요?
- ["왜?" 관점에서 생각] - schedule과 serializable이란?
- ["왜?" 관점에서 생각] - Three-tier architecture / stored procedure이란?
- ["왜?" 관점에서 생각] - recoverable, unrecoverable 이란?
- ["왜?" 관점에서 생각] - DB에서의 lock 개념 설명
- ["왜?" 관점에서 생각] - read-lock, write-lock 이란?
- ["왜?" 관점에서 생각] - MVCC 이란 무엇인가요?
- ["왜?" 관점에서 생각] - Functional dependency란 무엇인가요?
- ["왜?" 관점에서 생각] - DB 정규화(Normalization)란 무엇인가요?
- ["왜?" 관점에서 생각] - DB 인덱스란?
- ["왜?" 관점에서 생각] - B tree 란?
- ["왜?" 관점에서 생각] - B tree 데이터 삭제 방식 어떤가요?
- ["왜?" 관점에서 생각] - computer system 무엇인가요?
- ["왜?" 관점에서 생각] - 왜 DB index로 B tree 계열이 사용되는가?
- ["왜?" 관점에서 생각] - 파티셔닝(partitioning) 이란?
- ["왜?" 관점에서 생각] - DBCP (DB connection pool) 무엇인가요?
- ["왜?" 관점에서 생각] - NoSQL이란 무엇인가?
- ["왜?" 관점에서 생각] - JDBC 반복 문제 해결해보기. (JdbcTemplate)
- ["왜?" 관점에서 생각] - JdbcTemplate 장/단점
- ["왜?" 관점에서 생각] - DB연결 테스트 코드(설정)
- ["왜?" 관점에서 생각] - DB연결 테스트 방법 (@Transactional)
- ["왜?" 관점에서 생각] - 임베디드 모드
- ["왜?" 관점에서 생각] - 트랜잭션 AOP 주의 사항
- ["왜?" 관점에서 생각] - 트랜잭션 AOP 주의 사항 - 초기화 시점
- ["왜?" 관점에서 생각] - 트랜잭션 옵션
- ["왜?" 관점에서 생각] - 예외와 트랜잭션 커밋, 롤백
- ["왜?" 관점에서 생각] - 스프링 트랜잭션 전파
- ["왜?" 관점에서 생각] - REQUIRED
- ["왜?" 관점에서 생각] - MyBatis 설명, 설정 방법
- ["왜?" 관점에서 생각] - MyBatis 적용 해보기
- ["왜?" 관점에서 생각] - DB 접근(JPA)
- ["왜?" 관점에서 생각] - JPA 설정, 적용, 핵심
- ["왜?" 관점에서 생각] - 스프링 데이터 JPA (사용 이유)
- ["왜?" 관점에서 생각] - Querydsl, 설정 방법
- ["왜?" 관점에서 생각] - 트레이드 오프
- [HTTP] - 네트워크와 인터넷 개념
- [HTTP] - World Wide Web
- [HTTP] - IP프로토콜 (=인터넷 프로토콜)
- [HTTP] - TCP, UDP 간단히 설명
- [HTTP] - TCP 3 way handshake
- [HTTP] - PORT, DNS 설명
- [HTTP] - TCP/IP stack 설명
- [HTTP] - 프로토콜 / OSI 7 layer
- [HTTP] - 중간 정리
- [HTTP] - URI 이란?
- [HTTP] - 웹 브라우저 요청 흐름
- [HTTP] - 클라이언트 서버 구조
- [HTTP] - Stateful, Stateless
- [HTTP] - 비 연결성(connectionless)
- [HTTP] - HTTP 메시지
- [HTTP] - 리소스 식별
- [HTTP] - HTTP 메서드 - GET, POST
- [HTTP] - HTTP 메서드 - PUT, PATCH, DELETE
- [HTTP] - HTTP 메서드의 속성 (=멱등)
- [HTTP] - 클라이언트에서 서버로 데이터 전송
- [HTTP] - HTTP 상태코드 소개 (2xx, 3xx)
- [HTTP] - HTTP 상태코드 소개 (4xx, 5xx)
- [HTTP] - 일반 정보, 특별한 정보
- [HTTP] - 쿠키, 세션
- [HTTP] - 캐시 기본 동작
- [HTTP] - 검증 헤더와 조건부 요청
- [HTTP] - 프록시 캐시, 캐시 무효화
- [AWS] - EC2 서버로 접속하기
- [AWS] - IntelliJ에서 RDS에 접속하기
- [AWS] - EC2에서 RDS 연결 확인 방법
- [AWS] - 클라우드 컴퓨팅 / 리전(Region) / 가용영역(Availability Zone)
- [AWS] - EC2란? / RDS란?
- [AWS] - 라우트 테이블(Route Table) / 보안 그룹(Security Group)
- [AWS] - VPC란? / 보안 그룹(Security Group)이란?
- [AWS] - 사설 ip, CIDR / 서브넷이란?
MyBatis 사용해보기 + Trouble Shooting. (Link)
1. DB 연결, table 작성
2. 회원가입
3. 로그인(Security)
4. 게시판 글 등록, 상세보기, 수정, 삭제
5. 프로필, 프로필 수정
6. 조회수
7. 댓글
8. 좋아요
- 1-1. 테이블 작성
- 1-2. (lntellij) DB 연결
- 2-1. 회원가입 Logic
- 2-2. 회원가입 (설명 + 해결책)
- 3-1. 로그인, 시큐리티 (설명)
- 3-2. 로그인, 시큐리티 (흐름 설명)
- 4-1. 게시판 글 쓰기, 상세보기
- 4-2. 게시판 글 쓰기, 상세보기 (몰랐던 점)
- 4-3. 게시판 수정, 삭제
- 5-1. 프로필, 프로필 수정
- 5-2. 프로필, 프로필 수정 (몰랐던 점)
- 6-1. 조회수
- 6-2. 조회수 (몰랐던 점)
- 7-1. 댓글
- 7-2. 댓글 기능 몰랐던 점
- 8-1. 좋아요
프로젝트 (구현 + 문제) 해결기 (Link)
### 블로그 작성 방법은 다음과 같습니다.
- 어떻게 했기에 문제 상황을 마주하게 되었는지?
- 이게 왜 문제인지?
- 문제를 어떻게 감지했는지?
- 어떻게 해결했는지?
- 그렇게 하면 왜 해결되는지?
- 얼마나 개선되었는지?
- 배우는 것은 무엇인지?
- 무엇을 얻을 것인지?
- 이 방법이 최선이었는지?
- 다른 방법은 없었는지?
- 비밀번호 검증 및 데이터 무결성 유지
- 닉네임 중복 검증과 예외 처리
- HTTP 415 오류(회원가입 + 로그인)
- 유효성 검사 및 이메일 인증 오류
- 비밀번호 찾기 및 재설정과 임시 비밀번호 문제
- 비밀번호 해싱과 Security로 보안 높이기
- JWT 로그인 및 Spring Security 인증 문제
- JWT 도입 후 API 인증 이슈
- JPA 엔티티 Dirty Checking 오류
- JPA 논리적 삭제와 데이터 무결성 문제
- 트랜잭션 및 외래키 제약 조건 문제
- REST API와 JPA 기반 프로필 및 친구 관리 오류
- 동시성 문제로 인한 조회수 및 좋아요
- 페이징, 무한 스크롤(댓글) 기능 구현 중 문제
- AWS S3 연동 및 이미지 업로드 문제
- AWS EC2 인스턴스와 MySQL 연결 문제
- 🎒‘우아한 테크코스’ -> PR 정리 List
- [우아한 테크코스] - git, PR, README 작성법
- [우아한 테크코스] - 클래스명, 메소드명, 변수명 규칙
- [우아한 테크코스] - 코딩 컨벤션
- [우아한 테크코스] - 자바 API를 사용하자
- [우아한 테크코스] - 메소드, 필드, enum 작성을 위한 규칙
- [우아한 테크코스] - 객체는 객체스럽게 사용한다
- [우아한 테크코스] - 테스트 코드 작성 규칙
- [우아한 테크코스] - 객체지향 설계 방법
- [우아한 테크코스] - 객체지향 생활 체조 9가지 원칙
- [우아한 테크코스] - 방어적 복사, Unmodifiable
- [우아한 테크코스] - 일급 컬렉션을 사용하는 이유
- [객체지향설계] - 객체지향적 설계 예시
- [JPA] - ORM
- [JPA] - JPA 설정(Maven 환경)
- [JPA] - JPA 어떻게 동작하는가
- [JPA] - 영속성 컨텍스트
- [JPA] - 플러시
- [JPA] - 엔티티 매핑
- [JPA] - DB 스키마 자동 생성
- [JPA] - 기본 키 매핑
- [JPA] - 연관관계 매핑
- [JPA] - 연관관계 매핑(=코드)
- [JPA] - 다양한 연관관계 매핑
- [JPA] - 다양한 연관관계 매핑(=코드)
- [JPA] - 상속관계 매핑
- [JPA] - 상속관계 매핑(=코드)
- [JPA] - 프록시 기초
- [JPA] - 즉시 로딩과 지연 로딩
- [JPA] - 영속성 전이: CASCADE
- [JPA] - 기본값 타입
- [JPA] - 임베디드 타입
- [JPA] - 값 타입과 불변 객체
- [JPA] - API를 만들시 '회원 조회' 유의사항
- [JPA] - 엔티티 조회 DTO 조회
- [JPQL] - 객체지향 쿼리 언어(JPQL)
- [JPQL] - TypeQuery, Query, 프로젝션
- [JPQL] - 페이징 API, 조인
- [JPQL] - 서브 쿼리, JPQL 타입 표현
- [JPQL] - 조건식, JPQL 기본 함수
- [JPQL] - 경로 표현식(JPQL)
- [JPQL] - 페치 조인(JPQL)
- [Spring Data JPA] - Spring Data JPA 설명
- [Spring Data JPA] - 스프링 데이터 JPA 분석
- [Spring Data JPA] - 메소드 이름으로 쿼리 생성
- [Spring Data JPA] - @Query 설명, 값, DTO 조회
- [Spring Data JPA] - 페이징과 정렬
- [Spring Data JPA] - Auditing
- [Querydsl] - Querydsl 설정과 검증
- [Querydsl] - Querydsl vs JPQL 차이, Q-Type 관례
- [Querydsl] - 검색 조건 쿼리
- [Querydsl] - 결과 조회
- [Querydsl] - 정렬, 페이징, 집합
- [Querydsl] - Querydsl 조인
- [Querydsl] - Querydsl 서브 쿼리
- [Querydsl] - 프로젝션
- [Querydsl] - 동적 쿼리
- [Querydsl] - 순수 JPA 리포지토리, Querydsl 비교
- [Spring] - 스프링이 뭔가?
- [Spring] - Java에서의 ‘역할’과 ‘구현’
- [Spring] - SOLID
- [Spring] - IoC (=제어의 역전, =DI 컨테이너), @Configuration
- [Spring] - @Controller, @RestController의 이해
- [Spring] - @Autowired, @Component, @ComponentScan, 옵션 처리
- [Spring] - 생성자 주입을 선택
- [Spring] - 스프링 컨테이너, 스프링 빈, BeanDefinition
- [Spring] - 싱글톤 패턴, 싱글톤 방식의 주의점, 바이트 조작
- [Spring] - Lombok
- [Spring] - @Primary, 빈 생명주기 콜백 @PostConstruct, @PreDestroy
- [Spring] - 빈 스코프, 스코프와 프록시
- [Spring] - @RequestMapping(), HttpServletRequest
- [Spring] - @GetMapping , Model
- [Spring] - HTTP 요청 파라미터 - @RequestParam(), @PathVariable
- [Spring] - HTTP 요청 파라미터 - @ModelAttribute
- [Spring] - 특별한 @ModelAttribute 사용법
- [Spring] - API 방식(json) , @ResponseBody
- [Spring] - @PostMapping() , form태그 , input태그
- [Spring] - HTTP body에 데이터를 직접 담아서 요청 - @RequestBody
- [Spring] - HTTP 요청 메시지 - JSON
- [Spring] - 리다이렉트, 디스패처
- [Spring] - 프론트 컨트롤러 패턴
- [Spring] - MVC(=Model View Controller)
- [Spring] - 입력 화면, 출력 화면 흐름
- [Spring] - ‘뷰 리졸버’를 왜 사용하는가?
- [Spring] - 핸들러 == 컨트롤러
- [Spring] - 스프링 MVC 구조
- [Spring] - 핸들러 매핑과 핸들러 어댑터
- [Spring] - 요청 매핑 - API 예시
- [디자인 패턴 - 싱글톤 패턴]
- [디자인 패턴 - 스트래티지 패턴]
- [디자인 패턴 - 옵저버 패턴]
- [디자인 패턴 - 팩토리 메서드 패턴]
- [디자인 패턴 - 어댑터 패턴]
- [디자인 패턴 - 템플릿 메서드 패턴]
- [디자인 패턴 - 프록시 패턴]
- [Web Basic] - WAS 서버와 WEB 서버의 이해
- [Web Basic] - Servlet
- [Web Basic] - 동시 요청 - 멀티 쓰레드
- [Web Basic] - HTML, HTTP API, SSR
- [Web Basic] - 웰컴 페이지, WEB-INF 디렉토리
- [Web Basic] - HttpServletRequest, HttpServletResponse
- [Web Basic] - HttpServletRequest, 쿼리 파라미터 조회 메서드들
- [Web Basic] - JSP, 서블릿과 JSP의 한계
- [Web Basic] - Postman 사용 이유, 사용 방법
- [Web Basic] - 절대 경로, 상대 경로
- [Java] - 📁자바 기초 디렉토리
- [Java] - 자바 가상머신(=JVM)
- [Java] - Map 정리
- [Java] - 오토박싱 & 언박싱
- [Java] - 래퍼(wrapper) 클래스
- [Java] - 컬렉션 프레임워크
- [Java] - Comparable과 Comparator
- [Java] - Optional
- [Java] - 익명
- [Java] - 람다식
- [Java] - 스트림
- [예외처리] - 에러는 크게 2가지
- [예외처리] - 예외 계층
- [예외처리] - 체크 예외, 언체크 예외 설명
- [예외처리] - 체크 예외, 언체크(런타임) 예외 활용
- [예외처리] - 예외 포함과 스택 트레이스
- [예외처리] - 스프링 예외 추상화, SQL 예외 변환기
- [SQL] - 테이블 구조 조작
- [SQL] - 패턴 매칭 (LIKE, BETWEEN) / null 의미와 Three-Valued Logic에 대해 설명
- [SQL] - 행 추가 (INSERT) / 데이터 갱신 (UPDATE) / 삭제하기 (DELETE)
- [SQL] - 데이터 조회 (SELECT) / 별칭(AS) 사용 / 중복값 제외 (DISTINCT)
- [SQL] - 데이터 조회 기술 subquery / IN / EXISTS / ANY / ALL
- [SQL] - inner join, outer join 종류
- [SQL] - 그룹별로 원하는 통계 group by / aggregate function / order by
- [SQL] - 행 제한하기 (LIMIT)
- [SQL] - 수치 연산, 별칭(AS) 사용
- [SQL] - 문자열 연산
- [SQL] - 물리삭제와 논리삭제
- [SQL] - 행 개수 구하기 (COUNT)
- [관계형 DB] - 관계형 DB 설명
- [관계형 DB] - 개념적 데이터 모델링
- [thymeleaf] - 타임리프 소개
- [thymeleaf] - 텍스트 - text, utext
- [thymeleaf] - 변수 - SpringEL
- [thymeleaf] - URL 링크
- [thymeleaf] - 선택 변수 표현식 -> *{...}, object=${...}
- [thymeleaf] - 리터럴
- [thymeleaf] - 입력 폼 처리
- [thymeleaf] - 연산
- [thymeleaf] - 속성 값 설정
- [thymeleaf] - 반복
- [thymeleaf] - 조건부 if, switch 문
- [thymeleaf] - 블록
- [thymeleaf] - 자바스크립트 인라인
- [thymeleaf] - 템플릿 조각(상단, 하단, 사이드)
- [thymeleaf] - 템플릿 레이아웃
- [thymeleaf] - 체크 박스 - 단일
- [thymeleaf] - 체크 박스 - 타임리프 적용
- [thymeleaf] - 멀티 체크 박스
- [thymeleaf] - 라디오 버튼
- [thymeleaf] - 셀렉트 박스
- 1-1. Big-O
- 2-1. 노드
- 3-1. 선형 리스트
- 4-1. bubble sort(버블 정렬)
- 4-2. selection sort(선택 정렬)
- 4-3. insertion sort(삽입 정렬)
- 4-4. Merge Sort(합병정렬)
- 4-5. quick sort(퀵정렬)
- 5-1. Linked list
- 6-1. 완전탐색
- 7-1. 재귀 함수
- 8-1. 이진 탐색
- 9-1. 자료구조란? (=해시)
- 9-2. stack(스택)
- 9-3. queue(큐)
- 10-1. 그래프
- 10-2. 인접 행렬
- 10-3. 인접 리스트
- 10-4. 그래프 순회의 뜻
- 11-1. 깊이 우선 탐색 (=DFS)
- 11-2. 깊이 우선 탐색의 철학
- 11-3. 깊이 우선 탐색의 예제
- 11-4. 깊이 우선 탐색의 구현
- 12-1. 트리의 개념
- 12-2. 트리의 순회, 종류
- 12-3. 트리 순회 구현
- 13-1. 너비 우선 탐색 구현(=BFS)
- 15-1. 동적 계획법의 개념
- 15-2. 동적 계획법의 문제 풀이 순서
- 15-3. 동적계획법의 예제: 피보나치 수