백엔드

개인 공부/Spring

[Spring] #9 JPA 엔티티 매핑

엔티티 매핑 미리 설계한 요구사항에 맞게 객체를 설계하고, 관계형 데이터베이스를 설계했다면 우리는 이 둘을 매핑시켜줘야 한다. 하지만 JPA의 특성 덕분에 우리는 객체 위주로 설계하고 이를 매핑시켜주면 된다. 조건에 맞게 엔티티를 매핑시켜주기 위해서는 어떤 개념들이 필요할까 엔티티와 테이블 매핑 @Entity ? @Entity 어노테이션이 붙은 클래스는 애플리케이션 실행 시 자동으로 JPA 가 관리하고 이를 엔티티라 부른다. 즉 JPA 를 사용해서 테이블과 매핑될 클래스는 반드시 선언 전 @Entity 어노테이션이 필수이다. 이 때 엔티티 이름을 지정할 수 있는데, @Entity(name = " ") 옵션을 주면 된다. 없다면 클래스 이름을 기본값으로 사용한다. @Table ? @Table 어노테이션은 ..

개인 공부/Spring

[Spring] #6 스프링 빈 등록

6장에서는 스프링 빈이 무엇인지, 어떻게 등록하는지 알아보겠습니다. 공부 자료는 인프런 김영한 강사님의 스프링 입문편을 들었습니다. https://inf.run/Jk5T 스프링 빈이란 ? 스프링 빈이란, 스프링 컨테이너가 관리하는 자바 객체입니다. 코드에서 new() 키워드를 통해 다양한 객체를 만들어 낼 수 있지만, 이 모든 객체가 스프링 컨테이너가 관리하지 않기 때문에 모든 객체가 스프링 빈은 아닙니다. 사용할 객체를 스프링 빈으로 등록해야지 관리하기 용이하고 편리하기 때문에 빈에 대해 이해하고, 활용하는 것이 매우 중요합니다. 스프링 빈을 등록하는 방법은 2가지가 있습니다. 스프링 빈을 등록하는 2가지 방법과 각각의 장단점에 대해서 알아보겠습니다. 컴포넌트 스캔 활용 첫 번째로 컴포넌트 스캔을 활용..

개인 공부/Spring

[Spring] #5 회원 서비스 구현

5장에서는 실제 비즈니스와 직접적으로 연관된 서비스를 구현해보겠습니다. 공부 자료는 인프런 김영한 강사님의 스프링 입문편을 들었습니다. https://inf.run/Jk5T 서비스 자바 스프링에서 서비스는 앞서 구현한 리포지토리에 접근해 비즈니스와 직접적으로 관련된 동작을 수행하는 코드입니다. 비즈니스 요구사항으로 회원 등록과 조회가 있었습니다. 요구사항을 만족하기 위해 먼저 서비스 패키지를 만든 후, 패키지 안에 MemberService 코드를 구현합니다. MemberService 전체코드입니다. 메소드를 확인하기 전에 먼저 MemberService 선언에 대해서 알아보겠습니다. 하나의 MemberService 마다 새로운 MemberRepository 를 new 키워드를 통해 생성한다면, 각각의 서비..

개인 공부/Spring

[Spring] #4 회원 리포지토리 테스트 케이스 작성

3장에 이어서 예제 요구에 대한 백엔드를 마저 구성해보겠습니다. 4장에서는 3장에서 구현한 리포지토리에 대한 테스트 케이스를 작성하고 테스트를 하는 과정까지 포스팅 하겠습니다. 공부 자료는 인프런 김영한 강사님의 스프링 입문편을 들었습니다. https://inf.run/Jk5T 테스트 자바 스프링에서는 개발한 메소드를 테스트하는 여러가지 방법이 있습니다. 자바 main 메소드를 통해 실행하는 방법, 웹 어플리케이션 컨트롤러를 통해 실행하는 방법 등이 있습니다. 그러나 이러한 방법은 준비하고 실행하는데에 오랜 시간이 걸리며, 반복 실행하기 어렵다는 단점이 있습니다. 때문에 자바 스프링에서는 JUnit 프레임워크를 사용하여 테스트를 실행합니다. Java 클래스에 대한 테스트 코드를 만드는데에 IntelliJ..

개인 공부/Spring

[Spring] #3 회원 도메인과 리포지토리 구현

2장에 이어서 예제 요구에 대한 백엔드를 마저 구성해보겠습니다. 공부 자료는 인프런 김영한 강사님의 스프링 입문편을 들었습니다. https://inf.run/Jk5T 회원 도메인 생성 2장에서 설명했듯이, 도메인은 회원 객체라고 생각하시면 됩니다. 예제에서 회원 ID와 이름 데이터를 요구하였기 때문에 이에 맞게 생성하시면 됩니다. 먼저 위와 같이 도메인 패키지를 먼저 생성한 후, 아래와 같이 Member 클래스를 작성해줍니다. package com.example.demo.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { ..

개인 공부/Spring

[Spring] #2 예제로 통한 백엔드 개발

1장에서 기본적인 웹 프레임워크 데이터 통신 원리를 알아보았습니다. 2장에서는 간단하지만, 실제 사용될 수 있는 예제를 가져와 서버를 함께 구현해보겠습니다. 역시 공부 자료는 인프런 김영한 강사님의 스프링 입문편을 들었으며 사진 자료의 저작권은 김영한 강사님께 있음을 알립니다. https://inf.run/Jk5T 우선 기업에서도 일반적으로 웹 어플리케이션을 개발 할 때 아래와 같은 계층 구조로 개발한다고 합니다. 컨트롤러는 앞에서 배웠듯이, 클라이언트의 요청을 받아 어떠한 요청인지 구분해 그에 맞는 행동을 할 수 있게 해주는 MVC 컨트롤러입니다. 도메인은 실제 비즈니스 도메인 객체입니다. 실제 데이터베이스에 저장되는 데이터들을 도메인으로 생성하고 관리합니다. 리포지토리는 도메인 객체를 데이터베이스에 ..

개인 공부/Spring

[Spring] #1 스프링 웹 개발 기초

정신 없던 학기가 끝나고, 번아웃이 오는 바람에 소홀했던 백엔드 공부와 블로그를 제대로 시작하려 합니다. 많은 기업들의 서버 프레임워크인 스프링에 대해 공부하고 잊지 않고 공유하기 위해 기록합니다. 공부 자료는 인프런 김영한 강사님의 스프링 입문편을 들었습니다. 그럼 시작하겠습니다 ! https://inf.run/K6kK 프로젝트 시작 시중에는 편리한 IDE가 많이 있습니다. 저는 IntelliJ IDEA를 사용하여 프로젝트를 개발하였습니다. 처음 스프링 프로젝트를 생성할 때, 대부분 스프링부트 기반으로 스프링 프로젝트를 생성합니다. 편리한 사용을 위해 스프링부트에서는 프로젝트 생성 사이트를 제공하고 있습니다. https://start.spring.io/ 위 사이트에 접속하게 되면 아래와 같은 화면이 출..

Da2isy
'백엔드' 태그의 글 목록