이번 주차에서는 개념 정리와 미션 2가지를 진행할 거예요.
개념 정리를 진행한 후에 미션 코스를 진행해주세요.
중요 개념인 객체지향에 대해선 미리 내용을 준비했고, 그 외 내용은 제공드린 자료를 통해 스스로 공부해 보아요.
여기까지 개념 공부하느라 수고하셨어요!
그럼 이제 본격적으로 미션을 수행해볼까요?
미션코스 1주차 명세서
스프링을 위한 미션 코스인데 왜 그런지 의문이 드실 수 있을 것 같아요.
왜 그런 식으로 진행하는지 간단하게 설명해볼게요.
저는 백엔드 프로젝트를 크게 3개의 계층으로 나눠서 생각해요. 디자인 패턴으로는 3-Tier Architecture 라고도 하죠.
DB 와의 통신을 담당하는 DB 계층, 서비스 관련 로직을 담당하는 서비스 계층, 전달하는 통신 계층 이렇게 3개예요.
DB 계층은 ORM, 흔히 사용하는 JPA, 하이버네이트 를 통해 구현돼요.
통신 계층은 스프링 프레임워크를 통해 구현돼요.
즉, 이 둘은 생각보다 정형화되어있고, 어떻게든 작동하면 전체 서비스는 작동한다고 생각해요.
하지만, 서비스 계층은 이야기가 조금 달라요.
받은 데이터 기반으로 가공, 처리, 검증을 통해 필요한 정보를 넘겨야하죠.
서비스마다 천차만별이기 때문에, 전형적인 자료를 찾기 어렵다고 생각해요.
즉, 이런 부분을 도와주는 것이 향후 백엔드 서비스 구축에 조금 더 도움이 되지 않을까 싶어 이런 방식을 채택했어요.
지난 1주차 미션은 할만했나요?
이번 2주차에서는 1주차에서 만든 서비스 로직을 활용하여 API 를 제작해보려고 해요.
그 전에 지난 주차 리뷰와 개념 공부를 하고 넘어가 봅시다.
TODO: spring 의 기본적인 개념 소개
TODO: VO, DTO, DAO 공부해보기
코드 리뷰는 실무나 프로젝트 모두에서 중요해요.
버그는 없는지, 더 나은 방법은 없는지, 새로운 인사이트를 얻는다든지 코드에 대한 유지보수를 고민하게 해줘요.
각자의 팀에서 2명이 짝이 되어 서로의 1주차 제출 PR에 리뷰를 남겨보아요.
기업에서는 어떤 식으로 진행하는지 궁금하시다면 다음 링크들을 참고해주세요.
⚠️ 주의
코드 리뷰는 함께 성장하고자 하는 행동입니다.
남을 가르치거나, 비방하는 말투는 지양해주세요.
이번 주차부터는 spring 을 본격적으로 사용하기 시작해요.
이에 스프링에 대한 기초적인 지식을 점검하고, 지난 시간에 공부한 객체에 대해 좀 더 세분화해서 공부해보아요.
공부하느라 수고하셨습니다!
그럼 2주차 미션도 진행해보아요.
2주차 미션코스 명세서
벌써 마지막 미션 코스이네요. 여기서 공부한 내용들이 앞으로도 도움이 되었으면 좋겠네요!
마지막 미션으로는 기존 코드를 활용하여 DB 와 연동해보고, 에러 처리를 해보려고 해요.
그전에 제가 어떤 의도로 3주차 미션을 만들었는지 한번 짧게 돌아보려고 해요.
저희는 가장 먼저 비지니스 로직을 작성해보았어요.
저희만의 서비스를 위한 로직들로 기본적인 턴제 게임을 구현했어요.
아직은 API, DB 가 없기 때문에 간단한 콘솔 입출력을 활용했고요.
여기서 저희는 java 와 좀 더 친해지고, 객체지향에 대해 공부했어요.
그 다음으로는 해당 로직을 가지고, 콘솔 입출력에서 API 로 업그레이드 해봤어요.
프론트가 갖춰진다면 어엿한 하나의 게임을 만들었다고도 할 수 있죠.
하지만, 사실 이것만으로는 서비스가 꺼진다면 모든 데이터가 날라가요.
일부로 DB 사용을 금하고 메모리로 구현을 했기 때문이죠.
마지막으로 여러분이 DB 에 데이터를 영구적으로 저장한다면,
서버가 꺼지더라도 데이터는 남아있기 때문에 이어할 수 있을거에요.
저는 백엔드 개발을 DB, java, 통신(API) 이렇게 3가지로 나뉜다고 생각하고 미션코스 짜보았어요.
첫 주에는 java 와 친해지고, 비지니스 로직을 짜보는 연습을,
둘째 주는 외부와의 통신을 위한 API 설계를 해보았어요.
마지막 주에는 통신한 데이터를 저장할 수 있는 방법을 연습을 해볼거에요.
그리고 추가적으로 요구사항 변경과 에러 처리에 대응하는 연습도 해블께요.
이번 개념 정리로는 에러 처리 위주로 다뤄보려고 해요.
Java 는 execption
을 통해서 에러를 처리하는데요.
발생하는 위치에서도 일단 호출하는 함수(caller) 에서도 처리가 가능한 등 고민할 여지가 많아요.
기본적인 내용을 같이 공부하고 실제로 적용해봅시다.
마지막 개념 공부까지 수고하셨어요!
정말 마지막 미션까지 힘내보아요.
3주차 미션코스