🌱 오늘의 주제 : DB 연동(MyBatis) Cycle 🌱 Spring MVC 패턴 좌측에서부터 클라이언트의 요청이 들어온다. 1. Presentation Layer(표현 계층) View 화면을 나타내기 위한 계층 명칭 Controller 2. Business Layer(비즈니스 계층) 비즈니스 로직(데이터 가공 및 처리)이 있는 계층 명칭 Service BO (Business Object) 3. Persistence Layer(영속 계층) 데이터를 DB에 저장해두고 지속적으로 사용할 수 있게 하는 계층 명칭 Repository DAO (Data Access Object) 클래스 SqlSession 객체를 직접 사용 DAO를 Spring Bean으로 만들기 위해 @Respository 어노테이션 사용 ..
🌱 오늘의 주제 : 요청/응답 Life Cycle, 어노테이션(Annotation) 종류 🌱 요청/응답 Life Cycle 1. 자바 빈(Java Bean) VS 스프링 빈(Spring Bean) 자바 빈(Java Bean) JAVA에서 new 클래스()로 생성된 일반 자바 객체 스프링 빈(Spring Bean) 자바 빈 처럼 직접 new 클래스()로 만들지 않고, 스프링 어노테이션 등을 사용해서 만들어진 스프링 객체 스프링 프레임워크에서 스프링 빈의 생명주기와 객체간의 관계를 제어한다. 2. 설정 클래스 자바의 main 메소드를 통해 첫 진입한다. SpringExampleApplication.java @EnableAutoConfiguration(exclude={DataSourceAutoConfigura..
🌱 오늘의 주제 : Spring Framework의 흐름 구조도 🌱 기본 동작 방식 🌱 자세한 동작 방식 🌱 서버의 주소 형식 서버는 클라이언트로부터 요청을 받을 수 있도록 주소(URL) 를 가지고 있다. 서버(컴퓨터)의 IP주소 또는 도메인으로 접속할 수 있다. 도메인(Domain) - 웹주소: http://naver.com - 웹주소: http://yuri.com:8080 - MySQL DB 주소: mysql://localhost:3306 IP 주소 - 웹주소: http://202.179.177.22 - 웹주소: http://202.179.177.22:8080 웹 서버는 http 프로토콜 형식으로, DB는 mysql 프로토콜 형식으로 데이터를 전송한다. URL 형식 프로토콜 명://ip 주소 또는 도..
🌴 문제 문제 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치훈이의 전공평점을 계산해주는 프로그램을 작성해보자. 전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다. 인하대학교 컴퓨터공학과의 등급에 따른 과목평점은 다음 표와 같다. A+ 4.5 A0 4.0 B+ 3.5 B0 3.0 C+ 2.5 C0 2.0 D+ 1.5 D0 1.0 F 0.0 P/F 과목의 경우 등급이 P또는 F로 표시되는데, 등급이 P인 과목은 계산에서 제외해야 한다. 과연 치훈이는 무사히 졸업할 수 있을까? 입력 20줄에 걸쳐 치훈이가 수강한 전공과목의 과목명, 학점, 등급이..
🌱 오늘의 주제 : FileInputStream과 FileOutputStream, BufferedInputStream과 BufferedOutputStream , 문자 기반 스트림 - Reader , Writer 🌱 FileInputStream과 FileOutputStream 파일에 입출력을 하기 위한 스트림이다. 실제 프로그래밍에서 많이 사용되는 스트림 중의 하나이다. 🌱 BufferedInputStream 과 BufferedOutputStream 스트림의 입출력 효율을 높이기 위해 버퍼를 사용하는 보조스트림이다. 대부분 입출력 작업에 사용된다. 버퍼에 저장된 모든 데이터를 다 읽고, 그 다음 데이터를 읽기 위해 read메서드가 호출되면, BufferedInputStream은 입력소스로부터 다시 버퍼크기..
🌴 문제 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 출력 첫째 줄에 그룹 단어의 개수를 출력한다. 예제 입력 1 복사 3 happy new year 예제..
🍁 프로젝트 설명 https://youtu.be/vxKK7G5AiXI 1. 예약 목록 front-end에서 마지막으로 만들었던 통나무펜션을 적극 활용해서 아래 페이지를 완성하세요. booking 테이블의 데이터를 활용해서 아래와 같은 페이지를 완성하세요. 삭제 기능은 AJAX로 구현하세요. 2. 예약하기 페이지 예약하기 페이지에서 기본 유효성 검사를 포함 시키세요. 날짜 선택은 datepicker를 이용하세요. 예약 하기 기능은 AJAX로 구현하세요. 3. 예약 조회 기능 통나무펜션 페이지를 활용해서 예약 조회 기능을 만드세요. 이름과 전화번호를 입력 받고, 이를 통해서 예약 내역을 조회하세요. 조회 기능은 AJAX로 구현하세요. 조회가 될 경우 아래와 같이 얼럿창을 띄워서 예약 내역을 출력하세요. 조회..
🌴 문제 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다. 단어는 크로아티아 알파벳으로 이..
🌴 문제 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 예제 입력 1 복사 5 5 50 50 70 80 100 7 100 95 90 80 70 60 50 3 70 90 80 3 70 90 81 9 100 99 98 97 96 95 94 93 91 예제 출력 1 복사 40.000% 5..
🌴 문제 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 예제 입력 1 복사 Mississipi 예제 출력 1 복사 ? 예제 입력 2 복사 zZa 예제 출력 2 복사 Z 예제 입력 3 복사 z 예제 출력 3 복사 Z 예제 입력 4 복사 baaa 예제 출력 4 복사 A 🌴 문제 분석 import java.io.BufferedR..