본 게시물은 스스로의 공부를 위한 글입니다.틀린 내용이 있을 수 있습니다. 서블릿은 2가지 방식으로 예외 처리를 지원한다.Exception(예외)response.sendError(HTTP 상태코드, 오류 메시지)웹 애플리케이션은 사용자 요청별로 별도의 쓰레드가 할당되고
본 게시물은 스스로의 공부를 위한 글입니다.틀린 내용이 있을 수 있습니다. 쿠키, 세션의 기본 지식이 있어야 이해하기 쉽습니다!쿠키 종류영속 쿠키: 만료 날짜를 입력하면 해당 날짜까지 유지세션 쿠키: 만료 날짜를 생략하면 브라우저 종료시 까지만 유지쿠키만을 이용해 로그
웹 페이지가 로그인된 사용자에게만 들어갈 수 있다고 해보자.그럼 모든 컨트롤러에 로그인 여부를 확인하는 코드를 짜야하는데... 코드 중복도 많이진 뿐더러, 로그인 로직이 바뀌게되면 작성한 모든 로직을 수정해야 한다.이렇게 애플리케이션 여러 로직에서 공통으로 관심이 있는
본 게시물은 스스로의 공부를 위한 글입니다.틀린 내용이 있을 수 있습니다. HTML 오류 페이지야 그냥 고객 친화적으로 이쁘게 만들어서 보여주면 되지만, API오류는 다른 차원의 이야기이다.예를 들어 상품과 관련된 API에서 발생하는 오류와 로그인 관련된 API에서 발
본 게시물은 스스로의 공부를 위한 글입니다.틀린 내용이 있을 수 있습니다. 웹 개발을 하다보면 문자를 숫자로 변환하거나, 숫자를 문자로 변환해야 하는 일이 상당히 많다.HTTP 요청 파라미터는 모두 문자(String)으로 처리되기 때문에 자바에서 다른 타입으로 변환하는
본 게시물은 스스로의 공부를 위한 글입니다.틀린 내용이 있을 수 있습니다. 가장 기본적인 전송 방법Form태그에 별도의 enctype옵션이 없으면 이 방법으로 전송한다.HTTP Body에 문자로 username=kim&age=20 와 같이 & 로 구분해서 전송한다.하지
본 게시물은 스스로의 공부를 위한 글입니다.틀린 내용이 있을 수 있습니다. 클라이언트 검증은 조작할 수 있으므로 보안에 취약하다.서버만으로 검증하면, 즉각적인 고객 사용성이 부족해진다.둘을 적절히 섞어서 사용하되, 최종적으로 서버 검증은 필수API 방식을 사용하면 AP
본 게시물은 스스로의 공부를 위한 글입니다.틀린 내용이 있을 수 있습니다. 스프링에서 유효성 검증 로직을 구현하기 위한 사실상 표준검사 대상 클래스에 어노테이션 기반 제약 조건을 선언하여 간결하게 유효성 검사가 가능하다.Bean Validation을 사용하려면 vali
본 게시물은 스스로의 공부를 위한 글입니다.틀린 내용이 있을 수 있습니다. SSL(Secure Sockets Layer), TLS (Transport Layer Security)Netscape가 SSL을 개발. 폭 넓게 사용 중 표준화 기구인 IETF의 관리로 변경되면
본 게시물은 스스로의 공부를 위한 글입니다.잘못된 내용이 있으면 댓글로 알려주세요!JDK 동적 프록시는 여기를 참고 바란다.CGLIB는 바이트코드를 조작해서 동적으로 클래스를 생성하는 기술을 제공하는 라이브러리이다.CGLIB를 사용하면 인터페이스가 없어도 구체 클래스만
본 게시물은 스스로의 공부를 위한 글입니다.잘못된 내용이 있으면 댓글로 알려주세요!프록시, JDK 동적 프록시에 대해 알아보기CGLIB, ProxyFactory에 대해 알아보기포인트컷(Pointcut): 부가 기능을 적용할지, 안할지 판단하는 필터링 로직. 주로 클래스
본 게시물은 스스로의 공부를 위한 글입니다.잘못된 내용이 있으면 댓글로 알려주세요!일반적으로 스프링 빈을 등록할 때는 다음과 같은 로직이 실행된다.객체 생성 -> 스프링 컨테이너 빈 저장소에 등록빈 후처리기(BeanPostProcessor)을 사용하면 빈 저장소에 등록
핵심 기능은 해당 객체가 제공하는 고유의 기능EX) 주문로직, 회원가입, 로그인부가 기능은 핵심 기능을 보조하기 위헤 제공되는 기능EX) 로그 로직, 트랜잭션 기능 등부가 기능은 단독으로 사용되지 않고, 핵심 기능과 함께 사용된다.보통 부가 기능은 여러 클래스에 걸쳐서
execution : 메소드 실행 조인 포인트를 매칭한다. 스프링 AOP에서 가장 많이 사용하고, 기능도복잡하다.within : 특정 타입 내의 조인 포인트를 매칭한다.args : 인자가 주어진 타입의 인스턴스인 조인 포인트this : 스프링 빈 객체(스프링 AOP 프
아래 블로그를 통해 리눅스 환경에서 spring server을 무중단 배포하는 기술을 적용해봤다. 너무 친절하게 포스팅이 되어 있어서, 따라하는데 큰 어려움은 없었다.https://wbluke.tistory.com/39?category=418851내가 해당 작
스프링 부트 3.0의 중요 변경 부분은 아래와 같다.1\. Java 17 이상을 사용해야 한다.2\. javax 패키지 이름을 jakarta로 변경해야 한다.(오라클과 자바 라이센스 문제)보통 h2 db를 사용할 때는 테이블 생성 문제 때문에 1.4.200 또는 1.3
스프링 개발을 도와주는 여러가지 도구의 모음이자 스프링 자체를 확장하고 있는 프레임 워크, 라이브러리기존의 스프링을 사용하기 위해선 너무 복잡한 고민이 필요하고, 시작을 빠르게 하기 어려웠다.스프링이 제공하는 많은 선택지와 스프링과 함께 사용하는 표준 기술, 라이브러리
jasypt을 사용하기 위해 구글 서칭을 하면, 많은 블로그와 사이트에서 예제 코드를 확인할 수 있다.대부분의 코드들이 아래와 같이 3.0.4를 사용하는 것을 확인할 수 있다.하지만 스프링 부트 3에서는 3.0.4를 사용하면 정상적으로 동작하지 않는다.결론부터 이야기하
서블릿은 자바의 표준 기술이고, 이 표준 기술을 구현한 제품들이 많이 존재한다. 그 중 가장 대표적인 서블릿 컨테이너가 톰켓이다.톰켓도 자바로 만들어진 프로그램이다. 즉, 클래스에 오브젝트로 만들고 어떤 메소드를 실행하면 동작한다.톰켓은 ‘임베디드 톰켓’이라는 라이브러
스프링 컨테이너를 대표하는 인터페이스는 ApplicationContext이다. 이 인터페이스를 이용해 애플리케이션을 구성하고 있는 많은 정보(어떤 빈이 등록되었는지, 리소스에 접근 방법, 이벤트 전달 및 구독 등)를 담고있는 오브젝트들을 구현해야한다.Applicatio
메타 애노테이션이란 애노테이션 위에 붙은 애노테이션이라는 뜻이다. 보통 애노테이션은 클래스나 메소드 앞에 붙지만, 애노테이션 위에도 애노테이션을 또 붙일 수 있다. 이때 애노테이션 위에 붙어있는 애노테이션을 ‘메타 애노테이션’이라 한다.메타 애노테이션을 한 개 이상을
애플리케이션 빈: 개발자가 어떤 빈을 사용하겠다고 명시적으로 구성 정보를 제공한 것을 말한다.컨테이너 인프라스트럭처 빈: 스프링 컨테이너 자신이거나, 스프링 컨테이너가 계속 기능을 확장하면서 추가해온 것들을 빈으로 등록시켜서 사용하는 빈들. 개발자가 이런 빈들을 등록
전 게시물의 마지막 부분에서는 자동 구성 정보를 외부 파일에서 읽은 후, 동적으로 자동 구성을 등록하도록 했었다. 이 기능을 만들기 위해 MyAutoConfiguration 애노테이션 클래스를 만들고, 이 클래스의 full path+name 으로 만들어진 텍스트 파일(
스프링이 제공하는 environment abstraction(환경 추상화)이란 무엇인가?애플리케이션이 동작하는 환경은 목적이나 사용자에 따라서 조금씩 다르다. 스프링은 동작 환경에 맞춰서 코드를 매번 수정하지 않더라도, 애플리케이션의 구성 설정을 바꿀 수 있는 매커니즘