본문 바로가기

Toy Project

(4)
스프링 계층 구조 (Controller, Service, Repository) 스프링에서 개발을 하다보면 Controller, Service, Repository 계층 구조를 나눠서 개발하는 것을 볼 수 있다.이것을 하나의 설계 패턴으로 각 계층마다 역할과 책임을 분리시켜서 유지보수성과 확장성을 높이려는 목적이 있다.1. Controller 계층컨트롤러 계층은 @Controller, @RestController 애너테이션과 함께 쓰이며 주로 사용자의 http 요청을 받아서 응답을 처리하는 역할을 담당한다. 각 메서드 방식에 따라서 @GetMapping, @PostMapping 등의 애네터이션을 쓸 수 있으며 return값으로는 HTTP 응답을 반환할 수도 있고 뷰를 반환할 수도 있다.@RestController@RequiredArgsConstructorpublic class Mai..
[JPA] KBO 프로젝트 #3 - TEAM, PLAYER 엔티티 추가 설정 이제 TEAM과 PLAYER의 뼈대는 만들어졌으니 여기다가 추가 기능들을 넣을 것이다.우선 TEAM에는 승 패 무승부 승률 필드를 추가하고 PLAYER에는 타율 홈런 타점 방어율 승리 세이브 등을 추가할 것이다. 그리고 추가로 새로운 엔티티를 하나 만들어서 경기 일정에 관한 정보를 제공하도록 할 것이다. 정리 - 승, 패, 무승부 등 승 패에 관한 정보 추가 - 타율 홈런 타점 세이브 승리 등 투수, 타자의 디테일한 정보 추가 - 경기 일정, 결과, 경기 구장 정보 추가 package Entity;import jakarta.persistence.*;import lombok.Getter;import lombok.Setter;import java.util.ArrayList;import java.uti..
[JPA] KBO 프로젝트 #2 - 구단 순위 입력, 정렬 이제 구단 순위를 입력하고 JPQL 쿼리를 이용해서 구단 순위를 받아볼 예정이다. 실제 웹사이트, 애플리케이션으로 만든다면 실시간으로 업데이트하는 기능도 하고 싶지만 아직은 단순히 H2 데이터베이스로만 하기 때문에 그런 기능은 구현하지 못 했다. 1. Team 엔티티에 rank 추가package Entity;import jakarta.persistence.*;import java.util.ArrayList;import java.util.List;@Entitypublic class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="TEAM_ID") private Long id; private ..
[JPA] KBO 프로젝트 #1 - 엔티티 설계, 선수 입력 방학동안 스프링 JPA를 공부하면서 실제로 무언가 만들지 않으면 몸에 와닿지 않을 것 같아서 작은 프로젝트를 하나 실행하려 했다. 어떤 프로젝트를 할 지 고민하던 중 최근에 흥미를 가진 KBO와 관련해서 팀, 선수, 순위 등을 관리하는 주제가 떠올랐고 엔티티 설계부터 들어갔다. 1. 엔티티 설계첫 엔티티는 TEAM, MEMBER 2개로 구상했고 일대다 관계로 매핑했다.package Entity;import jakarta.persistence.*;import java.util.ArrayList;import java.util.List;@Entitypublic class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Colum..

반응형