반응형

스프링 9

값 타입

JPA는 데이터 타입을 최상위 레벨로 분류하면 2가지로 분류한다. 1. 엔티티 타입  - @Entity로 정의하는 객체  - 데이터가 변해도 식별자로 지속해서 추적 가능 ex) 회원의 키나 값을 변경해도 식별자로 인식 가능2. 값 타입  - int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체  - 식별자가 없고, 값만 있으므로 변경시 추적 불가  - 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체  값 타입은 또 세가지로 분류될 수 있다.1. 기본값 타입2. 임베디드 타입3. 컬렉션 값 타입 값 타입1. 기본값 타입  - 자바 기본 타입(int, double)  - 래퍼 클래스(Integer, Long)  - String 기본 값 타입은 String ..

공부/JPA 2024.12.23

웹 계층 개발

https://surrealcode.tistory.com/98 애플리케이션 구현(도메인 개발)구현 전 앞서 만든 예제를 통해 도메인 분석과 설계를 하여 구현 준비를 한다https://surrealcode.tistory.com/97 도메인 분석 설계JPA 프로그래밍의 이론을 알기 전 실전 코딩을 통해 직접 코드를 만들어surrealcode.tistory.com애플리케이션까지 구현이 마무리 되었다면, 웹 계층을 개발하도록 한다.Controller 관련과 front 관련 개발이다.thymeleaf를 사용할 예정이다. 개발 순서는 다음과 같이 진행한다.홈 화면과 레이아웃 -> 회원 등록 -> 회원 목록 조회 -> 상품 등록 -> 상품 목록 -> 상품 수정 -> 변경 감지와 병합(merge) -> 상품 주문 ->..

카테고리 없음 2024.11.25

프로젝트 환경 설정

https://start.spring.io/이전처럼 spring프로젝트를 구성해준다.gradle, java, 메이저 버전을 선택하고, 아래와 같은 dependencies를 구성하여준다. 이렇게 설정하면 압축 파일이 하나 생성되는데 압축을 해제하고(원하는 위치, 프로젝트를 만들 위치, 보통 C드라이브 밑에 폴더를 하나 구성하여 만든다.) build.gradle을 인텔리제이를 통해 프로젝트 open을 해준다. 롬복에 대한 구성 방법은 아래의 방법을 참고하도록 하자.https://surrealcode.tistory.com/93 의존관계 자동 주입다양한 의존관계 주입 방법 의존관계 주입은 크게 4가지 방법이 있다.- 생성자 주입- 수정자 주입(setter 주입)- 필드 주입- 일반 메서드 주입  생성자 주입- ..

공부/JPA 2024.11.17

bean 생명주기 콜백

빈 생명주기 콜백데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다.스프링을 통해 이러한 초기화 작업과 종료 작업을 어떻게 진행하는지 알아보자. 간단하게 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정해보자. 실제로 네트워크에 연결하는 것은 아니고, 단순히 문자만 출력하도록 했다. 이 'NetworkClient'는 애플리케이션 시작 지점에 'connect()'를 호출하여 연결을 맺어주고, 애플리케이션이 종료되면 'disconnect()'를 호출해서 연결을 끊어야 한다.public class NetworkClient { private Str..

공부/Spring 2024.11.06

스프링 컨테이너와 스프링 빈

https://surrealcode.tistory.com/89 스프링의 핵심 원리 이해 1 - 예제 만들기비즈니스 요구사항과 설계 회원- 회원을 가입하고 조회할 수 있다.- 회원은 일반과 VIP 두 가지 등급이 있다.- 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다(미확정) 주surrealcode.tistory.com우선 스프링의 핵심 원리 이해를 위해서 이전 포스팅을 참고하자.  스프링 컨테이너 생성스프링 컨테이너가 생성되는 과정을 알아보자.ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); - ApplicationContext를 스프링 컨테이너라 한다...

공부/Spring 2024.10.27

객체 지향 설계와 스프링

스프링에는 여러가지 기술들이 있다 기술 용어는 다음과 같다.간략하게 알아보고 넘어가자. 스프링 데이터 : DB의 기본적인 CRUD는 비슷하기 때문에 이런 것을 스프링 데이터가 도와준다.스프링 세션 : 세선 기능을 편리하게 사용할 수 있도록 도와준다.스프링 시큐리티 : 보안과 관련되어 있다.스프링 Rest Docs : API 문서와 테스트를 편하게 엮어서 문서화를 편하게 해주는 것이다.스프링 배치 : 배치 처리에 특화된 기술이다.스프링 클라우드 : 클라우드 기술에 특화된 것이다. 위의 예시 외에도 다양한 기술들이 있다.  스프링- 스프링이라는 단어는 문맥에 따라 다르게 사용된다.  - 스프링 DI 컨테이너 기술  - 스프링 프레임워크  - 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계  ..

공부/Spring 2024.10.22

스프링 회원 관리 예제

이번엔 회원 관리 예제를 만들어보려 한다.기본 환경설정에 관한 내용은 아래를 참고하자.https://surrealcode.tistory.com/85 스프링 입문 - 프로젝트 환경 설정2https://surrealcode.tistory.com/84 스프링 입문 - 프로젝트 환경 설정https://start.spring.io/ 스프링 부트 기반으로 스프링 프로젝트를 만들어주는 사이트이다. 요즘 추세는 Gradle 프로젝트를 진행한다. Javasurrealcode.tistory.com  비즈니스 요구사항 정리- 데이터 : 회원 ID, 이름- 기능 : 회원 등록, 조회- 아직 데이터 저장소가 선정되지 않았음일반적인 웹 애플리케이션 구조는 위와 같은 형태를 띄고 있다.컨트롤러 : 웹 MVC의 컨트롤러 역할서비스 ..

공부/Spring 2024.10.16

스프링 입문 - 프로젝트 환경 설정2

https://surrealcode.tistory.com/84 스프링 입문 - 프로젝트 환경 설정https://start.spring.io/ 스프링 부트 기반으로 스프링 프로젝트를 만들어주는 사이트이다. 요즘 추세는 Gradle 프로젝트를 진행한다. Java언어를 선택하고 최신 부트 버전을 선택한다.(SNAPSHOT이나 M이surrealcode.tistory.com 이전에 스프링 프로젝트의 환경 설정을 진행했었다. 이번엔 코드를 짜고 프로그램을 직접 돌려보자.package hello.hello_spring;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplic..

공부/Spring 2024.10.15

스프링 입문 - 프로젝트 환경 설정1

https://start.spring.io/ 스프링 부트 기반으로 스프링 프로젝트를 만들어주는 사이트이다. 요즘 추세는 Gradle 프로젝트를 진행한다. Java언어를 선택하고 최신 부트 버전을 선택한다.(SNAPSHOT이나 M이 붙은 프로젝트는 정식 릴리즈 버전이 아니다.)  제네레이터 선택 이후 프로젝트 임포트 하듯 편하게 임포트 해주면 된다. 간혹 자바 버전이 안맞아서 에러가 발생할 수 있다https://milenote.tistory.com/63 Project Settings > Project > Project SDK SDK 버전을 새로 다운로드 받아서 버전을 맞춘다." data-og-host="milenote.tistory.com" data-og-source-url="https://milenote..

공부/Spring 2024.10.11
반응형