Java

Programming/Spring

[Spring] MyBatis: Connection Pool (Commons DBCP, HikariCP)

🌿MyBatis 영속성 계층 (데이터베이스 조작 계층) Mybatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping) 프레임워크이다. MyBatis는 Spring 기술이 아닌 독립적인 기술이지만, Spring에서 도입을 해서 사용할 수 있도록 연동되어 있다. MyBatis는 SQL을 별도의 파일을 분리해서 관리하게 하며, 응용프로그램과 데이터베이스를 연결하는 JDBC 같은 역할을 한다. 단, SQL을 그대로 사용할 수 있다는 점에서 JDBC을 사용할 때의 불편함을 해결했다. [JDBC] JDBC란? (Java Database Connectivity) 🍁JDBC JDBC는 자바 프로그램과 데이터베이스(오라클)를 연결시켜 주는 자바 API(응용..

Problem Solving

[Java] Baekjoon Online Judge 9655: 돌 게임

9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 💡문제 돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다. ✏️입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000) 📑출력 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. 예제입력 1 5 예제출력 1 SK 🔎알고리즘 분류 수학 다이나믹 프로그래밍 게임 이론 📌풀이 코드 1 pac..

Problem Solving

[Java] Baekjoon Online Judge 2798: 블랙잭

2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 💡문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 ..

Programming/Spring

[Spring] 요청 메서드의 반환 자료형

요청 메서드의 반환 자료형은 String의 빈도가 가장 높고, 다음으로 3번의 redirect, 5번의 사용 빈도가 높다. 요청과 응답은 어떤 업무든 연관이 되어 있기 때문에 이에 대한 정리가 필요하다. 🌿String //- JSP 파일명 //- ViewResolver 호출 @GetMapping(value="/ex06.do") public String test() { return "ex06"; } 문자열은 ViewResolver를 호출하면서 JSP 파일 이름을 나타내는 용도로 사용했다. 🌿void @GetMapping(value="/ex06.do") public void test() { } 서블릿에서 jsp를 호출을 안 하는 것과 같다. 그러면 브라우저에서 하얀 화면이 나와야 한다. 그런데 화면이 출력된..

Programming/Spring

[Spring] 컨트롤러 구현: 어노테이션 (Controller, RequestMapping, GetMapping, PostMapping, RequestParam, ModelAttribute)

🌿컨트롤러 구현 1. Controller 인터페이스 구현 2. @Controller 어노테이션 사용 어노테이션을 사용하는 방식이 편의성이 좋기 때문에 더 많이 사용한다. 🍃@Controller 어노테이션 사용 @Controller public class Ex03Controller { } 어노테이션을 사용하는 순간 인터페이스를 선언하는 것과 결과가 같다. handleRequest는 만들고 싶어서 만들었던 게 아니라 Controller 인터페이스가 만들라고 했기 때문에 만든 것이었다. 하지만 어노테이션을 사용하면 강제로 만들어야 하는 게 없다. 자유로운 요청 형식 @Controller public class Ex03Controller { public String test() { return ""; } pub..

Programming/Spring

[Spring] Spring 기반 MVC 웹 프로젝트 구현

Spring은 Controller, View 등을 사용하기 편하도록 MVC 패턴을 모두 구현을 해 두었다. Servlet/JSP에서는 웹 요청 처리와 통제를 Controller 역할로 지정해 주었지만, Spring MVC에서는 Controller라는 이름이 전용으로 있으므로 이를 사용한다. 🌿Controller Ex01Controller.java: jsp 연결 package com.test.spring.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.sp..

Programming/Spring

[Spring] 관점 지향 프로그래밍 AOP: Aspect Oriented Programming

🌿Spring AOP Aspect Oriented Programming 관점 지향 프로그래밍(AOP)은 애플리케이션의 핵심 비즈니스 로직에서 분리된 관심사(Concern)를 모듈화 하여 코드의 가독성과 유지보수성을 향상하는 기술이다. 관점(관심사)은 업무 구현 시 주 업무가 아닌 나머지 보조 업무를 의미한다. 주 업무와 보조 업무 게시판 글쓰기를 예로 들어 주 업무와 보조 업무를 구분해 보도록 하자. 1. 기존 방식 - add.do a. 글쓰기 (주 업무) b. 권한 체크 (보조 업무) 기존 방식은 주 업무와 보조 업무를 같은 곳(한 파일)에서 구현한다. 단점: 코드 관리가 불편하다. 어디부터 어디까지가 주 업무이고 보조 업무인지 알기 어렵다. 2. AOP 방식 - add.do 주 업무와 보조 업무를 물..

Programming/Spring

[Spring] 의존성 주입 DI: Dependency injection

DI와 AOP는 스프링의 핵심 기술이지만, 스프링의 전용 기술이 아니다. 스프링이 있기 훨씬 이전에 있던 기술(아키텍처)인데, 스프링에서 도입한 게 Spring DI, Spring AOP이다. 가장 핵심적인 기술인 만큼 현업 면접에서도 많이 물어보는 질문이기도 하다. 🌿Spring DI Dependency Injection 디자인 패턴 DI를 우리말로 하면 의존(성) 주입이라고 부른다. 스프링에서 굉장히 중요한 개념인데, 스프링 내의 모든 객체를 관리할 때 사용하기 때문이다. 눈에 보이는 부분, 눈에 보이지 않는 부분에서 모두 사용이 된다. DI의 정의는 프로그래밍에서 구성 요소 간의 의존 관계가 소스 내부가 아닌 외부 환경에서 정의되게 하는 디자인 패턴이다. 의존 관계 com.test.spring.di..

Isaac-Christian
'Java' 태그의 글 목록 (3 Page)