본문 바로가기

SPRING

[스프링| 스프링 입문 | 코드로 배우는 스프링] 회원 도메인과 리포지토리 만들기 package hello.hellospring.domain; public class Member { private Long id; // 시스템에 저장하는 id private String name; // 이름 public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } package hello.hellospring.repository; // 패키지 선언, 코드의 네임스페이스를 정의합니다. import hello.hellospring.domain.Memb.. 더보기
[스프링| 스프링 입문 | 코드로 배우는 스프링] 비즈니스 요구사항 정리 Service 계층에서 구현하는 메서드들은 Repository 계층의 메서드와는 다른 역할과 책임을 가지고 있습니다. 일반적으로, Repository 계층은 데이터의 저장과 조회와 같은 데이터 접근을 직접적으로 다루는 반면, Service 계층은 비즈니스 로직의 실행을 책임집니다. 이를 통해 애플리케이션의 비즈니스 요구사항을 충족시키고, 데이터를 가공하거나 복잡한 연산을 수행합니다. Service 계층의 주요 역할은 다음과 같습니다: 비즈니스 로직 구현: 데이터가 어떻게 처리되어야 하는지, 어떤 순서로 비즈니스 규칙을 적용해야 하는지를 정의하고 구현합니다. 예를 들어, 사용자 등록 시 유효성 검사, 중복 검사, 권한 부여 등의 추가 로직을 구현할 수 있습니다. 트랜잭션 관리: 여러 데이터 변경이 한 작업.. 더보기
[스프링| 스프링 입문 | 코드로 배우는 스프링] API // @GetMapping 애노테이션은 이 메서드가 GET 요청을 처리하도록 지정합니다. URL 경로는 "hello-api"입니다. @GetMapping("hello-api") // @ResponseBody 애노테이션은 메서드에서 반환하는 객체를 HTTP 응답 본문으로 직접 쓰도록 지시합니다. @ResponseBody // helloApi 메서드 정의: 클라이언트로부터 "name" 파라미터를 받아서 처리합니다. public Hello helloApi(@RequestParam("name") String name) { // Hello 클래스의 인스턴스를 생성합니다. Hello hello = new Hello(); // 입력 받은 이름을 Hello 객체의 name 필드에 설정합니다. hello.setName(.. 더보기
[스프링| 스프링 입문 | 코드로 배우는 스프링] MVC와 템플릿엔진 @GetMapping("hello-mvc") public String hellowMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); // 'name'이라는 이름으로 모델에 파라미터 값을 추가함 return "hello-template"; // View 이름을 'hello-template'으로 지정하여 반환함 }이 메서드는 Spring MVC에서 HTTP GET 요청을 처리합니다. URL의 경로가 "hello-mvc"로 끝나는 GET 요청이 이 메서드에 매핑됩니다. 사용자는 URL을 통해 'name'이라는 이름의 파라미터 값을 전달할 수 있습니다. 이 값은 메서드.. 더보기
[되기시리즈 스프링부트3| 04장 스프링부트와 테스트 ] Given-When-Then패턴 1. 학습목표 테스트코드에 대해 이해할 수 있다. 2.필요 개념 문장정리  3. 코드작성 package me.ggambo.springbootdeveloper; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; im.. 더보기
[되기시리즈 스프링부트3| 03장 스프링부트3 구조 이해하기] 1. 학습목표 스프링부트의 요청처리 과정을 이해할 수 있다. 2.필요 개념 문장정리  3. 코드작성 package me.ggambo.springbootdeveloper; import jakarta.persistence.*; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor @Getter @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.I.. 더보기
[되기시리즈 스프링부트3| 02장 스프링부트3 시작하기] IoC/DI, AOP, 1. 학습목표 의존성 주입과, 제어의 역전을 이해할 수 있다. 2.필요 개념 문장정리 의존성 주입(DI: Dependency Injection) 어떤 클래스가 다른 클래스에 의존한다는 뜻이다. @Autowired라는 애너테이션은 스프링 컨테이너에 있는 빈이라는 것을 주입하는 역할을 한다. 빈은 스프링 컨테이너에서 관리하는 객체를 말한다. 기존의 자바코드는 클래스 A에서 B객체를 직접 생성했지만 스프링의 경우 스프링 컨테이너에서 객체를 주입받아 사용한다. 제어의 역전(IoC: Inversion of Control) 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것을 말한다. 관점지향 프로그래밍(AOP: Aspect Oriented Programming) 프로그.. 더보기
[ JPA | 강의 따라 공부하기 ] 4.find()와 getReference()의 차이 find()메소드 find 메소드는 EntityManager에서 조회 연산을 수행한다. 첫번째 파라미터로 엔티티 타입을 지정하고 두번째 파라미터로 식별자를 전달한다. 엔티티 매니저는 그 값을 조회해 쿼리를 만들어서 데이터 베이스의 객체를 가져오게 된다. UserEntity userEntity = entityManager.find(UserEntity.class,email); 여기서 식별자는 @Id 어노테이션이 정의된 필드를 사용한다. 엔티티를 조회했을 때 식별자와 매핑되는 엔티티가 존재하면 엔티티 객체를 리턴하고 매핑되는 엔티티가 없으면 null을 리턴한다. getReference()메소드 getReference메소드는 find메소드와 마찬가지로 EntityManager에서 조회 연산을 수행한다. 첫번째 .. 더보기