본문 바로가기

전체 글

(32)
02) HATEOAS와 Self-Describtive Message 1. HATEOAS Hypermedia As The Engine Of Application State의 약자로, RESTful API를 설계할 때 사용되는 아키텍처 원칙 중 하나다. HATEOAS 원칙에 따르면, 클라이언트는 서버로부터 받은 응답 내의 하이퍼미디어 링크를 통해 상태 전이를 할 수 있어야 한다. 이 말은, API를 사용하는 클라이언트가 서버의 리소스를 탐색하고 상호작용할 수 있는 링크 정보를 서버의 응답 내에 포함시켜야 한다는 뜻이다. 예를 들어 사용자 정보를 조회하는 API의 응답이라고 하자. { "id": 1, "name": "홍길동", "email": "hong@example.com" } 만약 이 API가 HATEOAS의 원칙을 따른다면 사용자의 정보를 바탕으로 다른 작업을 수행할 수..
02) 객체지향 프로그래밍 1. 클래스를 고민하기보다 객체를 고민하자 나 또한 어떤 클래스가 필요한지 고민을 한다. 객체지향은 말 그래도 객체를 지향하는 것이다. 진정한 객체지향 패러다임으로의 전환은 클래스가 아닌 객체에 초점을 맞춰야 한다. 1.1 클래스를 고민하기 전에 어떤 객체들이 필요한지 고민하자 클래스는 객체를 생성하기 위한 설계도이다. 그렇기 때문에 클래스를 정의하기 위해선 객체들이 어떤 상태와 행동을 가지는지를 먼저 생각해봐야 한다. 1.2 객체를 기능을 구현하기 위해 협력하는 공동체의 일원으로 보자 객체는 서로 도움을 주거나 의존하면서 협력적인 존재다. 그러므로 객체지향적으로 생각하고 싶다면 객체를 고립된 존재로 보지 말고 협력자로서 생각하자 2. 협력 객체는 상태와 행동을 함께 가지는 복합적인 존재다. 접근 제어 ..
01) 객체, 설계 기존 객체 지향에 대해 어느 정도 알고 있다고 생각을 했다. 하지만 우테코 프리코스를 진행하면서 조금 더 학습이 필요하다고 생각이 들어 추가 학습을 하려고 한다. 이 책의 저자는 기존 토끼책으로 유명한 객체지향의 사실과 오해의 저자 조영호 님의 책이다. 토끼 책을 살까 고민을 하다가 토끼 책 보다 최신판이고 코드로 직접 확인하는 게 더욱 이해가 빠를 거 같아서 구매를 했다. 자율성을 높이자 외부의 간섭을 최대한 배제하고 메시지를 통해서만 협력하는 자율적인 객체들의 공동체를 만드는 것이 휼륭한 객체지향 설계를 만들수 있는 지름길이라 한다. 외부의 접근을 제한하고 직접 맡은 역할을 처리하는 자율적인 존재가 되도록 설계를 하자. 캡슐화를 이용해 의존성을 적절히 관리함으로써 객체 사이의 결합도를 낮추자. 캡슐화..
01) 이벤트 생성 API 개발 Inflearn : https://www.inflearn.com/course/spring_rest-api GitHub : https://github.com/JunTaeINC/inflearn-rest-api GitHub - JunTaeINC/inflearn-rest-api Contribute to JunTaeINC/inflearn-rest-api development by creating an account on GitHub. github.com 여러 채용공고를 보니 우대사항에 REST API에 대한 내용이 적지 않게 보였다. 간략하게 REST API를 알고 있지만 실제로 어떤 식으로 구현을 하는지 몰라서 학습하게 되었다. 다 학습하고 나면 기존 팀 프로젝트에 진행됐던 Grooveo에 적용해 볼 생각이다...
4주차 프리코스 미션(크리스마스 이벤트) 기능 요구 사항 & 프로그램 요구 사항 https://github.com/JunTaeINC/java-chrismas-6-JunTaeINC GitHub - JunTaeINC/java-chrismas-6-JunTaeINC Contribute to JunTaeINC/java-chrismas-6-JunTaeINC development by creating an account on GitHub. github.com 미션 진행에 학습한점 이번주 미션진행의 목표는 인터페이스 활용, stream의 학습 및 적용, getter의 최소화, 원시 값의 미사용, 클래스 분리, 그리고 작은 단위 테스트의 구현이다. 1. interface의 적극활용 이번 미션에서는 언급은 안되었지만 interface사용을 요구하는것 같았다. 나..
3주차 프리코스 미션(로또) 기능 요구 사항 & 프로그램 요구 사항 & 과제 진행 요구 사항 GitHub : https://github.com/JunTaeINC/java-lotto-6/tree/JunTaeINC GitHub - JunTaeINC/java-lotto-6: 우아한 테크코스 6기 프리코스 3주차 우아한 테크코스 6기 프리코스 3주차. Contribute to JunTaeINC/java-lotto-6 development by creating an account on GitHub. github.com 문제 해결 1. 무분별한 Getter 사용 지양 Setter의 사용은 외부에서 의도와 다르게 값이 수정되는것을 방지하고, 변경되지 않는 인스턴스에 대해서 접근이 가능해져 객체의 일관성, 안정성을 보장받기 힘들기 떄문에 지양해..
2주차 프리코스 미션(자동차 경주) 기능 요구 사항 & 프로그램 요구 사항 & 과제 진행 요구 사항 GitHub : https://github.com/JunTaeINC/java-racingcar-6 GitHub - JunTaeINC/java-racingcar-6: 우아한 테크코스 6기 프리코스 2주차 우아한 테크코스 6기 프리코스 2주차. Contribute to JunTaeINC/java-racingcar-6 development by creating an account on GitHub. github.com 문제 해결 1. 객체 지향적 설계 처음에 어떤 객체를 생성해야 할지 고민을 많이 했다. 게임의 주체인 '자동차'는 당연히 객체로 만들어야 했다. 하지만 경기 진행에 관련된 기능을 어떻게 처리할지 고민이 되었다. 1주 차에는 Game..
1주차 프리코스 미션(숫자 야구 게임) 기능 요구 사항 & 프로그램 요구 사항 & 과제 진행 요구 사항 GitHub : https://github.com/JunTaeINC/java-baseball-6 GitHub - JunTaeINC/java-baseball-6: 우아한 테크코스 6기 프리코스 1주차 우아한 테크코스 6기 프리코스 1주차. Contribute to JunTaeINC/java-baseball-6 development by creating an account on GitHub. github.com 문제 해결 1. 게임 관련 메시지 Enum Class 관리. 처음에 Enum Class에서 출력 메서드까지 구현을 했었다. 하지만 Enum Class는 메시지만 관리하는 역할에 위배돼서 출력 클래스(ConsoleUtil Class)를 추..