☕ JAVA 131

[JAVA]Entity, DTO, VO

※ 이전 글 : 2025.08.17 - [☕ JAVA/☕ 개념지식] - [JAVA]POJO란 개념. 이를 사용하기 전/후 특징특정 데이터를 담아 표현하는 객체라는 pojo라는 개념을 특정한 목적에 따라 구분한 겁니다. 단순한 데이터 컨테이너를 넘어, 애플리케이션 내에서 맡은 역할과 책임에 따라 명확히 구분되어 사용됩니다. 따라서 이들은 보통 각각 패키지를 가지고 있습니다. EntityDB와 동일한 구조를 가집니다. ※주의: 따라서 controller에서 반환타입으로 사용해 구조를 노출시키면 안됩니다.위의 코드는 참고로 어노테이션은 상황에 따라 @Entity, @Table, @Builder 등 다양하게 사용할 수 있습니다. DTOData Transfer Object 이름 그대로 데이터 전송에 사용됩니다..

[JAVA]POJO란 개념. 이를 사용하기 전/후

프로젝트마다 구조에 따라 사용하는 객체구조가 DTO/Entity/VO 등 다 다르기 때문에..알다가도 헷갈리고 짚고 넘어갈 부분들이 있어서 정리해 보려 했는데..POJO 설명이 길어져서 따로 글을 먼저 써보려고 합니다. POJOPlain Old Java Object 현실에서 하나의 개념을 객체로 만들어 표현할 때 class로 만들어 보자는 겁니다.2000년도에 나온 개념으로, pojo가 나오기 전의 시대는 테스트가 거의 불가능한 상태였다고 합니다.code(둘 다 같은 겁니다. Lombok의 어노테이션을 이용해 이렇게 줄여서 쓴다는 것을 보여주려 적어봄)basic pojo class with java codeother example with Lombok실제로는 pojo는 개념이므로 위의 코드처럼 클래스명..

[JAVA]간단한 Logging 사용법

※ 실무에서는 System.out.print*를 거의 사용하지 않는다. 로깅 라이브러리를 사용해서 로그를 출력한다.  SLF4J https://www.slf4j.org/인터페이스.구현체로 Logback, Log4J, Log4J2 등을 제공한다.Logback https://logback.qos.ch/스프링 부트에서 기본으로 제공.따라서 대부분 로그백을 사용하는 추세이다. 로그 선언 private final Logger log = LoggerFactory.getLogger(getClass());이 부분은 클래스에서 제일 윗단에 존재하며 항상 동일하게 작성한다.codeLoggerFactroy.getLogger(여기) 안에 해당 클래스가 들어와야 한다.Logger를 import할 때 org.slf4j 로 호출해..

[JAVA]어댑터에 구조가 다른 컨트롤러 추가하기

이전 글에서 만든 어댑터에 구조가 다른 컨트롤러를 연결해보겠습니다.2025.03.01 - [☕ JAVA/☕ Library & Pattern] - [JAVA]어댑터 패턴을 도입해 유연한 컨트롤러를 만들어보자 파일은 ControllerV4HandlerAdapter 하나 추가되었다.→ 이제 어댑터는 v3컨트롤러와 v4컨트롤러를 다루게 된다.프론트 컨트롤러에 딱 두가지만 추가됐다.initHandlerAdapter() 에서 ControllerV4HandlerAdapter를 핸들러어댑터 리스트에 추가하고initHandlerMappingMap()에 어떤 URI가 오면 반환할 컨트롤러를 추가해준다.ControllerV4HandlerAdapter이전 코드와 거의 동일하다. handle() 에서 반환 타입만 맞게끔 M..

[JAVA]어댑터 패턴을 도입해 유연한 컨트롤러를 만들어보자

이전 코드를 개선하기 위해 어댑터 패턴을 사용할 것이다.여러 컨트롤러를 자유롭게 사용할 수 있는 유연한 컨트롤러를 만들어보자.※ 이전 글 2025.03.01 - [☕ JAVA/☕ Library & Pattern] - [JAVA]MVC의 Model 만들어보기  핸들러 어댑터중간 어댑터 역할.덕분에 여러 컨트롤러 호출 가능.핸들러컨트롤러가 할 수 있는 영역을 넓힌 것. (컨트롤이라 생각하면된다)  폴더와 경로딱 이 세개만 만들면 됨.프론트 컨트롤러프론트 컨트롤러가 생성자로 바로 함수 두개를 실행해 map두개에 값을 답아줍니다.handler(컨트롤러)를 adapter로 보내고, 어댑터의 handle()을 이용해 ModelVeiw를 반환 받습니다.나머지는 이전 코드와 거의 동일합니다.어댑터의 조상. 컨트롤러들을..

[JAVA]MVC의 Controller에 사용할 model을 직접 만들어보기

이전 코드의 프론트 컨트롤러를 개선해, 운영하기 좋은 컨트롤러를 만들어보자.이전 글 2025.03.01 - [☕ JAVA/☕ Library & Pattern] - [JAVA]MVC의 Model 만들어보기바뀐 부분만 체크해서 살펴보겠습니다.  폴더 및 경로컨트롤러의 파라미터에 model이 추가되었다.각 컨트롤러프론트 컨트롤러model을 프론트 컨트롤러에 담아서 보내면 각 기능을 실행하고 값이 담겨진다.→ 혹시나하고 추가 설명하자면..반환되지 않아도 참조형 객체는 주소만 전달되면, 값이 담기는데 문제가 없다. 2023.01.08 - [☕ JAVA/☕ 개발환경] - [JAVA]단순히 정리한 JVM구조와 Memory(+static) ※ 참조 : https://www.inflearn.com/roadmaps/373

[JAVA]MVC의 Model 만들어보기

이전 글의 코드에 Model을 추가해보려한다.2025.03.01 - [☕ JAVA/☕ Library & Pattern] - [JAVA]MVC의 View 만들어보기Request에 값을 담아 반환했는데 별도의 Model객체를 만들어 볼 것이다.  파일 및 경로model 역할viewName과 model역할을 할 Map을 만들었다.controller가 이제는 ModelView를 반환하도록 한다.각 기능의 컨트롤러들ModelView를 반환하는데 mv.getModel().put(key, value);각 기능을 실행하고 반환해야 하는 데이터를 담아 보낸다.프론트 컨트롤러 (코드가 길어져서 바뀐 부분만 가져옴)ControllerV3 controller = controllerMap.get(requestURI);URI에 ..

[JAVA]MVC의 View 만들어보기

이전 글의 코드에서 View를 분리해보겠다.2025.02.28 - [☕ JAVA/☕ Library & Pattern] - [JAVA]HttpServlet 프론트 컨트롤러 도입해보기  폴더 및 파일 경로MyViewinterface ControllerV2컨트롤러들의 공통로직을 위한 부모 인터페이스 프론트 컨트롤러X 를 상속받는 컨트롤러들.→ 이전 코드에서 달라진 점은 MyView를 반환한다는 점이다. 코드가 많이 단축되었다.프론트컨트롤러각 컨트롤러들은 Myview를 반환하고 있다.반환된 view의 render()를 실행하여 포워딩한다. ※ 참조 : https://www.inflearn.com/roadmaps/373

[JAVA]HttpServlet 프론트 컨트롤러 도입해보기

💡 FrontController화면에서 뭔가를 클릭해 호출 했을 때, 각각의 여러 컨트롤러로 이동하지 않고, 하나의 프론트 컨트롤러로 이동해 각 컨트롤러로 이동하는 구조이다. 수문관👨‍🎤과 같은 역할 공통 처리가 가능하고, 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다.이 글에서는 나오지 않지만, 스프링MVC의 핵심도 FrontController이며, Dispatcherservlet으로 되어 있다.  기존 코드에서 프론트 컨트롤러를 도입해보겠다.2025.02.28 - [☕ JAVA/☕ Library & Pattern] - [JAVA]HttpServlet, JSP, JSTL을 이용한 MVC pattern   패키지와 클래스 위치interface 컨트롤러를 상속받는 컨트롤러들..

[JAVA]HttpServlet, JSP, JSTL을 이용한 MVC pattern

※ 이전 글2025.02.28 - [☕ JAVA/☕ Library & Pattern] - [JAVA]JSP로 회원관리 웹 애플리케이션 만들기여기에서 JSTL을 사용해 JSP의 복잡한 코드를 개선해보려 한다. 폴더 및 파일servletmvc패키지와 webapp폴더 아래 WEB-INF폴더를 새로 만들어 작업했다.💡 MVC패턴은 View로 이동할 때 Controller를 거쳐야한다.controller역할. 이 서블릿을 이용해 new-from.jsp로 forward로 이동한다.신규 작성란 new-form.jspaction:save로 서블릿이 있는 같은 폴더 내에서 이동한다.model역할을 하는 서블릿. 저장 로직request.setAttribute("이름지정", 데이터); 로 데이터를 전달한다.request에..

반응형