본문 바로가기

분류 전체보기115

[스프링] - 스프링 웹 MVC 프로젝트 세팅 방법 # 스프링 프레임워크 프로젝트 생성 # 스프링(Spring) 프레임워크는 웹에 주로 사용되지만 그렇다고 웹에 종속된 프레임워크가 아니다. 스프링은 의존성 주입(Dependency Injection) 기법을 적용한 객체지향 프레임워크다. 따라서 스프링의 코어는 의존성 주입과 관련된 기술이고, 바로 여기에 웹MVC와 같은 라이브러리를 추가로 설정해 웹 프로젝트로 만들어 사용하는 것이다. 여기서는 웹을 기반으로한 스프링 프레임워크 프로젝트 세팅에 대해 정리하려고 한다. 왜냐하면 자바 스프링 프로젝트는 언제나 프로젝트 세팅이 까다로웠기 때문이다. 이 참에 정리해보았다. ※ 원래 프로젝트 빌드 시, 롬복(lombok)이나 로그(log4j2)를 함께 쓰지만, 여기서는 순수하게 스프링만 파악하기 위해 일부러 생략해보.. 2024. 1. 6.
[MyBatis] - 마이바티스를 단독으로 빌드하고 사용하는 방법 1. MyBatis 단독 설정 방법 마이바티스란 SQL 문법을 xml 파일로 따로 분리하기 위해 사용되는 라이브러리다. 기본 목표는 Mapper라 불리는 자바 인터페이스에 SQL 문법을 매핑시키는 것이 목표다. 이렇게 하면 일일이 JDBC에서 코드로 SQL 문법을 사용할 필요가 없다. xml 파일만 수정하면 되는 것이다. 그래도 최고의 이점은 이렇게 SQL 문법을 코드로부터 분리시키면 자바 애플리케이션 개발자는 매퍼 인터페이스만으로도 개발을 할 수 있다는 점이다. 굳이 복잡한 구현 상세 사항에 대해 몰라도 된다. (만약 JDBC를 사용했다면 일일이 상세 사항을 구현해야 했을 것이다.) 아래의 코드의 구현체가 적당히 만들어진다고 가정하고 자유롭게 매퍼 인터페이스를 사용하기만 하면 된다. 사실 마이바티스는 .. 2024. 1. 6.
오랜만의 스프링 보면서 느낀 점.. 예전에 봤던 스프링 기술을 지금 한 번 보고 있는데, 신기하게도 옛날과는 달리 술술 잘 읽힌다. 특히 기술 간 경계가 아주 명확하게 선이 보인다. 각종 라이브러리, 빌드툴, IDE, 등 각 기술들이 서로 어떻게 연계되는지 보인다. 각 기술 사이의 접합부가 무엇인지 보이고, 따라서 기술을 뺏다 넣었다 할 수도 있을 것 같다. 때문에 각 기술이 정확하게 어떤 절차를 거쳐 적용이 되고, 무엇을 위해 존재하는지 느낌이 온다. 왜 빨리 깨우치질 못했을까 안타까운 것도 있지만, 그래도 공부하면서 후퇴는 하지 않았다는 점에 뿌듯함을 느끼자. 2024. 1. 6.
[lombok] - @RequiredArgsContructor와 @Qualifier 같이 쓰는 원리 스프링 프로젝트에서 @Qualifier 어노테이션을 통해 원하는 빈(bean)의 이름을 특정해 주입받을 수 있다. 그러나 롬복과 함께 사용하기 위해서는 클래스패스에 아래의 lombok.config 파일을 아래처럼 설정해야 비로소 제대로 스프링이 의존성을 주입해줄 수 있다. lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier 이 포스팅은 위 파일을 사용해야 하는 이유에 대한 것이다. 1. 생성자 통해 의존성 주입 받기 스프링 프레임워크 사용 시, 일반적으로 생성자를 통해 의존성을 주입받는다. 필드 주입과 세터 주입은 각각의 단점이 명확하기 때문에 잘 사용되진 않는다. 생성자를 통해 의존성을 주입받기 위해서는.. 2024. 1. 6.