본문 바로가기

IT 공부104

[스프링] - Formatter 개념 정리 1. 파라미터 자동 수집과 포매터 스프링 웹 MVC의 장점 중 하나는 쓸데 없는 코드를 줄일 수 있다는 점이다. 쿼리 스트링 등으로 전달되는 파라미터를 자동으로 캐치하고 형 변환을 통해 인자로 바로 전달할 수 있다는 점도 엄청난 장점이다. 이전에는 HttpServletRequest에서 getParameter()를 통해 일일이 문자열 데이터를 받아 형변환을 했지만, 스프링에서는 그런 코드는 생략된다. 하지만 생략되는 만큼 문제가 발생하는 법! 특히 HTTP 요청의 쿼리 스트링이나 body에 포함되는 데이터는 기본적으로는 문자열이다. 문자열을 자동으로 String, int, long, boolean으로 형변환하는 데는 아주 크게 무리는 없지만, 문자열을 원하는 객체 타입으로 바꾸려면 개발자가 설정을 해줘야 .. 2024. 1. 6.
[스프링] - 스프링 웹 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.