본문 바로가기

분류 전체보기278

[20220612] 개발자 일기 이번 주부터는 새로운 프로젝트 구축을 시작했다. 스프링 부트와 JPA를 사용하게 되었는데 그에 따라 추가적인 공부가 필요하다. 기존에 만들어져 있던 프로젝트를 개선하면서 진행해보기 위해 web.xml 등 XML 파일을 사용하지 않고 자바 기반 설정으로 변경해주었다. 자바 기반 설정으로 바꾸기 위해 빈을 등록하는 건 매우 쉬운데 필터나 리스너, 인터셉터 등을 마이그레이션 해주는 게 조금 까다로워서 자료를 많이 찾아봐야 했다. 결과적으로는 잘 작동해서 기분이 아주 좋았다. 자바 기반 설정으로 변경하는 이유는 일단 web.xml을 기술하는 방식 자체가 이미 구식이고, 소스 외에 정적인 문서들이 프로젝트를 구성하는 것이 그다지 좋아 보이지 않았다. WEB-INF 이하의 경로에 클래스 파일, 라이브러리 파일만 있.. 2022. 6. 12.
[20220604] 개발자 일기 오랜만에 개발자 일기를 써본다. 한동안 일기를 쓰지 않았는데 일기 또는 TIL을 매일 쓰니까 글 자체가 질이 떨어지고 하루 동안 배운 양이 얼마 되지 않는데 쓰려니까 글 내용도 적어지는 것 같아서 방식을 바꾸려고 했기 때문이다. 앞으로는 개발자 일기는 주 1회 정도로 쓰고 공부한 내용은 정리해서 완성된 글로 작성한다. 최근에 공부하고 있는 방식은 웹 개발에 대한 개념들을 천천히 곱씹어보면서 생각나는 것들을 계속 찾아보고 정리하는 것이다. 그러고 나서 쓴 글이 '자바 EE에서 스프링 프레임으로'와 '스프링 프레임워크를 쓰는 이유'였다. 웹 개발을 하고 있지만 아직 모르는 것이 너무 많다. 안다고 생각하고 있는 개념도 사실은 모르고 있는 경우도 있고 계속해서 다른 것들을 공부하다 보니 점점 기억 속에서 잊혀.. 2022. 6. 4.
생성자 주입을 권장하는 이유 스프링의 의존성 주입 방식에는 수정자(setter) 주입, 필드(field) 주입, 생성자(constructor) 주입이 있다. 그중에서 생성자 주입이 다른 방식보다 권장된다. 그 이유들을 간단히 살펴보자. 객체를 불변(immutable)으로 만들 수 있다. setter를 사용하는 주입은 실행 중 언제든지 객체를 변경할 수 있지만, 생성자 주입은 객체를 final로 선언할 수 있어 처음 주입된 이후 변경이 불가능하다. 애플리케이션 실행 시 의존성을 반드시 주입하여 NullPointerException을 방지한다. 컴파일 시에 어떤 이유에서든 의존성이 주입되지 않는 경우를 막아서 실행 중에 NPE를 막을 수 있다. 순환 참조를 막아준다. 한 객체가 다른 객체를 서로 참조할 경우 stack overflow의.. 2022. 5. 30.
스프링 프레임워크를 사용하는 이유 필자는 회사에서 스프링 프레임워크를 사용해서 웹 개발을 하고 있다. 그러다 문득 든 생각이 "스프링으로만 개발하고 있는 나는 자바 개발자가 맞는가'였다. 그래서 스프링 이전에는 무엇이 있었는지, 어떻게 해서 스프링이 나오게 되었는지에 대해 생각해보고 또 조사해보았다. 저번에는 Java EE에서 스프링 프레임워크로 넘어가는 과정에 대해 이야기해봤고, 이번에는 스프링 프레임워크를 사용하는 이유에 대해 좀 더 알아보려고 한다. 우선, 프레임워크를 사용하는 이유부터 간단히 살펴보자. 프레임워크를 이용한 개발은 이름에서 알 수 있듯이 소프트웨어의 '뼈대'가 되는 부분은 미리 만들어놓고 필요한 부분들을 추가하거나 수정해서 사용하는 개발 방식이다. 그러다 보니 개발 기간이 단축되고, 오류가 적어지며, Java EE만.. 2022. 5. 30.
728x90