Skip to content

우아한테크코스 4기에서 활동한 내용들을 기록합니다 📝

Notifications You must be signed in to change notification settings

devHudi/woowacourse-archive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 

Repository files navigation

우아한테크코스 아카이브 ✨

우아한테크코스 4기에서 활동한 내용들을 기록합니다 📝

🫘 프리코스, 최종 코딩 테스트

2021.11.24 ~ 2021.12.28

미션 기록

미션 레포지토리 PR & Reviews
숫자 야구 java-baseball-precourse PR-423
자동차 경주 java-racingcar-precourse PR-348
자판기 java-vendingmachine-precourse PR-5
페어 매칭 (최종 코딩테스트) java-pairmatching-precourse PR-26

🌱 레벨1 - TDD, OOP, FP, Web/DB 기초

2022.02.09 ~ 2022.04.07

레벨 목표

  • 자바 프로그래밍 언어에 대한 기본 문법을 익혀 프로그래밍하는 경험을 한다.
  • 읽기 좋은 코드를 구현하는 것이 왜 중요한지와 코드를 개선해 읽기 좋은 코드로 변경해 보는 경험을 한다.
  • 자신이 구현한 코드에 대해 단위 테스트와 리팩토링하는 경험을 한다.
  • 웹 프론트엔드에서 웹 백엔드까지 프로그래밍해 웹 애플리케이션을 개발하는 경험을 한다.

미션 기록

미션 레포지토리 PR & Reviews
자동차 경주 Step 1 java-racingcar PR-319
자동차 경주 Step 2 java-racingcar PR-345
로또 Step 1 java-lotto PR-385
로또 Step 2 java-lotto PR-439
블랙잭 Step 1 java-blackjack PR-273
블랙잭 Step 2 java-blackjack PR-369
체스 Step 1, 2, 3 java-chess PR-293
체스 Step 4, 5 java-chess PR-419

스터디 - 데일리 이펙티브 자바 스터디

https://github.com/woowacourse-study/2022-daily-effective-java

  • 등교하는 매일 17:50시에 매일 3명씩 돌아가며 이펙티브 자바의 아이템을 하나씩 아주 짧게 발표하는 스터디

🌿 레벨2 - 스프링, ATDD, 클라우드, 배포, 협업

2022.04.19 ~ 2022.06.10

레벨 목표

  • 스프링 프레임워크를 이용해 웹 애플리케이션을 개발한다.
  • 학습 테스트를 통해 새로운 기술을 익히고 미션에 적용한다.
  • 클라우드 환경에 애플리케이션을 배포하고 운영한다.
  • 새로운 기술을 익히는 본인만의 학습 방법을 찾는다.

미션 기록

미션 레포지토리 PR & Reviews
Spring 체스 Step 1 jwp-chess PR-361
Spring 체스 Step 2 jwp-chess PR-460
Spring 지하철 노선도 Step 1, 2 atdd-subway-map PR-184
Spring 지하철 노선도 Step 3 atdd-subway-map PR-312
Spring 지하철 경로조회 Step 1 atdd-subway-path PR-203
Spring 지하철 경로조회 Step 2 atdd-subway-path PR-300
Spring 장바구니 Step 1 jwp-shopping-cart PR-34
Spring 장바구니 Step 2 jwp-shopping-cart PR-130

스터디 - 우아한 WIL (Weekly, I Learned)

https://github.com/woowacourse-study/2022-woowahan-wil

  • 꾸준하고, 지속가능한 학습을 위해 매주 월요일 오전 10시에 각자 일주일간 학습한 내용을 발표하는 스터디
  • 스터디장으로 참여

🪴 레벨3 - 협업

2022.06.28 ~ 2022.08.19

레벨 목표

  • 진한 협업 경험

프로젝트 레포지토리

https://github.com/woowacourse-teams/2022-dallog

달록팀 기술블로그

https://dallog.github.io/

데모데이 발표

차수 영상 발표자
1차 https://www.youtube.com/watch?v=CpEPET2jXO4 파랑 & 나인
2차 https://www.youtube.com/watch?v=ngafnm7K7O0 매트 & 티거
3차 https://www.youtube.com/watch?v=sP1F-wWO0sY 리버 & 나인
4차 https://www.youtube.com/watch?v=29Q7xo68kk0 후디
5차 https://www.youtube.com/watch?v=W5J49Z4qGPg 후디 & 티거

스터디 - 알고리즘 스터디

https://github.com/woowacourse-study/2022-lv3-algorithm-study

  • 매주 백준 문제를 풀고 상호 리뷰하는 스터디

🌳 레벨4 - 바퀴의 재발명

레벨 목표

  • 현존하는 라이브러리와 프레임워크를 바닥부터 다시 개발해보는 경험을 통한 HTTP, 자바 멀티 쓰레딩, 서블릿, 스프링 프레임워크, JDBC에 대한 깊은 이해
  • DDD(Domain Driven Development)를 사용하여 레거시 코드를 리팩토링 해보는 경험

미션 기록

미션 레포지토리 PR & Reviews
톰캣 구현하기 Step 1 jwp-dashboard-http PR-150
톰캣 구현하기 Step 2 jwp-dashboard-http PR-195
톰캣 구현하기 Step 3, 4 jwp-dashboard-http PR-258
@MVC 프레임워크 구현하기 Step 1 jwp-dashboard-mvc PR-168
@MVC 프레임워크 구현하기 Step 2 jwp-dashboard-mvc PR-256
@MVC 프레임워크 구현하기 Step 3 jwp-dashboard-mvc PR-297
JDBC 라이브러리 구현하기 Step 1 jwp-dashboard-jdbc PR-115
JDBC 라이브러리 구현하기 Step 2, 3 jwp-dashboard-jdbc PR-199
레거시 코드 리팩토링 Step 1 jwp-refactoring PR-250
레거시 코드 리팩토링 Step 2 jwp-refactoring PR-319
레거시 코드 리팩토링 Step 2 jwp-refactoring PR-436

스터디 - CS Plant

https://github.com/woowacourse-study/2022-cs-plant

  • 레벨4 미션/실습과 관련된 지식을 공부하고, 모의 기술 면접을 통해 기초 CS 역량을 키우기 위한 스터디

🎤 발표

🖋 글쓰기 미션

레벨 주제 PR & Reviews 우아한형제들 기술 블로그 등재
레벨1 우아한테크코스 한 달 생활기 PR-82 -
레벨2 우테코에서 찾은 나만의 효과적인 공부법 PR-149 -
레벨3 팀 프로젝트가 나에게 남긴 것 PR-243 -
레벨4 팀 프로젝트가 나에게 남긴 것 PR-243 내가 꿈꾸는 프로그래머로서의 삶

🖋 블로깅

우아한테크코스 시작(2022.02.09)부터 수료(2022.11.25)까지 총 145개의 포스트를 작성하였습니다. 평균적으로 2일마다 하나의 포스팅을 꾸준히 작성했습니다.

순번 포스트 태그
1 우아한테크코스 4기 회고 - 1주차 회고
2 Java 에서 final 키워드 사용하기 java
3 지금 내가 가져야 하는 학습 태도 회고, 생각
4 Java 에서 toString 메소드의 올바른 사용 용도에 대하여 java
5 전략 패턴 (Strategy Pattern) 디자인패턴, 객체지향, java
6 우아한테크코스 4기 회고 - 2주차 회고
7 생성자 대신 정적 팩터리 메서드를 고려하라 디자인패턴, 객체지향, 이펙티브자바, java
8 TDD (테스트 주도 개발) 에 대하여 TDD, java, junit
9 동일성(Identity)과 동등성(Equality) java
10 생성자에 매개변수가 많다면 빌더를 고려하라 디자인패턴, 객체지향, 이펙티브자바, java
11 [Java] Collection 을 복사하는 여러 방법 java
12 [Java] 타입 캐스팅에 대하여 java
13 [Java] 열거 타입 (Enum) java
14 우아한테크코스 4기 회고 - 3주차 회고
15 [Java] 람다 표현식과 함수형 인터페이스 java
16 [Java] Stream 개념 java, java-stream
17 자바 8 표준 API의 함수형 인터페이스 (Consumer, Supplier, Function, Operator, Predicate) java
18 [Java] Comparable 과 Comparator java
19 우아한테크코스 4기 회고 - 4주차 회고
20 [Java] EnumMap java
21 [Java] Optional java
22 [Java] BigInteger와 BigDecimal java
23 템플릿 메소드 패턴 (Template Method Pattern) 디자인패턴, 객체지향, java
24 🖋 우아한테크코스 한 달 생활기 회고, 글쓰기미션
25 원시 타입 대신 VO(Value Object)를 사용하자 객체지향, java
26 의존성과 의존성 주입 디자인패턴, 객체지향, java
27 [Java] try-with-resources java
28 DTO의 개념과 사용범위 객체지향, DTO
29 직렬화(Serialization)와 역직렬화(Deserialization) 컴퓨터공학, java
30 우테코 레벨1을 마치며 만들어진 나만의 학습 방법론 회고, 생각
31 제어의 역전 (Inversion Of Control, IoC) 객체지향, 디자인패턴
32 Spring Bean과 IoC Container spring, java
33 계층화 아키텍처 (Layered Architecture) 아키텍처, 디자인패턴
34 혼란스러운 도메인, 도메인 모델, 도메인 객체 용어 정리 😵‍💫 DDD
35 REST(Representational State Transfer) API 백엔드, REST
36 [DB] 트랜잭션(Transaction) 데이터베이스
37 POJO (Plain Old Java Object) 객체지향, java
38 DAO (Data Access Object) 객체지향
39 테스트 더블 (Test Double) 테스트
40 격리된 테스트 (Isolated Test) (feat. Spring 에서 테스트 격리하기) 테스트, spring, java
41 Spring HandlerInterceptor를 활용하여 컨트롤러 중복 코드 제거하기 spring, java
42 HTTP 메소드의 멱등성, 그리고 안전한 메서드 네트워크, HTTP
43 쿠키와 세션 (ft. HTTP의 비연결성과 비상태성) 네트워크, HTTP
44 스프링에서 Argument Resolver 사용하기 spring, java
45 [AWS] 리전(Region)과 가용영역(Availability Zone) 데브옵스, 클라우드, aws
46 [AWS] VPC (Virtual Private Cloud) (ft. CIDR, 서브넷, 라우팅 테이블) 데브옵스, 클라우드, aws, 네트워크
47 리눅스 표준 스트림과 리다이렉션, 파이프 운영체제, 리눅스
48 🖋 우테코에서 찾은 나만의 효과적인 공부법 회고, 글쓰기미션
49 CORS가 대체 무엇일까? (feat. SOP) 네트워크, HTTP
50 Spring, MySQL과 함께한 첫 AWS 배포 경험기 🗺️ 데브옵스, 클라우드, aws
51 수직 확장(Scale up) vs 수평 확장(Scale out) 데브옵스
52 다중 서버 환경에서의 세션 불일치 문제와 해결방법 네트워크, 컴퓨터공학
53 세션 기반 인증과 토큰 기반 인증 (feat. 인증과 인가) 네트워크
54 SQL 중심적인 개발의 문제점 객체지향, ORM, JPA
55 IntelliJ에서 메소드 추출한 메소드의 파라미터에 final 키워드 자동 추가하기 달록, intellij
56 CI/CD (지속적 통합/지속적 제공) 데브옵스, CI/CD
57 OAuth 2.0 개념과 동작원리 네트워크, OAuth
58 OpenID(OIDC) 개념과 동작원리 네트워크, OpenID
59 쉘 스크립트와 함께하는 달록의 스프링부트 어플리케이션 배포 자동화 데브옵스, 달록
60 EC2 환경에서 도커를 활용한 젠킨스 설치하기 데브옵스, 달록
61 젠킨스를 사용한 달록팀의 지속적 배포 환경 구축기 (1) - 백엔드편 데브옵스, 달록
62 젠킨스를 사용한 달록팀의 지속적 배포 환경 구축기 (2) - 프론트엔드편 데브옵스, 달록
63 URI, URL 그리고 URN 네트워크, HTTP
64 Git Submodule 알아보기 git
65 HTTPS 간단히 알아보기 네트워크, http, https, ssl
66 포워드 프록시와 리버스 프록시 네트워크
67 Nginx와 Let's Encrypt로 HTTPS 웹 서비스 배포하기 (feat. Certbot) nginx
68 제 1장. 웹과 네트워크의 기본에 대해 알아보자 HTTP, 책읽기
69 제 2장. 간단한 프로토콜 HTTP HTTP, 책읽기
70 로깅을 System.out.println() 로 하면 안되는 이유 로깅
71 Git 브랜치 전략 (feat. Git Flow, Github Flow) git
72 젠킨스 파이프라인 스크립트 형상 관리 데브옵스, 달록
73 제 3장. HTTP 정보는 HTTP 메시지에 있다. HTTP, 책읽기
74 제 4장. 결과를 전달하는 HTTP 상태 코드 HTTP, 책읽기
75 SSH config를 통해 간편하게 SSH 연결하기 운영체제, 리눅스
76 젠킨스 빌드 최적화를 향한 여정 데브옵스, 운영체제, 달록
77 정적 분석(Static Analysis)이란? 데브옵스, 정적분석
78 코드 커버리지(Code Coverage)란? 데브옵스, 코드커버리지
79 달록의 Jacoco 적용기 (feat. Gradle) 데브옵스, 코드커버리지, jacoco
80 🖋 팀 프로젝트가 나에게 남긴 것 회고, 글쓰기미션
81 제 5장. HTTP와 연계하는 웹 서버 HTTP, 책읽기
82 분리 인터페이스(Separated Interface) 패턴을 사용하여 시스템간 결합을 느슨하게 설계하기 디자인패턴, DDD, 달록
83 Spring REST Docs를 사용한 API 문서 자동화 spring, rest-docs, 달록
84 Access Token의 문제점과 Refresh Token 네트워크, 인증/인가
85 Spring Boot와 Redis를 사용하여 Refresh Token 구현하기 spring, redis, 인증/인가
86 IntelliJ에서 자주 사용하는 코드 Live Template으로 템플릿화 하기 intellij
87 Spring Data JPA Auditing으로 엔티티의 생성/수정 시각 자동으로 기록 spring, jpa
88 무중단 배포 아키텍처와 배포 전략 (Rolling, Blue/Green, Canary) 데브옵스, 배포, 무중단배포
89 Spring Data JPA에서의 페이지네이션과 정렬 spring, jpa
90 Nginx를 사용한 로드밸런싱 환경 구축 데브옵스, 배포, 로드밸런싱, nginx
91 Java에서 스트림을 사용한 입출력 (InputStream, OuputStream) java
92 Java 문자 변환 및 성능 향상 필터 스트림 java
93 스프링에서 HTTP 캐시를 사용하기 위한 여러가지 방법 spring, java, http
94 HTTP 캐시 (Cache-Control, 유효성 검증 및 조건부 요청 등) 네트워크, http
95 HTTP 캐시 무효화 (Cache Busting) 네트워크, http
96 Server-Sent Events 알아보기 (feat. Spring) 네트워크, http, spring
97 String 클래스의 equalsIgnoreCase() 메소드 java
98 HTTP 서버 구현 미션 트러블 슈팅 (1) - BufferedReader의 무한 대기 이슈 tcp, socket, http, java
99 HTTP 서버 구현 미션 트러블 슈팅 (2) - 웹 브라우저는 HTTP 메시지가 끝났다고 알려주지 않는다 tcp, socket, http, java
100 달록의 데이터베이스 마이그레이션을 위한 Flyway 적용기 데브옵스, flyway, 달록
101 톰캣 튜닝 맛보기 - maxConnections, acceptCount, maxThreads tomcat
102 문제 해결 능력을 위한 깊이 있는 학습 방법에 대해 회고, 생각
103 데이터베이스 트랜잭션 격리 수준과 격리 수준에 따른 문제점 데이터베이스
104 자바에서 쓰레드 풀 다뤄보기 java, 멀티쓰레딩, CS
105 Git의 다양한 브랜치 병합 방법 (Merge, Squash & Merge, Rebase & Merge) git
106 경쟁상태, 임계영역의 개념과 동기화를 위한 여러 상호배제 기법 (mutex, semaphore, monitor) 운영체제
107 이유와 솔루션으로 정리하는 객체지향 생활체조 원칙 클린코드, 객체지향
108 데이터베이스 인덱스 (1) - 인덱스와 인덱싱 알고리즘 (hash table, b-tree, b+tree) 데이터베이스
109 데이터베이스 인덱스 (2) - 클러스터형 인덱스와 비클러스터형 인덱스 데이터베이스
110 서블릿과 서블릿 컨테이너 java, servlet
111 자바 리플렉션 (Reflection) 기초 java
112 톰캣 튜닝을 위한 달록의 서버 성능 테스트 준비 과정 부하테스트, JMeter, 달록
113 데이터베이스의 확장성과 가용성을 위한 MySQL Replication 데이터베이스, MySQL, 데브옵스
114 어노테이션 기반 DI 컨테이너 구현하기 spring
115 어노테이션 기반 MVC 프레임워크 만들기 spring
116 경험 중심 학습을 통한 능동적인 성장 생각
117 데이터베이스 커넥션 풀 (Connection Pool)과 HikariCP 데이터베이스, jdbc, hikaricp
118 DB ConnectionPool 적용하기 (feat. JDBC Driver, DataSource, HikariCP) java, spring, hikaricp, 데이터베이스
119 Jenkins와 Nginx로 스프링부트 애플리케이션 무중단 배포하기 데브옵스, 배포, 무중단배포, jenkins, nginx
120 고가용성의 웹 서비스를 위한 데이터베이스 클러스터링 데이터베이스, 데브옵스
121 데이터베이스 레플리케이션을 통한 쿼리 성능 개선 (feat. Mysql, SpringBoot) spring, mysql, 데이터베이스
122 고가용성을 확보하기 위한 아키텍처 설계 데브옵스, 아키텍처
123 스프링 트랜잭션 동기화 및 추상화 spring, jdbc
124 JDBC 라이브러리 구현하기 spring, jdbc
125 대체 왜 DataSource 라우팅이 안되는거야!? (feat. OSIV) jpa, spring
126 젠킨스 분산 빌드 아키텍처 구축 jenkins
127 🖋 내가 꿈꾸는 프로그래머로서의 삶 - 다시 써보는 우아한테크코스 지원서 회고, 글쓰기미션
128 JPA의 낙관적 락을 사용한 동시성 이슈 해결 jpa, 데이터베이스, 데이터베이스, 트러블슈팅
129 [가상면접 사례로 배우는 대규모 시스템 설계 기초] Chap01. 사용자 수에 따른 규모 확장성 데브옵스, 아키텍처
130 경쟁 조건의 두 가지 형태: Read-Modify-Write, Check-Then-Act 동시성, 경쟁조건, java
131 MySQL 8.0의 공유 락(Shared Lock)과 배타 락(Exclusive Lock) 데이터베이스, mysql
132 JPA의 낙관적 락과 비관적 락을 통해 엔티티에 대한 동시성 제어하기 jpa
133 글로벌 트랜잭션 (feat. JTA, 2PC) spring, 트랜잭션
134 쿼리 튜닝 관점에서의 저장 매체와 랜덤 I/O, 순차 I/O 컴퓨터공학
135 MySQL에서 B-Tree 인덱스를 통해 데이터를 읽어오는 방법 (인덱스 스캔) 데이터베이스, mysql
136 MySQL 8.0의 레플리케이션 아키텍처와 복제 타입 데이터베이스, mysql
137 스프링 로컬 캐시를 사용한 외부 캘린더 API 호출 최적화 캐시, 성능개선
138 MySQL 레플리케이션 토폴로지 데이터베이스, mysql
139 [가상면접 사례로 배우는 대규모 시스템 설계 기초] Chap07. 분산 시스템을 위한 유일 ID 생성기 설계 데브옵스, 아키텍처
140 [가상면접 사례로 배우는 대규모 시스템 설계 기초] Chap08. URL 단축기 설계 데브옵스, 아키텍처
141 Redis로 분산 락을 구현해 동시성 이슈를 해결해보자! 동시성, java, redis, 분산락
142 분산 환경에서 Redis pub/sub을 활용한 로컬 캐시 동기화 redis, 캐시
143 무중단 배포 중 구버전 프로세스를 그냥 종료해도 괜찮을까? (feat. Kill, Graceful Shutdown) 무중단배포,unix,spring
144 데이터베이스 파티셔닝과 샤딩 데이터베이스
145 Elasticsearch는 왜 검색속도가 빠를까? - Inverted Index 엘라스틱서치

About

우아한테크코스 4기에서 활동한 내용들을 기록합니다 📝

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published