Today I Learned
- 좋은 개발자가 되기 위해 하루동안 학습한 내용이나 개발관련 경험들을 기록으로 남긴다.
- Today I Learned인데 날짜를 표시하지 않는 이유는 조급해지지 않고 꾸준하기 위함이다.
JayJin님, Lee HyunJoo님, RingoPPA님의 Github TIL을 보고 많은 영감을 얻었다.
작성 규칙
- 폴더와 파일명은 영문으로 작성한다.
- 해당 문서를 다시 봤을 때, 추가적인 검색의 비용이 들지 않도록 자세히 기록한다.
- 더 많은 공유를 원하는 기록은 블로그에 포스팅한다.
- 쉴 땐 확실히 쉬고, contributions를 초록색으로 채우는 것에 집착하지 않는다.
- reference를 명시하고, 원작자가 참고를 허용하는 자료만 사용한다.
분류
Seminar & Conference
- [2017.11.16] okky 미니 세미나 - 비전공 학원출신 SI 개발자, 유명 스타트업 들어간 ssul
- [2018.02.27] okky 미니 세미나 - IT 회사 탐방기, 닭집 CEO보단 개발자
- [2018.03.29] okky 미니 세미나 - 유명 IT 기업 입사 도전 성공기
- [2018.04.18] 2018 aws summit seoul
- [2018.09.11] 사내 세미나 - 협업의 육하원칙
- [2019.04.18] 2019 aws summit seoul
- [2019.09.26] 우아한 스프링 배치
- [2019.10.18] Kafka Conference Seoul 2019
- [2019.11.21] 우아한 레디스
- [2019.11.27] NHN FORWARD 2019 후기
- [2020.02.11] Google BigQuery
- 교육자 자바지기님의 토크&세미나
Java
- 개발하면서 마주한 자주 사용되는 팁 & 문제 해결 노트
- DI(Dependency Injection)를 이용한 빈 의존성 관리
- 12장. 멀티 스레드
- 13장. 제네릭
- 14장. 람다식
- 15장. 컬렉션
- 16장. 스트림과 병렬처리
- 개발서버에 소스코드를 배포하는 과정에 대한 자동화
- Java Logging Framework, LOGBack
- Ehcache Configuration
JPA
-
JPA의 트랜잭션 범위의 영속성 컨텍스트 전략, 스프링이 엔티티매니저의 Thread-safe를 보장하는 방법
-
자바 ORM 표준 JPA 프로그래밍 - 기본편
- 01. SQL 중심적인 개발의 문제점
- 02. JPA 소개
- 03. JPA 시작하기(프로젝트 생성, 애플리케이션 개발), JPQL 소개
- 04. 영속성 컨텍스트
- 05. 엔티티 매핑(객체와 테이블, 필드와 컬럼, 기본키 매핑)
- 06. 연관관계 매핑 기초(단방향, 양방향 매핑 이론, 연관관계의 주인)
- 07. 다양한 연관관계 매핑(@ManyToOne, @OneToMany, @OneToOne, @OneToMany)
- 08. 고급 매핑(상속관계 매핑, @MappedSuperclass)
- 09. 프록시, 즉시로딩과 지연로딩, 영속성 전이와 고아 객체
- 10. 값 타입, 임베디드 타입, 값 타입 컬렉션
- 11. JPQL 객체 지향 쿼리 언어 - 기본(프로젝션, 페이징, 조인, 서브쿼리, 타입 표현, 조건식, 함수)
- 12. JPQL 객체 지향 쿼리 언어 - 중급(경로표현식, 페치조인, 다형성쿼리, Named 쿼리, 벌크 연산)
- 99. 단계별 실전 예제
-
T아카데미 토크온 세미나
Spring Boot
- [스프링 부트 개념과 활용] 1. 스프링 부트 시작하기
- [스프링 부트 개념과 활용] 2. 스프링 부트 원리
- [스프링 부트 개념과 활용] 3. 스프링 부트 활용
- [스프링 부트 개념과 활용] 4. 스프링 MVC
- [스프링 부트 개념과 활용] 5. 스프링 데이터
Spring
- 스프링 프레임워크 핵심 기술
- 1. 스프링이란?
- 2. 프로젝트 만들기
- 3,4. Dependency Injection
- 5. DI 활용
- 6. DI 설정 방법(xml, java)
- 7. 생명주기와 범위(Life Cycle, Scope)
- 8. 외부 파일을 이용한 스프링 설정(Environment, Properties, Profile)
- 9,10. Spring AOP(Aspect Oriented Programming)
- 11. Spring MVC basic
- 12. MVC Controller
- 13. MVC Form Data
- 14. @RequestMapping Parameter
- 15. Form 데이터 값 검증
- 16. 스프링 MVC 게시판1(프로젝트 설계, DB 구축)
- 17. 스프링 MVC 게시판2(패키지 구성, Controller, list page)
- 18. 스프링 MVC 게시판3(리스트 조회, 게시물 등록, 상세조회)
- 19. 스프링 MVC 게시판(게시물 수정, 게시물 삭제)
- 20. 스프링 MVC 게시판(댓글 등록)
- 21. 스프링 JDBC
- 22. 트랜잭션1(개념 및 사용 방법)
- 23. 트랜잭션2(TransactionTemplate, 복수 트랜잭션 처리)
- 24. 트랜잭션3(트랜잭션 전파 속성)
- 25. Security1(보안 관련 설정, 라이브러리 추가)
- 26. Security2(로그인 페이지 생성 및 연동, 기능 추가)
- 27. Security3(보안 관련 taglibs 사용법)
- 28. Mybatis1(기본 설정)
- 29. Mybatis2(리스트 출력)
- 30. Mybatis1(글 작성 및 삭제, 마무리)
Database
- database의 본질
- MySQL 01 - Intro
- MySQL 02 - CRUD
- MySQL 03 - 관계형 데이터베이스의 필요성과 JOIN
- Windows10 환경에서 Mysql-5.7.19 설치 및 세팅 가이드
- MySQL 사용자 계정 추가/삭제, 권한 제어
- MySQL CURRENT_TIMESTAMP(vs Oracle SYSDATE)
- ORACLE_sequence_in_MySQL
- MySQL unique index vs index
Node.js
- [Node API 서버] Hello Nodejs
- [Node API 서버] Express basic
- [Node API 서버] NPM
- [Node API 서버] REST API(첫번째 API 만들기)
- [Node API 서버] 테스트 주도 개발(mocha, should, supertest)
- [Node API 서버] TDD로 하는 API 서버 개발
- [Node API 서버] 코드 리팩토링(라우터, 컨트롤러, 테스트 코드, 테스트 환경 개선)
- [Node API 서버] ORM DB연동 및 학습 마무리
Vue.js
- Vue를 위한 개발환경 설정
- Vue 시작하기
- Vue Instance, Lifecycle
- Vue Components(global, local)
- Vue Component 통신(props, event bus, v-for)
- Vue Router(Nested Router, Named View)
- Vue Resource
- Vue Template
- Vue Data Binding
- Single File Component(.vue)
- Vue CLI를 이용한 프로젝트 구성 방법 + Single File Component
- Vue Loader, 전체 내용 정리
- Vue.js를 위한 ES6
- Vuex 개요
- Vuex의 기술 요소
- Vuex Helper
Git
JavaScript
Design Pattern
- Strategy Pattern
- Adapter Pattern
- Template Method Pattern
- Factory Method Pattern
- Singleton Pattern
- Prototype Pattern
- Builder Pattern
- Abstract Factory Pattern
Algorithm
- 1-1. 알고리즘의 분석
- 2-1. 순환의 개념과 기본 예제 1 - recursion basic
- 2-2. 순환의 개념과 기본 예제 2 - recursive thinking
- 2-3. 순환의 개념과 기본 예제 3 - designing_recursion
- 2-4. Recursion 응용 1 - maze, 미로찾기
- 2-5. Recursion 응용 2 - counting_cells_in_a_blob
- 2-6. Recursion 응용 3 - n queens problem(backtracking)
- 2-7. Recursion 응용 4 - powerset, 멱집합
- 3-1. 기본 정렬 알고리즘(selection, bubble, insertion)
- 3-2. Merge Sort(합병정렬)
- 3-3. Quick Sort(빠른정렬)
- 3-4. Heap Sort(힙정렬)
- 3-5. Priority Queue(우선순위 큐)
- 3-6. 정렬의 하한(lower bound)
- 3-7. Counting Sort - 선형시간 정렬 알고리즘
- 3-8. Radix Sort
- 3-9. Sorting in Java
- 알고리즘을 위한 자바 IO
- 4-1. Tree, Binary Tree
- 4-2. Binary Search Tree - 이진 탐색 트리
- 5-1. Red Black Tree - 개요
- 5-2. Red Black Tree - INSERT, FIXUP 연산
- 5-3. Red Black Tree - DELETE, FIXUP 연산
- 6-1. Hashing - 개요
- 6-2. Hashing - Hash 함수, Hashing in Java
- 7-1. Graph 01 - 개념과 표현
- 7-2. Graph 02 - BFS(Breadth-First Search, 너비우선탐색)
- 7-3. Graph 03 - DFS(Depth-First Search, 깊이우선탐색)
- 7-4. Graph 04 - DAG(Directed Acycllic Graph)
- 8-1. Dynamic Programming 01 - Memoization, Bottom-Up(Fibonacci)
- 8-2. Dynamic Programming 02 - Metric Path(Recursion -> DP)
- 8-3. Dynamic Programming 03 - Optimal Substructure
- 8-4. Dynamic Programming 04 - Matrix Chain Multiplication
- 8-5. Dynamic Programming 05 - Longest Common Subsequence
- 8-6. Dynamic Programming 06 - Knapsack Problem
Redis
Linux
ElasticStack
- elasticsearch getting started(개념, 설치 및 실행, 클러스터 구축)
- elasticsearch relevance(ES의 검색 score 계산 알고리즘)
- elasticsearch APIs
- logstash plugins
- rhel7.5 기반 elasticsearch cluster 구성 팁
Cloud
- AWS RDS 기본 설정
- AWS EC2 서버 생성, 접속시 필수 설정
- AWS EC2 인스턴스 생성하기
- AWS EC2 ssh 원격 접속과 scp를 통한 파일 업로드
- NVIDIA GPU CLOUD 플랫폼
- NVIDIA GPU CLOUD on AWS(TensorFlow Example)
- NVIDIA GPU Server(Container Environment)
- AWS Lambda와 Serverless Application Model Hands-on Lab