분류 전체보기
-
#1. 영화점 직원의 연락처 조회 당신은 DVD 대여점 체인의 데이터베이스 관리자입니다. 본사에서는 첫 번째 영화점(store_id=1)에서 근무하는 모든 직원의 이름(이름과 성을 공백으로 구분하여)과 연락처를 요청하였습니다. 이 정보는 향후 직원들과의 긴급 연락을 위해 필요합니다. 데이터베이스 조회를 통해 이 정보를 제공해야 합니다. 테이블명 staff: first_name, last_name, address_id, store_id 테이블명 address: address_id, phone 결과 예시: #2. 특정 국가의 고객 연락처 및 위치 정보 조회 당신은 국제 영화 대여 회사의 데이터베이스 관리자입니다. 회사는 마케팅 캠페인을 위해 'South Korea'에 거주하는 모든 고객의 이름(이름과 성을 ..
[sakila] join & subquery 연습#1. 영화점 직원의 연락처 조회 당신은 DVD 대여점 체인의 데이터베이스 관리자입니다. 본사에서는 첫 번째 영화점(store_id=1)에서 근무하는 모든 직원의 이름(이름과 성을 공백으로 구분하여)과 연락처를 요청하였습니다. 이 정보는 향후 직원들과의 긴급 연락을 위해 필요합니다. 데이터베이스 조회를 통해 이 정보를 제공해야 합니다. 테이블명 staff: first_name, last_name, address_id, store_id 테이블명 address: address_id, phone 결과 예시: #2. 특정 국가의 고객 연락처 및 위치 정보 조회 당신은 국제 영화 대여 회사의 데이터베이스 관리자입니다. 회사는 마케팅 캠페인을 위해 'South Korea'에 거주하는 모든 고객의 이름(이름과 성을 ..
2024.04.09 -
이번 포스트에서는 @Repository에 대해서 살펴보자. @Repository 용도@Repository는 묵시적인 빈 등록을 위해서 사용되는 stereo type annotation으로 통상 Repository(DAO) 역할을 하는 빈에 선언한다.@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Repository { @AliasFor(annotation = Component.class) String value() default "";}통상 stereo 타입 annotation은 분류하기 위해서 사용하는데 @Repository는 좀 특별한 기능을 가지고 있다. docs에서 Re..
@Repository의 역할이번 포스트에서는 @Repository에 대해서 살펴보자. @Repository 용도@Repository는 묵시적인 빈 등록을 위해서 사용되는 stereo type annotation으로 통상 Repository(DAO) 역할을 하는 빈에 선언한다.@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Repository { @AliasFor(annotation = Component.class) String value() default "";}통상 stereo 타입 annotation은 분류하기 위해서 사용하는데 @Repository는 좀 특별한 기능을 가지고 있다. docs에서 Re..
2024.03.22 -
이번 포스트에서는 Connection Pool에 대해 살펴보자. Connection Pool 개념과 필요성"Connection Pool"이란 말 그대로 DB에 접속하기 위한 Connection들이 놀고 있는 수영장(Pool)이다.DB에 접속하기 위해서는 Connection이라는 리소스가 필요하다. 이 리소스는 특정 요청이 지속적으로 점유하게 되면 리소스 누수가 발생할 수 있기 때문에, 사용 후에는 반드시 종료해서 다른 요청이 사용할 수 있게 해야 한다. 그런데 일반적으로 DB는 네트워크 저~멀리 있기 때문에 매번 접속하는데 상당한 비용이 든다. 따라서 한번 쓰고 종료하는것은 매우 비효율적이다.이런 문제를 해결하기 위해서 Connection Pool 개념이 등장했다. Connection Pool은 Co..
Connection Pool이번 포스트에서는 Connection Pool에 대해 살펴보자. Connection Pool 개념과 필요성"Connection Pool"이란 말 그대로 DB에 접속하기 위한 Connection들이 놀고 있는 수영장(Pool)이다.DB에 접속하기 위해서는 Connection이라는 리소스가 필요하다. 이 리소스는 특정 요청이 지속적으로 점유하게 되면 리소스 누수가 발생할 수 있기 때문에, 사용 후에는 반드시 종료해서 다른 요청이 사용할 수 있게 해야 한다. 그런데 일반적으로 DB는 네트워크 저~멀리 있기 때문에 매번 접속하는데 상당한 비용이 든다. 따라서 한번 쓰고 종료하는것은 매우 비효율적이다.이런 문제를 해결하기 위해서 Connection Pool 개념이 등장했다. Connection Pool은 Co..
2024.03.22 -
이번 포스트에서는 try~with~resource에서 resource의 close 시점에 대해 살펴보자. try~with~resource resource의 자동 close try~with~resource 문장은 AutoCloseable 한 resource를 대상으로 사용이 끝나면 자동으로 close()를 호출해주는 기능을 가지고 있다. // before try~with~resource @Override public int insert(Connection con, SsafyMember dto) throws SQLException { int result = -1; StringBuilder sql = new StringBuilder("sql 작성"); PreparedStatement pstmt = con.pr..
[java]try~with~resource의 close 호출 시점이번 포스트에서는 try~with~resource에서 resource의 close 시점에 대해 살펴보자. try~with~resource resource의 자동 close try~with~resource 문장은 AutoCloseable 한 resource를 대상으로 사용이 끝나면 자동으로 close()를 호출해주는 기능을 가지고 있다. // before try~with~resource @Override public int insert(Connection con, SsafyMember dto) throws SQLException { int result = -1; StringBuilder sql = new StringBuilder("sql 작성"); PreparedStatement pstmt = con.pr..
2024.03.14 -
mysql sakila 데이터베이스를 활용하여 단일항 함수를 연습해보자. #1staff의 first_name과 글자수를 출력하고 마지막에 홍길동의 글자수를 출력하시오. #2staff 테이블에서 홍길동: 비밀번호 형태로 출력하시오. 단 아직 비밀번호가 없는 경우 등록후 사용이라고 출력하시오. #3city에서 도시명의 3번째 글자가 모음인 경우를 조회하시오. (city_id 오름차순 정렬) #4city의 도시명을 아래와 같이 출력하시오.(city의 길이로 정렬한다.)[ A Corua(La Corua)] (도시명의 총 글자 수는 [] 를 포함 22자이다.) #5address의 phone을 1234XXXXX1234의 형태로 출력하시오.(단 phone은 길이가 0이상이어야 한다.) #6customer에서 ema..
[sakila] 단일행 함수 활용 연습mysql sakila 데이터베이스를 활용하여 단일항 함수를 연습해보자. #1staff의 first_name과 글자수를 출력하고 마지막에 홍길동의 글자수를 출력하시오. #2staff 테이블에서 홍길동: 비밀번호 형태로 출력하시오. 단 아직 비밀번호가 없는 경우 등록후 사용이라고 출력하시오. #3city에서 도시명의 3번째 글자가 모음인 경우를 조회하시오. (city_id 오름차순 정렬) #4city의 도시명을 아래와 같이 출력하시오.(city의 길이로 정렬한다.)[ A Corua(La Corua)] (도시명의 총 글자 수는 [] 를 포함 22자이다.) #5address의 phone을 1234XXXXX1234의 형태로 출력하시오.(단 phone은 길이가 0이상이어야 한다.) #6customer에서 ema..
2024.03.13 -
mysql sakila database를 이용해서 기본 쿼리를 연습해보자. #1address에서 "Way"가 포함된 고객을 대상으로 이벤트를 진행하려고 한다. 대상 고객의 전화번호를 출력해보자. 단 대소문자를 구별함에 주의하자. #2고객의 충성도를 높이기 위해 새로운 적립금 시스템을 도입하기로 결정했습니다. 이 시스템의 핵심은 고객이 각 결제 때마다 결제 금액의 10%를 적립금으로 받는 것입니다. 이 새로운 시스템을 지원하기 위해, 모든 결제 내역에서 결제 금액, 적립될 금액(결제 금액의 10%), 고객 번호, 결제 금액, 담당자 아이디를 출력하시오. #3영화의 등급에 따라 상세한 설명을 제공하는 조회를 필요로 합니다. 각 영화의 ID와 등급을 표시하되, 'G'는 'General Audiences', '..
[sakila] 기본 쿼리 연습mysql sakila database를 이용해서 기본 쿼리를 연습해보자. #1address에서 "Way"가 포함된 고객을 대상으로 이벤트를 진행하려고 한다. 대상 고객의 전화번호를 출력해보자. 단 대소문자를 구별함에 주의하자. #2고객의 충성도를 높이기 위해 새로운 적립금 시스템을 도입하기로 결정했습니다. 이 시스템의 핵심은 고객이 각 결제 때마다 결제 금액의 10%를 적립금으로 받는 것입니다. 이 새로운 시스템을 지원하기 위해, 모든 결제 내역에서 결제 금액, 적립될 금액(결제 금액의 10%), 고객 번호, 결제 금액, 담당자 아이디를 출력하시오. #3영화의 등급에 따라 상세한 설명을 제공하는 조회를 필요로 합니다. 각 영화의 ID와 등급을 표시하되, 'G'는 'General Audiences', '..
2024.03.13 -
스프링 부트에서는 application의 환경 설정을 위해서 src/main/resources 아래에 application.properties 또는 application.yml 파일을 사용할 수 있다. 이 둘은 동일한 내용을 약간 다른 방법으로 작성하는데 properties는 간단하지만 장황하고 yml은 상대적으로 복잡하지만 효율적이다. .properties 작성 방법 key=value의 맵 구조properties 파일은 key=value의 구조로 설정들을 작성한다. 여기서 많이 하는 실수 중 하나가 가독성을 높인다는 이유로 = 주변에 공백을 넣는 것이다. 그러면 공백까지 key 또는 value의 일부가 되버린다. !key는 'key' 속성의 값을 'value'이다.key=value!key는 'key '..
04. application 설정 파일 작성스프링 부트에서는 application의 환경 설정을 위해서 src/main/resources 아래에 application.properties 또는 application.yml 파일을 사용할 수 있다. 이 둘은 동일한 내용을 약간 다른 방법으로 작성하는데 properties는 간단하지만 장황하고 yml은 상대적으로 복잡하지만 효율적이다. .properties 작성 방법 key=value의 맵 구조properties 파일은 key=value의 구조로 설정들을 작성한다. 여기서 많이 하는 실수 중 하나가 가독성을 높인다는 이유로 = 주변에 공백을 넣는 것이다. 그러면 공백까지 key 또는 value의 일부가 되버린다. !key는 'key' 속성의 값을 'value'이다.key=value!key는 'key '..
2024.03.11 -
이번 포스트에서는 간단한 Web Application을 만들고 Servlet의 동작을 이해해보자. 환경 설정 및 프로젝트 생성 WAS 설치웹 애플리케이션 개발을 위해서는 가장 먼저 WAS가 필요하다. 우리는 WAS로 Tomcat 10.X를 사용해보자. 다음 링크로 이동해서 Tomcat을 다운로드 한다.https://tomcat.apache.org/download-10.cgi Apache Tomcat® - Apache Tomcat 10 Software DownloadsWelcome to the Apache Tomcat® 10.x software download page. This page provides download links for obtaining the latest version of Tomca..
02. Hello Servlet이번 포스트에서는 간단한 Web Application을 만들고 Servlet의 동작을 이해해보자. 환경 설정 및 프로젝트 생성 WAS 설치웹 애플리케이션 개발을 위해서는 가장 먼저 WAS가 필요하다. 우리는 WAS로 Tomcat 10.X를 사용해보자. 다음 링크로 이동해서 Tomcat을 다운로드 한다.https://tomcat.apache.org/download-10.cgi Apache Tomcat® - Apache Tomcat 10 Software DownloadsWelcome to the Apache Tomcat® 10.x software download page. This page provides download links for obtaining the latest version of Tomca..
2024.03.05