본문 바로가기

Java

(13)
[Java] stream을 사용하는 예시들 map()을 활용해서, 객체 리스트 -> (stream -> 다른 stream) -> 다른 객체 리스트 로 변환하기 1. 객체 리스트를 준비한다. 2. 원하는 객체 리스트에 대한 stream 객체를 구한다. List.stream() 사용 3. stream 객체에 대하여, map()을 이용하여, 다른 stream 객체로 변환한다 map(comment -> CommentAndImage.builder().build()) 이용 4. 변환한 stream을 다른 객체 리스트로 변환한다 .collect(Collectors.toList()) 사용 @Transactional public List getCommentAndImageList(Integer productId, Integer start) { List commen..
[Java] import static 특정 클래스 내의 정적 메서드 또는 변수를, 패키지명/클래스명 없이 접근 가능하도록 한 것. // import static 사용하지 않은 코드 int i = Math.abs(-3); //import static 사용한 코드 import static java.lang.Math.abs; int i = abs(-3);
[Java] [Servlet] web.xml의 모든 것 (1) ServletContainer는 web.xml에 기술되어있는 내용을 바탕으로 ServletContainer를 초기화 하게 됩니다. 따라서, 첫번째로는 ServletContainer에 Servlet 등록을 위해 사용합니다. 두번째로는 Spring이 제공하는 Spring IoC Container를 사용한다는 것을 명시하기 위해 사용합니다. 1. Servlet 등록하기 첫번째로, 서블릿을 서블릿 컨테이너에 등록하는 경우 사용합니다. 서블릿을 서블릿 컨테이너에 등록하고, URL과 매핑을 시켜주어야 하는데, 이것을 진행하는 곳입니다. 요즘은, 어노테이션으로 가능하지만, web.xml 설정 파일로 하는 것이 기본임을 알자. 서블릿 클래스를 등록하기 서블릿을 참조할 때 사용할 이름 등록할 서블릿 클래스의 Full N..
자바 웹 애플리케이션이란? (스프링, 스프링부트 아님) 자바 웹 애플리케이션이란? WAS에 설치(deploy)되어 동작하는 어플리케이션이다. 자바 웹 어플리케이션에는 HTML, CSS, 이미지, 자바로 작성된 클래스(Servlet도 포함됨, package, 인터페이스 등), 각종 설정 파일 등이 포함된다. 그래서, 다음과 같은 구조를 가지게 된다(다양한 파일들을 모아두는 것임) 실제 인텔리제이에서 많이 보는 폴더 구조가, 자바 웹 애플리케이션의 폴더 구조를 말하는 것이다. 여기에 다양한 파일들이 모여있고, 이것을 실행시켜 자바 웹 애플리케이션을 실행시키는 것이다. 자바 웹 애플리케이션의 여러가지 구조 1. 기본 자바 프로젝트(gradle 선택) + Java의 Web Application Framework + Tomcat https://suyeonchoi.ti..
[JAVA] [JSP] JSP 간단 정리 기본 개념 JSP는, 결국 서블릿으로 바뀐다!!!!고 생각하면 된다. (톰캣이 JSP를 서블릿으로 바꾼다) HTML과 비슷하다고 해서 HTML처럼 동작하는게 아니다. 서블릿과 동작 방식이 같다! 따라서, JSP 파일을 작성할 때 종종 하면 좋은 생각은, "이 코드가 서블릿으로 바뀐 상태는 무엇일까?" 를 생각해보면 코드 이해가 빨라진다. 기본 예제 코드 http://www.w3.org/TR/html4/loose.dtd"> 서블릿 라이프사이클 따라간다 JSP 코드에 맞는 서블릿 객체가 없다면 -> JSP엔진이 서블릿으로 바꾼 후 -> 서블릿 라이프사이클 따라간다 JSP 내장객체 JSP를 실행하면 서블릿 소스가 생성되고 실행된다. JSP에 입력한 대부분의 코드는 생성되는 서블릿 소스의 _jspService(..
HttpServletRequest 객체, HttpServletResponse 객체 1. WAS가 요청/응답 시 생성하는 객체 = HttpServletRequest 객체, HttpServletResponse 객체 2. HttpServletRequest 객체 http프로토콜의 request정보를 서블릿에게 전달하기 위한 목적으로 사용합니다. 헤더정보, 파라미터, 쿠키, URI, URL 등의 정보를 읽어 들이는 메소드를 가지고 있습니다. Body의 Stream을 읽어 들이는 메소드를 가지고 있습니다. 3. HttpServletResponse 객체 WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게 응답을 보내기 위한 HttpServleResponse객체를 생성하여 서블릿에게 전달합니다. 서블릿은 해당 객체를 이용하여 content type, 응답코드, 응답 메시지등을..
[Java] [Servlet] Servlet의 생명 주기 1. Servlet의 생명 주기와 관련된 메서드 init() 서블릿이 처음으로 요청될 때 초기화를 하는 메서드입니다. 클래스를 new 해서 사용하듯 서블릿 클래스도 초기화해주어야 사용이 가능합니다. 이렇게 초기화된 서블릿은 싱글톤으로 관리되어 다음에 한번 더 해당 서블릿 클래스를 호출하면 초기화가 다시 일어나는 것이 아니라 기존에 있던 서블릿 클래스를 호출합니다. service() 서블릿 컨테이너가 요청을 받고 응답을 내려줄 때 필요한 서블릿의 service 메서드입니다. Servlet interface를 구현한 HttpServlet 클래스의 doGet, doPost 같은 메서드들이 호출됩니다. destroy() 더 이상 사용되지 않는 서블릿 클래스는 주기적으로 서블릿 컨테이너가 destory() 메서드..
[Java] [Servlet] Servlet이란? 들어가기 전... 자바 웹 애플리케이션이란? WAS에 설치(deploy)되어 동작하는 어플리케이션이다. 자바 웹 어플리케이션에는 HTML, CSS, 이미지, 자바로 작성된 클래스(Servlet도 포함됨, package, 인터페이스 등), 각종 설정 파일 등이 포함된다. 그래서, 다음과 같은 구조를 가지게 된다(다양한 파일들을 모아두는 것임) 실제 인텔리제이에서 많이 보는 폴더 구조가, 자바 웹 애플리케이션의 폴더 구조를 말하는 것이다. 여기에 다양한 파일들이 모여있고, 이것을 실행시켜 자바 웹 애플리케이션을 실행시키는 것이다. 1. Servlet 정의 자바 웹 애플리케이션의 구조에서, 요청과 응답을 처리할 수 있는 Java 클래스 WAS( 예) tomcat)에서 동작하는 Java 클래스이다. 웹 페이지를..
[java] java 코딩 컨벤션, 적절한 코딩 스타일 패키지 이름은 소문자로 구성 [package-lowercase] 패키지 이름은 소문자를 사용하여 작성한다. 단어별 구문을 위해 언더스코어(_)나 대문자를 섞지 않는다. 나쁜 예 package com.navercorp.apiGateway package com.navercorp.api_gateway 좋은 예 package com.navercorp.apigateway 자바에서 상수인 것들 자바 상수는 private static final DB 관련 상수 파스칼 케이스에서, 중간에 _ 붙여서 하기 예시) DB_URL SQL 예약어는 상수로 - select,where 이런 건 대문자로 쓰기 - 테이블 명 바꿀 때, as 붙이지 않기 코딩 스타일 인터페이스는 public 자체를 안붙인다(인터페이스라는 것 자체가 다..
[Java] try-with-resource 리소스란? 리소스는, 프로그램이 끝난 후 닫아야 하는 개체이다. 예를 들어, JDBC를 사용하여 데이터베이스에 접근하는 경우를 생각해보자. Connection 객체를 얻고, Statement 객체를 얻고, ResultSet 객체를 얻어 작업을 완료한 후, 해당 개체들을 close()하지 않으면 안되는데, 이런 개체들을 리소스라고 한다. 아래의 코드는 JDBC를 사용하여 데이터베이스에서 role 객체를 얻어오는 부분이다. 코드 상의 finally 부분을 보면, 리소스를 닫는 코드를 작성한 것을 볼 수 있다. package com.example.jdbcpractice.dao; import com.example.jdbcpractice.dto.Role; import java.sql.*; import java.u..