분류 전체보기 261

[docker] 도커의 구조와 특징

도커(Docker) 애플리케이션을 개발, 배포, 실행하기 위한 플랫폼이다. 컨테이너를 사용하여 애플리케이션 및 지원 구성 요소를 개발하며, 리눅스 자체 기능을 사용하여 프로세스 단위의 격리 환경을 제공한다. 배포 용량과 시간을 단축하고, 성능 손실을 최소화시킨다. 1. 도커의 구조 2. 도커의 특징 (1) 도커 엔진과 도커 데몬(dockered) - 외부에서 Docker API 요청을 받아 Docker 객체와 서비스들을 관리한다. - 컨테이너를 생성하고 관리하는 주체이다. - 도커 데몬: 도커 프로세스가 실행되어 입력받을 준비가 된 상태를 말한다. (2) 도커 클라이언트(docker) - 입력된 명령어를 Docker API 형태로 도커 데몬에게 전달한다. - 도커 엔진의 수행 결과를 반환받아 사용자에게 ..

Cloud/Docker 2022.08.22

[MyBatis] Mapped Statements collection does not contain value for 에러

java.lang.IllegalArgumentException: Mapped Statementscollection does not contain value for 해당 에러는 이럴 때 발생한다. 1. mapper id가 다를 경우 : mapper 파일에서 구문의 id 값과 Dao/Service에서 접근하는 id값이 다를 때 발생할 수 있다. 2. Parameter와 bean의 필드명이 틀릴 경우 3. mapper 파일에 정의된 namespace와 Dao/Service에서 호출하는 namespace가 다를 경우 4. mybatis-config 파일에 mapper가 정의되어 있지 않거나 스펠링이 틀릴 경우 5. mapper에 정의된 namespace 명칭이 같은 application 내에 중복될 경우 출처:..

[Oracle] LISTAGG - 여러 행을 하나로 묶어 조회하기

위의 ROOM_JOIN 테이블을 보면 JOIN_NAME 컬럼과 USER_NO 컬럼, ROOM_NO 컬럼이 있다. 여러 행들을 하나로 묶어서 보여주고 싶을 땐, LISTAGG(합칠 컬럼, '구분자') WITHIN GROUP (ORDER BY 합칠 컬럼) "별칭" FROM 해당 테이블 GROUP BY 합칠 컬럼에 대한 기준이 되는 컬럼; 이때, GROUP BY는 무조건 작성해야 한다. 만약 ROOM_NO을 기준으로 USER_NO 컬럼의 행들을 하나로 묶고 싶다면? SELECT LISTAGG(USER_NO, ', ') WITHIN GROUP (ORDER BY USER_NO) "USER_NO" FROM ROOM_JOIN GROUP BY ROOM_NO; ◎ 실행 결과 만약 SELECT절에 ROOM_NO를 추가하고..

Database/Oracle 2022.07.10

[Spring] VO - lombok

* lombok : 코드 자동 생성 라이브러리 - 반복적인 setter, getter, toString 등의 메소드 작성 코드를 줄여준다. @NoArgsConstructor // 기본 생성자 @AllArgsConstructor // 모든 필드를 매개변수로 갖는 생성자 @Setter @Getter @ToString @EqualsAndHashCode // equals, hashcode @Data // 위에 있는 모든 메소드를 포함하는 어노테이션 * lombok 설치 방법 1) 라이브러리를 다운받은 후 적용시킨다.(Maven pom.xml) 2) 다운로드된 jar 파일을 찾아서 설치한다.(작업할 IDE 선택) 3) IDE를 재실행시킨다. * lombok 사용 시 주의사항 1. uName, bTitle과 같이 ..

IDE/Spring 2022.07.04

[Spring] root-context.xml

* root-context.xml 문서란? : 서버 구동과 동시에 web.xml 파일을 거쳐서 바로 로딩되는 문서로, 서버 구동과 동시에 세팅해야 하는 내용들을 작성한다. 주로 DB 연결이나 트랜잭션 처리 등의 내용을 작성한다. * DB 연결 설정 3단계 · 1단계: DB 연결을 위한 도구를 설정한다. · 2단계: MyBatis Spring에서 제공하는 SQL 명령어 실행을 위한 도구를 등록한다. · 3단계: SQL 구문을 실행하기 위한 템플릿을 제공하는 도구를 등록한다. - constructor-arg: 생성자를 주입한다. * 파일 업르도 bean 등록 - property: 주입 - maxUploadSize: 한번에 전체 업로드되는 파일의 총 용량을 설정한다. - maxInMemorySize(maxUp..

IDE/Spring 2022.07.03

[MyBatis] mapper.xml

select 구문 insert 구문 mapper [DML문일 경우] (, 도 동일하다.) - parameterType 속성: 전달받을 값이 없으면 생략 가능하다. - 는 resultType 또는 resultMap으로 결과값에 대한 타입을 반드시 지정해야 한다. - 실행 결과가 처리된 행의 개수(int 타입)이기 때문에 resultType/resultMap에 대한 속성이 필요하지 않다. - 기존에 사용하던 위치홀더가 아니라 #{필드명/변수명/map의값}으로 작성한다. resultMap ResultSet으로부터 조회된 컬럼값을 하나씩 뽑아 지정한 VO 객체에 각 필드를 담는 JDBC 코드를 줄여준다. ex) member.setMemberId(rset.getString("MEMBER_ID")); . .

[MyBatis] EncodingFilter

encodingFilter는 기존 servlet에서 request.setChracterEncoding("UTF-8");를 매번 작성해서 인코딩을 거쳐야 하는 불편함을 없애기 위해 필요하다. common 폴더에 filter 폴더를 만든 후 해당 폴더에 EncodingFilter 파일을 생성한다. @WebFilter("") - 전체에 대해 필터를 할 땐 /* 를 작성한다. - 확장자를 정해서 필터를 할 땐 *.확장자(ex. *.me)를 작성한다. - 개별적으로 필터를 할 땐 매핑 주소(ex. example.ex 또는 /example.jsp)를 작성한다.

[Spring] web.xml - encodingFilter 등록

* 필터란? : 모든 요청들을 처리하기 전에 공통적으로 필요로 하는 기능들을 controller가 클라이언트의 요청을 받기 전 먼저 수행하게 한다. · encodingFilter는 Spring에서 제공해준다. → org.springframework.web.filter.CharacterEncodingFilter · 필터를 등록할 때 filter 태그와 filter-mapping 태그를 같이 사용한다. · filter-name 태그로 filter명을 지정한다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /*

IDE/Spring 2022.06.23