April 29, 2024
드디어 스터디가 시작됐다. 첫 번째 과제는 자바 어노테이션(Java Annotation)에 대해 알아보는 질문 & 답변 시간이다. 어노테이션의 어떤 점이 중요해서 첫 번째 과제로 선정됐을까? 질문에 답하기 이전에 어노테이션이 무엇인지 먼저 알아보자. 어노테이션이란? 어노테이션은 Java SE 5에 등장했다. 출시된 지 무려 20년을 앞둔 기능이다. (참고…
April 30, 2024
2일 차는 첫 HTTP API 개발을 주제로 간단한 API를 만들었다. 배운 건 써봐야지. 먼저 과제의 요구사항을 검토하고 구현해 보자. 모든 코드는 GitHub에서 확인할 수 있습니다. 문제 1 두 수를 입력하면 덧셈, 뺄셈, 곱셈결과를 반환한다. 기본 정보 메서드 URL GET /api/v1/calc 요청 쿼리 파라미터 이름 타입 설명 필수 num1 …
May 01, 2024
3일 차는 익명 클래스(Anonymous Class)와 람다(Lambda)가 과제로 주어졌다. 둘은 함께 이야기되는 주제이다. 어떤 관계일까? 익명 클래스와 람다 익명 클래스로도 다양한 동작을 구현할 수 있었다. 하지만 Java SE 8에 등장한 람다는 복잡성을 줄이고 가독성을 높여 유지보수 하기 좋은 코드 작성을 위해 등장했다. 자세한 이론에 앞서 예제…
May 03, 2024
3, 4일 차 강의에서는 기본적인 데이터베이스 사용법과 데이터베이스를 사용해 API를 만드는 방법을 배웠다. 학습한 내용을 바탕으로 요구사항을 살펴보자. 4일 차 구현과제는 총 3 문제고 각 문제는 이어진다. 요구사항 과일가게에 입고되는 과일정보를 추가한다. 팔린 과일의 정보를 저장한다. 과일이름을 기준으로 팔린 금액, 팔리지 않은 금액을 조회한다. 강의…
May 09, 2024
5일 차는 클린코드의 개념과 리팩터링을 배웠다. 실제 코드에 적용해 가면서 클린코드와 친해지자. 위 예제는 다음과 기능과 요구사항을 가진다. 기능 숫자를 입력받는다. 숫자만큼 주사위를 굴려, 숫자가 몇 번 나왔는지 출력한다. 요구사항 주사위가 정육면체가 아닌 n면체 일 때 최소한으로 수정하도록 고려하여 코드를 작성하라. 리팩터링 리팩터링을 진행할 때 아래…
May 13, 2024
6일 차는 스프링 컨테이너의 의미와 사용 방법을 주제로 스프링 컨테이너가 왜 필요한지, 어떻게 기존의 코드를 리팩터링 할 수 있는지 배웠다. 주어진 과제 는 총 2문제로 계층화 아키텍처(Layered Architecture) 리팩터링 하기, 스프링 빈(Spring Bean)을 다룰 수 있는지 확인한다. 요구사항 문제 1: 과제 4에서 만들었던 API를 Co…
June 01, 2024
지난 4월 말부터 5월의 마지막날까지 한 달의 여정이 끝났다. 앞선 글에서 짧은 후기를 남겼다면 이번글에서는 전체적인 상세후기를 다룬다. 서론 스터디 참석 후기를 공유하기 전, 나를 먼저 소개하자면 개발자를 준비한 지 1년 됐다. 특성화고를 졸업한 반전공자다. 국비교육(자바 웹 개발 & AI)으로 다시 시작했고 6개월 과정이 종료된 후에는 독학 중이다. …