본문 바로가기

Spring 프레임워크54

[ 스프링 프레임워크 ] Null Safety Null Safety 널 안정성을 높이는 방법 1) 애초에 아래의 코드와 같은 널 체크 코드를 만들지 않고 스프링 프레임워크에서 제공 하는 어노테이션을 사용 할 수 있다. (널을 체크 하는 로직은 단순한 유효성 검사 로직을 반복 하는 것이기 때문에 보일러 플레이트 라고 볼 수 있다) 2) 아래의 코드와 달리, 애초에 널 체크를 코드를 작성 하지 않았다고 할 때, 발생하는 NPE 를 어노테이션을 통해 방지 할 수 있다. 3) 완벽한 방법은 아니지만, IDE 에서 경고를 표시함으로써, 1차적인 널 문제를 방지하고, 정확한 에러 위치를 확인할 수 있도록 할 수 있다. public void method(String request) { if(request == null) return; System.out.prin.. 2023. 10. 22.
IntelliJ를 사용한 Spring Framework Project 생성 및 설정 구글링을 해보니, 2023년도 초반 까지만 해도 스프링 프레임워크 프로젝트를 생성 하고, 프로젝트를 우클릭 하면 Add Framework Support 라는 기능이 있었던 것 같다. (이 기능을 통해 편하게 pom.xml 설정 파일에 필요한 라이브러리들을 추가 할 수 있었다) 더이상 이 기능을 인텔리제이가 지원을 하지 않는듯 해서, 인텔리제이로 스프링 프레임워크 프로젝트를 생성 하고 설정 하는 방법을 정리 하려고 한다. (maven 프로젝트) (인텔리제이 정보 : IntelliJ IDEA 2023.2.3 (Ultimate Edition) 1. 필요한 것들 1) Java JDK 2) Apache Tomcat 본인의 자바 버전은 11.0.20 이고, 아파치 톰캣 버전은 9.0.76 이다. 자바는 아래의 링크.. 2023. 10. 21.
[ 스프링 프레임워크 ] Validation / Data Binding Validation 이란 ? >> 유효성 검증을 뜻하는 단어. 주로 사용자 또는 서버의 요청 (http request) 내용에서 잘못된 내용이 있는지를 꼼꼼하게 확인하는 단계를 의미 한다. Validation 종류 학문적으로 여러 세부적인 단계들이 존재 한다. >> 실제로 개발자가 주로 가지고 가야 하는 검증은 크게 두 종류로 나뉜다. 1) 데이터 검증 - 필수 데이터의 존재 유무 - 문자열의 길이 또는 숫자형 데이터의 경우 값의 범위 - email, 신용카드 번호 등 특정 형식에 맞춘 데이터 2) 비즈니스 검증 - 서비스에 정책에 따라 데이터를 확인 하여 검증 (배달앱에서 배달 요청을 할 때, 해당 주문건이 결제 완료 상태인지 확인 하기 등) - 경우에 따라 외부 API를 호출하거나 또는 DB의 데이터.. 2023. 10. 20.
[스프링 프레임워크] AOP AOP 관점 지향 프로그래밍 - Aspect Oriented Programming AOP : 공통적인 부분을 스프링이 도와서 처리해준다는 개념. 그런데 공통적인 부분의 범위가 어느정도 일까 ? 완전히 전반적인 프로젝트 공통적인 기능의 대표적인 예시는 다음과 같다. >> 인증 이런것들은 필터 또는 인터셉터로 처리 하는게 더 적합하다. 하지만, 특정 타이밍 / 시점 / 컨트롤러 에 대해서 원하는 작업 (기능) 을 부여 하고 싶다면 ? 이런것들은 AOP 개념을 활용하여 처리 하는게 좋다. (필터나 인터셉터 보다 조금 더 똑똑하게 처리 하고 싶을 때) 예시) 1) 로깅 특정 함수가 호출 되었을 때 자세한 로깅을 남기고 싶을 때. 2) 트랜잭션 Spring MVC 프로젝트를 구현할 때, @Transactional.. 2023. 10. 19.
[ 스프링 프레임워크 ] 핵심 기술 / 디자인 철학 스프링 프레임워크 핵심 기술 앞으로 스프링을 업무에서 사용 하게 되면, 결국 이미 구성 되어 있는 것들을 따라 하면서 비슷하게 기능을 찍어 내는 그림으로 흘러 가게 될 것이다. 그런데 단순히 따라 하는 것은 어렵지 않지만, 동작 하는 원리를 알지 못한다면 어떻게 될까 ? 문제가 발생 했을 때, 원인 파악도 어려울 뿐더러 해결 하는 것은 더욱 어려울 것이다. 그리고, 약간 다른 요구 사항에 맞쳐서 기능을 개발 하게 되면 기존에 있는 것들을 그대로 따라 할 수는 없게 될 것인데, 이때 스프링 프레임워크의 내부적인 동작 원리를 알지 못하면 응용이 어려워지게 될 것 이다. 따라서 스프링 프레임워크의 내부 동작 원리에 대해 파악 하는게 중요 하다고 할 수 있다. [ DB 관련 기능 ] [ Web 관련 기능 ] [.. 2023. 10. 18.
Java / Spring Framework / SpringBoot 자바 : 객체지향적 프로그래밍 언어 - 우리가 배우게 될 스프링의 근간이 되는 언어 (마치 한글 처럼 기본 언어 라고 생각 하면 된다) - 스프링은 자바 뿐 아니라 코틀린, 그루비로도 사용할 수 있다. - 스프링 자체도 거의 대부분 자바로 만들어져 있다. 스프링 프레임워크 : 자바를 이용 해서 어플리케이션을 쓰기 위해 활용 하는 프레임워크 - 스프링이라는 틀 (프레임) 이 있고, 그 안에 자바 라는 언어를 내용으로 담을 수도 있고, 코틀린 또는 그루비 언어로도 내용을 담을 수도 있다. 그런데 스프링은 왜 탄생 했을까 ? 자바로 개인용 어플리케이션을 만드는것을 넘어서, 웹이 발전 하면서 서버 에서 사용자의 Action에 따라 응답을 줘야 하는 어플리케이션이 많이 필요로 하게 됬다. 이런 어플리케이션을 자바.. 2023. 10. 18.
[ Spring ] MyBatis 연결 하기 02 이 게시글은 Spring 프로젝트 ( Maven ) 에서 매퍼 인터페이스와 매퍼 XML 파일을 연결하는 방식을 정리 한다. 아래의 링크 에서는 Spring 프로젝트 에서 SQLSessionTemplate 템플릿 패턴을 활용 하여, SQLSessionTemplate 을 사용하는 DAO 클래스와 매퍼 XML 파일을 연결하는 방식의 MyBatis 설정 방법 이였다. https://hwanii96.tistory.com/425 [ Spring ] MyBatis 연결 하기 01 개요 지난 프로젝트 에서, 처음에는 JDBC 인터페이스의 preparedStatement 를 사용한 방식의 DAO 였고, 두번째는 JdbcTemplate 템플릿 패턴을 활용한 방식의 DAO 였다. SpringBoot 에서 MyBatis 프레.. 2023. 10. 2.
MyBatis 와 Spring (Boot) 연결 요약 첫번째 방법 참고 : https://hwanii96.tistory.com/423 [ SpringBoot ] MyBatis 프레임워크MyBatis 프레임워크란 ? 데이터베이스와 상호작용하며, 쿼리문을 쉽게 작성하고 실행할 수 있도록 도와주는 프레임워크 이다. MyBatis는 데이터베이스와 자바 객체 간의 매핑을 간단하게 처리 할 수hwanii96.tistory.com [ SpringBoot ] @Mapper 어노테이션을 사용해서 Spring의 루트 컨테이너가 매퍼 인터페이스를 Spring의 빈으로 등록 한다. 그리고, 매퍼 인터페이스와 매퍼 XML 파일과의 연결을 위한 설정을 통해, SQL 작업을 수행 할 수 있도록 하는 방식으로 연결 했다. SpringBoot 에서는 application.properti.. 2023. 9. 29.
[ Spring ] MyBatis 연결 하기 01 개요 지난 프로젝트 에서, 처음에는 JDBC 인터페이스의 preparedStatement 를 사용한 방식의 DAO 였고, 두번째는 JdbcTemplate 템플릿 패턴을 활용한 방식의 DAO 였다. SpringBoot 에서 MyBatis 프레임워크 적용 방법을 공부했기에, 프로젝트에 이를 적용해 보기로 했다. 이 게시글은 SQLSessionTemplate 템플릿 패턴을 활용한 방식으로 MyBatis 와의 연결 하는 방식 이다. 설정 방법1. maven 설정 파일을 사용하는 프로젝트 여서, pom.xml 에 MyBatis 프레임워크 관련 라이브러리를 추가. 본인은 각각 3.5.13 버전과 2.0.7 버전을 사용 했다. 아래의 더보기 에서 다양한 버전을 확인 할 수 있다. 본인에 환경에 맞는 버전을 적용 하면.. 2023. 9. 27.