본문 바로가기

전체 글76

MyBatis 1. MyBatis 1) MyBatis 특징 - Java Object와 SQL문 사이의 자동 Mapping 기능을 지원하는 ORM 프레임워크 - SQL을 별도의 파일 분리해서 관리 - Object - SQL 사이의 parameter mapping 작업을 자동으로 해 줌 2. 코드 예제 1) mybatis-config 2) MemberMapper.xml insert into members (user_id, user_name, user_password, email_id, email_domain, join_date) values(#{userId}, #{userName}, #{userPwd}, #{emailId}, #{emailDomain}, now()) select * from members; 3) dbinf.. 2024. 4. 19.
Interceptor, Filter, AOP 1. Interceptor - Controller가 요청을 처리하기 전/후 처리 - 공통 코드 사용으로 코드 재사용성 증가 - 여러 개 설정 가능 (순서 주의) a -> b -> c : c -> b -> a - ex) 로그인 세션 검증, Header 검증, token 검증 - AOP(비WEB)과 달리 WEB부분을 처리 2. Intercetor 메서드 3. Filter, Interceptor, AOP 비교 2024. 4. 18.
불(BJ_G4_5427) 1. 문제 링크 https://www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net 2. 나의 코드 메모리: 116604kb 시간: 924ms 코드 길이: 2228B 시간 복잡도 : O(RC) 설명 - 사람이 이동하는 경로와 불이 번지는 경로를 따로 큐로 처리 - 만약 더이상 사람이 이동할 경로가 없으면 Impossible 출력 - 만약 사람이 map의 가장자리에 도착하면 시간을 출력 import java.awt.Point; import java.io.BufferedReade.. 2024. 4. 17.
SpringMVC 1. MVC 패턴 2. Spring Web MVC 1) Spring MVC 특징 - DI, AOP 기능 뿐만 아니라, 서블릿 기반의 WEB 개발을 위한 MVC Framework를 제공 - Model2 아키텍처와 Front Controller Pattern을 프레임워크 차원제이서 제공 2) 구성요소 - DispatcherServlet (Front Controller) : 모든 클라이언틔의 요청을 전달 받음. 컨트롤러에게 클라이언트의 요청을 전달 - HandlerMapping : 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지를 결정, 스프링이 관리하는 빈 - Controller : 클라이언트의 요청을 처리 - ModelAndView : 컨트롤러가 처리한 데이터 및 화면에 대한 정보를 보유한 객체 - V.. 2024. 4. 17.
AOP(관점 지향 프로그래밍) 1. AOP(Aspect Oriented Programming) 1) AOP 개요 - 핵심 관심 사항과 공통 관심 사항으로 분리 - 공통 관심 사항을 여로 모듈에서 적용하는데 있어 중복된 코드를 양항 하는 한계 존재 2) AOP 적용 예 - 간단한 메소드의 성능 검사 - 트랜잭션 처리 - 예외 반환 - 아키텍처 검증 3) Spring AOP 용어 - target : 부가 기능을 부여할 대상 - Aspect : '공통 기능'을 모아둔 객체를 의미 (Pointcut + Advice) == Advisor - Advice : 어느 시점에 어떤 공통 관심 기능을 적용할 지 - JoinPoint : '공통 기능을 적용해야 하는 메소드'의 실행 시점을 의미 - Pointcut : '공통 기능을 적용할 대상'을 의미(.. 2024. 4. 16.
Spring Architecture DI 1. Spring & 개발환경 1) Framework - 프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임. ※ 라이브러리는 개발자가 주도적으로 코드를 작성하며, 그 과정을 보조하는 역할 (부품) ※ 프레임워크는 어플리케이션의 구조 또는 틀을 제공하며 개발을 위한 기본적인 형태와 필수 요소를 포함 (자동차) 2) Spring - 엔터프라이즈 급 어플리케이션을 만들기 위한 모든 기능을 종합적으로 제공하는 경량화 된 솔루션이다. - 즉, 개발자가 복잡하고 실수하기 쉬운 Low Level에 신경 쓰지 않고 Business Logic 개발에 전념할 수 있도록 해준다. - 경량 컨테이너 - DI(의존성 주입) 지원 - AOP(관점 지향 프로그래밍) 지원 - POJO.. 2024. 4. 15.
치즈(BJ_G4_2636) 1. 문제 링크 https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 2. 나의 코드 메모리: 16000kb 시간: 160ms 코드 길이: 2639B 시간 복잡도 : O(RC) 설명 - 치즈를 녹이는 과정은 BFS를 통해 바깥쪽 치즈를 0으로 변경 - 치즈의 갯수를 세기 위해서는 완전탐색 import java.awt.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStre.. 2024. 4. 13.
JOIN, SUBQUERY ※ 참고 : https://velog.io/@wijoonwu/JOIN [SQL] 테이블 JOIN의 개념과 예제 테이블 JOIN의 개념과 예제 velog.io ※ 참고 : https://luvris2.tistory.com/514 SQL - 서브쿼리(SubQuery)의 개념, 사용하는 이유, 특징, 사용 방법 해당 결과 조회는 SSMS(MSSQL)에서 확인하였습니다. 또한, top 1은 MS-SQL에서 사용하는 한 행에 대한 데이터 출력 조회 명령어로 MySQL에서는 limit를 사용하여야 합니다. 서브쿼리란? (Subquery) 다른 테이 luvris2.tistory.com 2024. 4. 9.
파티 (BJ_G3_1238) 1. 문제 링크 https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 2. 나의 코드 메모리: 45908kb 시간: 592ms 코드 길이: 2320B 시간 복잡도 : O((V + E)logV) 설명 - 다익스트라 알고리즘 사용 package com.problem.BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStrea.. 2024. 4. 8.