반응형

스프링 13

예외 처리와 오류 페이지

예외 처리와 오류 페이지를 알아보기 위해 패키지를 만들도록 하자.https://start.spring.io/   서블릿 예외 처리 - 시작스프링이 아닌 순수 서블릿 컨테이너는 예외를 어떻게 처리하는지 알아보자. 서블릿은 다음 2가지 방식으롷 예외 처리를 지원한다.- 'Exception' 예외- 'response.sendError(HTTP 상태 코드, 오류 메시지)'  Exception(예외)자바 직접 실행 - 자바의 메인 메서드를 직접 실행하는 경우 main이라는 이름의 쓰레드가 실행된다. 실행 도중에 예외를 잡지 못하고 처음 실행한 main()메서드를 넘어서 예외가 던져지면, 예외 정보를 남기고 해당 쓰레드는 종료된다. 웹 애플리케이션 - 웹 애플리케이션은 사용자 요청별로 별도의 쓰레드가 할당되고, 서..

공부/Spring 2025.04.10

로그인 처리2 - 필터, 인터셉터

필터와 인터셉터를 알아보기 전, 쿠키와 세션관련 부분을 미리 확인해두자.https://surrealcode.tistory.com/137 로그인 처리1 - 쿠키, 세션로그인 요구사항- 홈 화면 - 로그인 전    - 회원 가입    - 로그인- 홈 화면 - 로그인 후    - 본인 이름(~님 환영합니다.)    - 상품 관리    - 로그 아웃- 보안 요구사항    - 로그인한 사용자만surrealcode.tistory.com  **정보**필터 :  서블릿에서 제공인터셉터 : 스프링에서 제공   서블릿 필터공통 관심 사항요구사항을 보면 로그인 한  사용자만 상품 관리 페이지에 들어갈 수 있어야 한다.하지만 로그인 하지 않은 사용자가 URL을 직접 입력하면 상품 관리 화면에 들어가진다. - http://lo..

공부/Spring 2025.04.08

타임리프 - 스프링 통합과 폼

타임리프 스프링 통합타임리프는 크게 2가지 메뉴얼을 제공한다. 기본매뉴얼 : https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html스프링 통합 매뉴얼 : https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html 타임리프는 스프링 없이도 동작하지만, 스프링과 통합을 위한 다양한 기능을 편리하게 제공한다. 그리고 이런 부분은 스프링으로 백엔드를 개발하는 개발자 입장에서 타임리프를 선택하는 하나의 이유가 된다.  스프링 통합으로 추가되는 기능들- 스프링의 SpringEL 문법 통합- ${@myBean.doSomething()}처럼 스프링 빈 호출 지원- 편리한 폼 관리를 위한 추가 속성    ..

공부/Spring 2025.03.29

타임리프 - 기본 기능

타임리프의 기본 기능에 대해 알아보자.우선 그 전에 프로젝트를 하나 생성한다. 생성은 아래와 같이 생성해준다.https://start.spring.io/ Dependency는 Spring Web, Lombok, Thymeleaf를 적용하였다.   타임리프타임리프의 공식 사이트 및 메뉴얼은 다음과 같다.https://www.thymeleaf.org/ 타임리프 특징- 서버 사이드 HTML 렌더링(SSR)- 네츄럴 템플릿- 스프링 통합 지원 서버 사이드 HTML 렌더링(SSR)타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링하는 용도로 사용된다. 네츄럴 템플릿타임리프는 순수 HTML을 최대한 유지하는 특징이 있다.타임리프로 작성한 파일은 HTML을 유지하기 때문에 웹 브라우저에서 파일을 직접 열어도 내용을..

공부/Spring 2025.03.27

값 타입

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) -> 상품 주문 ->..

공부/Spring Boot 2024.11.25

프로젝트 환경 설정

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

공부/Spring Boot 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
반응형