JAVA
-
[MyBatis] 매퍼 xml파일과 매퍼 인터페이스를 사용한 CRUDJAVA 2022. 7. 24. 23:16
먼저 테이블이 있어야 하므로, 다음과 같은 컬럼과 값을 가진 tbl_member 테이블을 생성한다. CREATE TABLE tbl_member( userid varchar2(50) not null primary key, userpw varchar2(100) not null, username varchar2(100) not null, regdate date default sysdate, updatedate date default sysdate, enabled char(1) default '1'); 그리고 도메인 패키지에 UserVO 클래스를 만들고 다룰 데이터들을 필드로 지정했다. package org.zerock.myapp.domain; import lombok.Value; @Value public cl..
-
[MyBatis] 마이바티스란? 메이븐 프로젝트에서 마이바티스 설정하기JAVA 2022. 7. 24. 22:21
MyBatis란? 마이바티스는 자바 퍼시스턴스 프레임워크로, 자바의 관계형 데이터 베이스 프로그래밍을 보다 쉽게 도와준다. JDBC를 보다 편하게 사용하기 위해 개발되었고, SQL문을 코드로부터 분리할 수 있다는 장점이 있다. xml파일과 어노테이션을 사용한 인터페이스로 SQL쿼리를 실행할 수 있다. 마이바티스를 사용하기 위해서는 dependency에 먼저 마이바티스를 추가해야 한다. org.mybatis mybatis 3.5.10 그리고 마이바티스 설정파일인 mybatis-config.xml 파일이 필요하다. 여기에 DB연결정보를 저장해두고, 만든 매퍼xml파일과 인터페이스의 경로를 지정한다. (설정파일에 해당 경로를 알려주지 않으면 마이바티스가 찾을 수 없기 때문) environments 태그 안에 ..
-
[JAVA] JUnit5를 이용해 테스트 코드를 작성해보자!JAVA 2022. 7. 23. 00:55
테스트 주도 개발(TDD, Test-Driven-Development)을 하기 위한 테스트코드를 작성하는 방법을 배웠다. JUnit4버전과 JUnit5버전 모두 배웠는데, JUnit5를 중점으로 설명하려고 한다. JUnit4 VS JUnit5 우선 JUnit4버전과 5버전의 차이를 정말 간단하게만 정리하면, 사용하는 어노테이션에 차이가 있다. 4버전에서의 @Before, @BeforeClass, @After, @AfterClass, @Ignore어노테이션이 5버전에서는 @BeforeEach, @BeforeAll, @AfterEach, @AfterAll, @Disabled로 변경됐다. 4버전의 이름은 처음 접했을 때 무슨 의미인지 잘 와닿지 않았는데, 바뀐 이름으로 보니 한번에 이해할 수 있어서 직관적으로..
-
[Servlet] 파일업로드시 현재날짜로 디렉토리 생성하기, UUID로 파일명 저장하기JAVA 2022. 7. 14. 00:41
서버에 파일업로드를 할 때, 자동으로 날짜별 폴더로 구분지어놓으면 관리하기 편할 것이다. 또한 파일명을 UUID로 지정한다면 중복파일명이 생기는 것도 방지할 수 있다. UUID(universally unique identifier)란? 범용고유식별자. 128비트의 숫자이며, 32자리의 16진수로 표현된다. 여기에 8-4-4-4-12 글자마다 하이픈을 집어넣어 5개의 그룹으로 구분한다. (ex. 550e8400-e29b-41d4-a716-446655440000) 세션ID를 설정할 때나, 중복되지 않는 고유한 ID값을 생성하고자 할 때 사용한다. 이렇게 파일업로드를 하면 자동으로 오늘날짜로 폴더가 생성되고, 파일명은 '날짜_UUID'로 저장하는 방법을 간단하게 구현해보았다. 입력받을 html파일 생성 .....
-
[Servlet] Scope 단위 (Application, Session, Request, Page)JAVA 2022. 7. 12. 18:00
서블릿에서는 데이터를 서블릿 속성에 등록해놓고 공유할 수 있는데, 이 때 공유범위로 4가지 Scope가 있다. Scope 설명 Application Scope 가장 긴 범위. WAS가 살아있는 동안 유지된다. Session Scope 하나의 세션동안 유지된다. 브라우저를 종료하면 파괴된다. Request Scope 하나의 요청이 일어나서 응답이 완료될 때까지 유지된다. Page Scope JSP에서 사용되고, 페이지단위에서만 유지된다. 가장 짧은 범위 1. Application scope 어플리케이션 스코프에 데이터를 올려두면 WAS(ex. Tomcat)이 살아있는 동안엔 계속 유지된다. 서블릿 어디서든 해당 데이터를 가져다 사용할 수 있다. ... @Override protected void Servi..
-
[Servlet] 포워딩(Forward)과 리다이렉트(Redirect)JAVA 2022. 7. 11. 22:53
현재 작업중인 페이지에서 다른 페이지로 이동할 때, 포워드 방식과 리다이렉트 2가지의 방법이 있다. 각각의 방식을 어떻게 구현하고, 둘은 어떤 차이가 있는지 알아보았다. 1. 포워딩 Forward 포워딩은 응답을 만들어 낼 웹컴포넌트에 요청을 위임하는 방식이다. 여기서 웹 컴포넌트는 서블릿이 될 수도 있고, JSP가 될 수도 있고, 웹 컴포넌트라면 포워딩할 수 있다. 상황을 예를들어, 웹에서 사용자가 버튼을 클릭하면 내용을 변경하여 화면에 보여주려고 할 때, 비즈니스 로직을 수행 후 View로 포워딩하면 View에서는 해당 비즈니스 데이터를 가지고 응답문서를 만들어 내보낸다. 포워딩방식의 가장 큰 특징은 원래의 url을 변경하지 않는다는 점이다. 응답이 끝날 때 까지 요청정보를 그대로 가지고 있는다. 따..
-
이클립스 메이븐 프로젝트 초기세팅JAVA 2022. 6. 27. 00:56
New - Project - Maven - Maven Project 선택 후 Next 클릭 기존 워크스페이스 경로를 사용할 것이라면 그대로 진행하면 된다. 아키타입을 설정하는 창이다. 기본으로 quickstart로 선택되어있다. webapp 선택 후 next Group Id에 자신이 설정하고자하는 프로젝트 도메인을 설정, Artifact Id는 프로젝트폴더의 이름을 지정한다. Package에 설정한 artifact id가 자동으로 하위 패키지로 설정되는데, 따로 이름을 지정해준다. 첫 프로젝트를 생성하면 빌드하는데 약간의 시간이 소요된다. 오류표시가 뜨는데, 설정이 아직 덜 돼서 그런 것이니 마저 설정해주면 된다. 1. pom.xml파일 설정 pom.xml파일 클릭 후 open with - other E..
-
이클립스에서 Maven 프로젝트 생성하고 WAS 올리기JAVA 2022. 6. 21. 11:20
New Project - Maven - Maven Project를 선택 Catalog를 Internal로 변경후, quickstart를 선택한다. 기본으로 선택되어있다. 그룹 아이디, 아티팩트 아이디, 패키지명을 원하는 이름으로 설정한 후 finish를 누르면 메이븐 프로젝트가 생성된다. [Windows] - [Show view] 설정 Package Explorer, Type Hierarchy, Progress, Problems, Console, Servers창을 띄워놓는다. 이클립스에 WAS 올리기 (Tomcat) tomcat9, tomcat(10버전)을 둘 다 설치해둔다. > scoop install tomcat9 > scoop install tomcat Servers탭에서 New를 누르고, Apac..