케이크를 n조각으로 자른 후 규칙에 따라 케이크를 먹기로 합니다. 1. 케이크는 편의를 위해서 1번 조각을 기준으로 시계방향으로 n번 조각까지 순서대로 있다고 한다. 2. 항상 1번 조각 케이크 부터 먹는다. 3. 다음 조각은 이전에 먹은 케이크 조각에서 시계 방향으로 남아있는 조각들 중 k번째에 있는 조각을 먹는다. 4. 케이크가 2조각 남으면, 먹는 것을 멈춘다. 케이크를 자른 조각의 개수 n과 k가 주어졌을 때, 마지막에 남은 케이크 조각의 번호를 출력하시오. n = 8, k = 2 : 4 8 n = 6, k = 3 : 3 5 입력형식> 8 2 출력형식> 4 8 ✍ import java.io.BufferedReader; import java.io.InputStreamReader; import jav..
개발
🔍 Service 클래스 Action 객체로부터 요청을 받아 DAO 객체와 상호작용을 통해 실제 데이터베이스 처리 작업 요청을 수행하는 Service 클래스 정의 ✍ 기본 틀 package svc; import java.sql.Connection; import dao.MemberDAO; import db.JdbcUtil; import vo.MemberBean; public class MemberLoginProService { public boolean isCorrectUser(MemberBean member) { // 1번 /* 요청 처리 결과를 저장할 변수 선언 (요청 작업 마다 달라지는 요소) */ // 2번 /* JdbcUtil 객체로부터 Connection Pool에 저장된 Conenction 객..
🔍 Action 클래스 FrontController 클래스로 부터 지시를 받아 비즈니스 로직 처리 준비 작업 수행 및 처리 요청 후 결과를 리턴받아 포워딩 준비 작업을 수행하는 클래스이다. => Action 인터페이스를 상속(구현)받아 추상메서드 execute() 오버라이딩(구현) 필수! public class MemberJoinProAction implements Action { // 인터페이스 상속 @Override // Action 인터페이스 메서드 오버라이딩 public ActionForward execute(HttpServletRequest request, HttpServletResponse response) { ActionForward forward = null; /* 작업 코드가 작성될 공간..
🔍 ActionForward 포워딩 정보(포워딩 방식과 포워딩 주소)를 관리하는 클래스이며, DTO 클래스의 역할과 유사하다. package vo; public class ActionForward { // 1. 멤버변수 선언 private String path; // URL(주소) private boolean isRedirect; // 포워딩 방식(true : Redirect 방식, false : Dispatch 방식) // 2. Getter/Setter 정의 public String getPath() { return path; } public void setPath(String path) { this.path = path; } public boolean isRedirect() { return isRed..
xxxAction 클래스가 공통으로 가져야 할 메서드를 정의하는 Action 인터페이스 ✍ 왜 인터페이스를 사용하나? 인터페이스의 메서드는 모두 추상메서드이다. 즉, 구현부가 없다는 말이다. 상속받는 클래스에서 메서드 구현을 강제하기 위해 인터페이스를 사용한다. XXXAction 클래스에서 수행할 작업을 공통 메서드인 execute() 메서드로 정의한다. - xxxAction 클래스에서 execute() 메서드를 구현(=오버라이딩)하도록 강제하기 위해 추상메서드로 정의한다. - 서브클래스에서 상속에 대한 제약을 덜어주기 위해 인터페이스로 정의한다. (다중 상속 가능) - 파라미터 : HttpServletRequest(request), HttpServletResponse(response) 객체 - 리턴타입..
🔍 DTO(Data Transfer Object) Data Transfer Object. 즉, 데이터를 전송하는 객체라는 뜻이다. - DB 작업에 필요한 데이터를 보관하는 클래스(=객체) - DAO 객체가 DB 작업 수행을 위해 사용할 데이터를 전달하거나, DAO 객체로부터 데이터 조회 후 리턴받을 때 변수를 통해 각각의 데이터 관리가 가능하다. 하지만 DTO 객체를 사용하면 여러 데이터(변수)를 하나의 객체(=묶음)으로 관리하고 전송할 수 있다. 즉, 활용도가 높아진다. - DB 테이블 내의 칼럼에 대응하는 멤버변수를 선언하고, 각 멤버변수에 대한 Getter/Setter 메서드를 정의한다. (필요에 따라 생성자도 정의할 수 있으며, 이 때 기본 생성자는 무조건 포함되어야 한다.) - 클래스 이름은 X..
🔍 실제 비즈니스 로직을 수행하는 DAO 클래스 정의 - Data Access Object. 즉, 데이터에 접근하기 위한 객체이다. - 데이터베이스 작업에 필요한 코드만 따로 모아놓은(=모듈화 한) 클래스(객체) - DB 연결 및 해제 작업과 각 SQL 구문을 실행하는 코드를 DAO클래스 내의 각 메서드를 통해 기술하고, 외부에서 호출하여 사용하도록 제공한다. => 외부에서 DAO 클래스 인스턴스를 생성 후 메서드를 호출하여 각각의 작업을 수행한다. - 클래스 명은 XXXDAO 형식으로 지정한다. => 주로, XXX은 해당 DB 작업을 수행하는 데 사용되는 테이블명을 사용한다. ex) 회원 관련 정보를 저장하는 member 테이블을 다루는 DAO 클래스 = MemberDAO 게시판 관련 정보를 저장하는 ..

🔍 AJAX (Asynchonous Javascript And Xml, 비동기식 자바스크립트&XML) - 웹 페이지(브라우저)의 갱신(Refresh) 없이도 요청을 수행하고 요청에 대한 응답을 처리할 수 있는 자바스크립트(정확히 말하면 jQuery) 라이브러리이다. - 데이터베이스 등의 작업 요청 시 요청된 응답이 돌아올 때까지 기다리지 않고, 다른 작업을 수행하면서 요청에 대한 응답이 돌아오면 해당 응답을 처리하는 기술 - 주로, 아이디 및 패스워드 검증 등의 실시간 정보 조회 작업에 사용한다. ✍ 기본 문법 $.ajax({ type : xxx, // AJAX 로 요청 시 사용할 메서드(= 요청 방식 = "GET" or "POST" 등) 지정 url : xxx, // AJAX 로 요청할 요청 주소(UR..

🔍 jQuery란? 자바스크립트의 라이브러리이다. ✍ jQuery 기본 문법 => jQuery(객체명 또는 선택자).함수명(); => $(객체명 또는 선택자).함수명(); - HTML 문서의 DOM 객체가 로딩되면 자동으로 호출되는 이벤트: document 객체의 ready 이벤트 1) Ready 이벤트 처리 문법 - 1 jQuery(document).ready(function () { alert("Ready 이벤트 처리 방법 - 1"); }); 2) Ready 이벤트 처리 문법 - 2 $(document).ready(function() { alert("Ready 이벤트 처리 문법 - 2"); }); -> jQuery 객체명을 $ 기호로 대체할 수 있다. -> document 객체의 ready 이벤트가 ..

🔍 BigInteger, BigDecimal 클래스 - java.math 패키지 - 수치데이터를 처리하는 부가적인 클래스 - 아주 큰 정수 또는 실수를 저장하거나, 실수의 문제점을 해결하는 용도로 사용한다 ✍ BigInteger 클래스 - 정수의 최대 크기(long 타입이라고 가정)는 약 922경 인데, 이보다 크거나 작은 정수는 취급이 불가능한 문제가 생긴다. 이를 해결하기위해 별도로 추가된 클래스이다. - 객체 생성 시 파라미터로 전달할 정수는 "문자열" 형태로 전달한다. - 정수 데이터를 내부적으로 int[] 타입으로 관리한다. - toString() 메서드가 오버라이딩 되어 있다. - 일반적은 산술연산자를 사용한 연산은 불가능하며 반드시 메서드를 통해 연산 한다. => add(), substrac..