본문 바로가기

spring

[JAVA | SPRING | MVC | CRUD] 게시물 작성 CREATE 게시물 작성 HTTP메서드 : POSTEndpoint URL : /api/user/posts작업 내용 : 새 게시물 생성 CREATE는 CRUD(Create, Read, Update, Delete)에서 데이터를 생성하는 작업을 의미하며 웹 애플리케이션에서는 주로 사용자가 입력한 데이터를 데이터베이스에 저장하는 기능을 구현한다.예를 들어, 게시물 작성, 회원가입, 상품 등록 등이 이에 해당 한다.  요구 사항   /usr/article/doAdd 요청에 대한 컨트롤러,서비스,리포지토리의 기능을 이해해 보자.요청 및 매개변수 처리 : 사용자에게 게시물의 제목과 내용을 입력. 제목,내용 외에 필요한 필드를 정의유효성 검사 : 입력값을 검증 null이나 빈문자 검사. 길이제한. 특수문자처리.데이터 저장 : 엔티.. 더보기
[스프링부트| 스프링부트와 JPA 활용 1 | 웹 애플리케이션 개발 | 회원 도메인 개발] 회원 기능 테스트 @RunWith(SpringRunner.class) // 스프링 부트 테스트를 위한 JUnit 러너 설정@SpringBootTest // 스프링 부트 애플리케이션 컨텍스트를 로드하는 테스트를 위한 설정@Transactional // 테스트 클래스에 트랜잭션 적용, 테스트 완료 후 롤백public class MemberServiceTest { @Autowired MemberService memberService; // 멤버 서비스 의존성 자동 주입 @Autowired MemberRepository memberRepository; // 멤버 리포지토리 의존성 자동 주입 @Autowired EntityManager em; // 엔티티 매니저 의존성 자동 주입 @Test public .. 더보기
[스프링| 스프링 입문 | 코드로 배우는 스프링] 스프링 데이터 JPA package hello.hellospring.repository;import hello.hellospring.domain.Member;import org.springframework.data.jpa.repository.JpaRepository;import java.util.Optional;public interface SpringDataJpaMemberRepository extends JpaRepository, MemberRepository{ @Override Optional findByName(String name);} package hello.hellospring;import hello.hellospring.repository.MemberRepository;import hello.hell.. 더보기
[스프링| 스프링 입문 | 코드로 배우는 스프링] 회원 서비스 개발 public class MemberService { // 회원 정보를 저장하고 관리하는 리포지토리 객체를 선언합니다. private final MemberRepository memberRepository = new MemoryMemberRepository(); /* * 회원가입 메소드 */ public Long join(Member member) { validateDuplicateMember(member); // 중복 회원을 검증합니다. memberRepository.save(member); // 리포지토리에 회원 정보를 저장합니다. return member.getId(); // 저장된 회원의 ID를 반환합니다... 더보기
[스프링| 스프링 입문 | 코드로 배우는 스프링] 비즈니스 요구사항 정리 Service 계층에서 구현하는 메서드들은 Repository 계층의 메서드와는 다른 역할과 책임을 가지고 있습니다. 일반적으로, Repository 계층은 데이터의 저장과 조회와 같은 데이터 접근을 직접적으로 다루는 반면, Service 계층은 비즈니스 로직의 실행을 책임집니다. 이를 통해 애플리케이션의 비즈니스 요구사항을 충족시키고, 데이터를 가공하거나 복잡한 연산을 수행합니다. Service 계층의 주요 역할은 다음과 같습니다: 비즈니스 로직 구현: 데이터가 어떻게 처리되어야 하는지, 어떤 순서로 비즈니스 규칙을 적용해야 하는지를 정의하고 구현합니다. 예를 들어, 사용자 등록 시 유효성 검사, 중복 검사, 권한 부여 등의 추가 로직을 구현할 수 있습니다. 트랜잭션 관리: 여러 데이터 변경이 한 작업.. 더보기
[스프링| 스프링 입문 | 코드로 배우는 스프링] 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| 02장 스프링부트3 시작하기] IoC/DI, AOP, 1. 학습목표 의존성 주입과, 제어의 역전을 이해할 수 있다. 2.필요 개념 문장정리 의존성 주입(DI: Dependency Injection) 어떤 클래스가 다른 클래스에 의존한다는 뜻이다. @Autowired라는 애너테이션은 스프링 컨테이너에 있는 빈이라는 것을 주입하는 역할을 한다. 빈은 스프링 컨테이너에서 관리하는 객체를 말한다. 기존의 자바코드는 클래스 A에서 B객체를 직접 생성했지만 스프링의 경우 스프링 컨테이너에서 객체를 주입받아 사용한다. 제어의 역전(IoC: Inversion of Control) 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것을 말한다. 관점지향 프로그래밍(AOP: Aspect Oriented Programming) 프로그.. 더보기