API 서버 개발 미션으로 배우는 자바 웹 백엔드 개발

-
사용 언어
# java
강의 소개
✔️ API 서버 개발 미션을 총 7개 완주해요
주문관리 API 서버 개발 미션 소개
- 이 코스에서는 총 7개의 API를 개발해보는 것을 목표로 합니다. 그 리스트는 다음과 같아요.
- 주문 리뷰 작성
- 주문 목록 조회
- 개별 주문 조회
- 주문 접수 처리
- 주문 거절 처리
- 주문 배송 처리
- 주문 완료 처리
Gradle 로 빌드합니다. 만약 Maven 을 쓰고 싶은 경우는 강사 제이크에게 얘기해서 도움을 받아보세요.
미션 수행 시 가장 중요한 가치들
- 각 API를 구현하는 과정에서, 요구사항을 단순한 텍스트로 받아들이는 것이 아니라 늘 그것을 사용할 '사용자' 에 대해 생각하고 설계하는 습관을 들입니다.
- 또한 모든 미션은 객체지향 프로그래밍 원칙을 중심에 두고 구현하도록 합니다. 테이블부터 생성하지 않습니다.
- OOP, TDD, ATDD, 클린 코드의 개념을 정확히 이해하고 실제로 활용하도록 노력합니다.
- 무엇보다도, 좋은 개발 습관을 만들기 위해서는 그에 상응하는 반복 연습이 필요하다는 것을 잊지 않습니다.
이 코스는 프로그래머스의 과제테스트 중 주문관리 API 개발 을 활용해 제작되었습니다. 요구사항의 골자는 해당 과제를 참고하였으나, 학습용으로 사용하기 위해 패키지 구성이나 코드의 전반적인 개선을 진행했습니다. 빌드툴은 Gradle이며, JPA를 사용합니다. 이미 해당 과제를 수행해본 경험이 있더라도 분명 새로운 도움이 될 겁니다.
🗓 학습 기간 안내
- 과정 시작: 2022/10/4(화)
- 종료: 2022/11/7(월), 5주
매 주 미션이 주어지며, 하나의 스프린트를 하듯 코스가 진행됩니다. 미션은 최대한 해당 주간 내에 수행하는 것을 권장합니다. 바짝 집중할 준비 되셨나요?
주간 라이브 세션 일정
이 코스는 강사 제이크와 매 주 한 번씩 실시간으로 만나, 찐하게 이번 주 미션에 대한 설명 및 질의응답, 그리고 온갖 커리어에 대한 고민을 털어놓는 시간이 준비되어 있습니다.
- 매 주 화요일 20시 시작, 약 2시간 소요
- 때에 따라 질의응답이나 라이브 코딩, 코드리뷰가 길어지면 조금 더 늦게 끝날 수도 있습니다.
세션은 녹화되어 제공되지만, 아무래도 실시간으로 함께하는 것에 비하면 학습 효과가 떨어집니다. 가급적 매번 참여하도록 노력해주세요. 5주간 총 5번, 화요일 저녁 8시입니다.
✔️ 미션을 수행하며 이런 가치를 실현합니다
설계와 코드는 유연성을 가져야 한다
- 요구사항은 서비스의 성장에 따라 언제든지 변하게 마련입니다. 기존의 요구사항 대비하여 내용이 추가되거나, 심지어 이전에는 중요했던 요구사항이 의미가 없어지는 일도 발생합니다. 이런 상황에 잘 대처하려면 어떻게 해야할까요?
- 요구사항 변경에 유연하게 대처할 수 있는 설계와 코드에 집중해야 합니다. 변경점 하나 생길 때 마다 미팅을 여러 번 잡아야하고, 영향을 받을 수 있는 코드가 너무 많아 엄두가 안나는 상황이라면 내부 리소스상으로도 문제가 될 뿐만 아니라 비즈니스 요구사항에도 빠르게 대처할 수 없어 결국 전반적인 성장에 저해가 됩니다.
테이블 생성 먼저 하지 말고, 객체지향 모델링을 해보자
- 오늘도 테이블을 먼저 생성하고, 이에 맞춰 클래스를 만들진 않았나요? 틀린 방법은 아니지만, 객체지향 개발에 가까워지려면 먼저 요구사항을 정확히 파악하는 것이 우선입니다.
- 항시 테이블 생성이 먼저이고, 그 후 클래스를 만들면 데이터베이스와 SQL 중심적인 개발을 하게 됩니다. 생산성, 유지보수를 모두 잡으려면 이제 객체 중심적인 개발 습관을 들여야 해요.
- 혹시 IoC(제어의 역전), DIP(의존관계 역전)이 무엇인지 잘 모르겠고 그 차이도 모르겠으며, 심지어 객체지향의 핵심 가치에 맞추어 코드를 작성하는 일이 무척 어색하다면, 이 코스가 확실한 도움이 될겁니다.
수강 후 기대 효과 및 추천 대상
연차가 모든걸 말해주는 것은 아니지만, 대략 1~5년차 사이의 자바 웹 백엔드 개발자 모두에게 추천합니다. 특히 평소 이런 질문을 마음 한 켠에 두고 있었던 분들이라면, 그 답을 찾아나가는 좋은 기회가 될겁니다.
- 나는 비즈니스 요구사항의 변화에 따라 유연하게 대처할 수 있는 코드를 작성하고 있는걸까?
- 과연 내가 작성한 코드는 객체지향스러울까? 시니어 개발자 눈엔 어떨까?
- OOP, ORM, TDD, ATDD, 클린 코드 등... 참 들은건 많은데, 어떻게 실현하지?
특히 부트캠프나 학원을 통해 짧은 기간동안 자바 웹 개발을 집중적으로 학습한 뒤, 그 다음 내가 나아갈 방향을 잘 잡지 못하고 있거나 취업에 어려움을 겪는 분들에게도 추천합니다.
수강 시 꼭 확인해 주세요.
- Java, Spring, SQL 에 대한 이해 및 기본적인 사용 능력 필수
- JPA 사용 경험이 없는 경우, 대략이라도 학습해오는 것을 권장합니다(단, 기본적인 SQL(join 포함)을 사용할 수 있어야 합니다).
- Spring Data JPA를 활용하여 간단한 CRUD 하는 방법 예습하시는것을 권장 드립니다
- JPA Relation Mapping 방법에 대해 예습하시는것을 권장 드립니다
😒 반대로, 이런 분들에게는 큰 도움이 안 될 수도...
- 나는 IoC, 와 DIP를 잘 알고 있고, 타인에게 자신있게 설명할 수 있다
- 내 코드는 항시 OOP스럽게 작성되어 있다
- TDD/ATDD 의 핵심 가치를 잘 이해하고 있고, 실제로 이를 활용해 개발하고 있다
강사소개

2022년 기준 10년차 개발자 제이크. 항상 후배와 동료를 돕는 일에 관심이 많았습니다. 이제는 한 개발자로서의 총체적인 경험을 프로그래머스와 함께 외부로 확장해 더 많은 주니어 개발자들을 돕고자 합니다.
주요 이력
- 현재 KAKAO 백엔드 개발자
- 전 KT 소프트웨어 개발자
수강생분들께 한 마디
"해야 할 것은 많고, 들리는 정보도 많고, 와중에 내가 공부한 것을 어디에 어떻게 접목할 수 있을지 모를 때가 많지요? 이 코스를 통해 API 서버 개발 미션을 여럿 수행하면서, 배운걸 직접 사용해보는 경험을 반복해봅시다. 항상 무언가를 도전하려 할 때는 바로 눈 앞에 벽이 보이게 마련인데요. 그 벽을 뛰어넘으면, 나를 한 단계 올려주는 계단이 되어 있더군요. 저와 함께 벽을 계단으로 만들어봐요."