분류 전체보기

    [Spring] 스프링 MyBatis 연동

    MyBatis 1. pom.xml에 의존성 추가 org.apache.commons commons-dbcp2 2.8.0 mysql mysql-connector-java 8.0.22 org.mybatis mybatis 3.5.6 org.mybatis mybatis-spring 2.0.6 org.springframework spring-jdbc ${org.springframework-version} 2. applicationContext.xml dataSource 빈 등록 driverClassName, url, username, password sqlSessionFactory 등록 dataSource 연결 mapperLocations - mapper.xml의 경로 지정 typeAliasesPackage - d..

    [Spring] 스프링 - File Upload, Download

    파일 업로드 / 다운로드 1. pom.xml에 commons-fileupload 추가 commons-fileupload commons-fileupload 1.4 2. servlet-context에 multipartResolver 추가 defaultEncoding = 인코딩 방식 maxUploadSize= 최대 업로드 크기, -1인 경우 무한 3. form 수정 ... method: POST, enctype=”multipart/form-data”로 설정 이미지 파일만 받고싶은 경우 accept="image/*" 4. ProductController @PostMapping("/product/regist") public String regist(Model model, @RequestPart(required =..

    [Spring] 스프링 인터셉터 - Handler Interceptor

    HandlerInterceptor를 통한 요청 가로채기 Controller가 요청을 처리하기 전/후 처리 실제 Business Logic과 분리되어 처리해야 하는 기능을 넣고 싶을 때 유용하다 @Component public class SessionInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); // 세션에 로그인 정보가 있다면 그대로 진행 if (session.getAt..

    [백준] 1644 - 소수의 연속합 (자바 Java)

    [Gold III] 소수의 연속합 - 1644 문제 링크 성능 요약 메모리: 32812 KB, 시간: 176 ms 분류 수학(math), 정수론(number_theory), 소수 판정(primality_test), 에라토스테네스의 체(sieve), 두 포인터(two_pointer) 문제 설명 하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다. 3 : 3 (한 가지) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (세 가지) 53 : 5+7+11+13+17 = 53 (두 가지) 하지만 연속된 소수의 합으로 나타낼 수 없는 자연수들도 있는데, 20이 그 예이다. 7+13을 계산하면 20이 되기는 하나 7과 13이 연속이 아니기에..

    [백준] 1806 - 부분합 (자바 Java)

    [Gold IV] 부분합 - 1806 문제 링크 성능 요약 메모리: 22944 KB, 시간: 220 ms 분류 누적 합(prefix_sum), 두 포인터(two_pointer) 문제 설명 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. 출력 첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면..

    [Spring] 스프링 핵심 원리 기본편 9. 빈 스코프

    9. 빈 스코프 빈 스코프란? 스프링 빈은 스프링 컨테이너의 시작과 함께 생성되어 스프링 컨테이너가 종료될 때까지 유지 스프링 빈이 싱글톤 스코프로 생성되기 때문 스프링은 다음과 같은 스코프 지원 “싱글톤”: 기본 스코프, 스크링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 “프로토타입”: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 “웹 관련 스코프” request: 웹 요청이 들어오고 나갈 때 유지되는 Q스코프 session: 웹 세션이 생성되고 종료될 때까지 유지되는 스코프 application: 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 프로토타입 스코프 싱글톤 스코프와 달리 스프링 컨테이너에 조회하면 ..

    [백준] 1987 - 알파벳 (자바 Java)

    [Gold IV] 알파벳 - 1987 문제 링크 성능 요약 메모리: 12936 KB, 시간: 996 ms 분류 백트래킹(backtracking), 깊이 우선 탐색(dfs), 그래프 이론(graphs), 그래프 탐색(graph_traversal) 문제 설명 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다. 좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 프로..

    [스프링 부트] 파일 업로드 시 static 정적 경로 설정

    파일 업로드를 할 때 저장하고 싶은 위치는 src\main\static\resources\upload 인데 자꾸 src\main\webapp\static\resources\upload 에 저장되는 문제가 있었다. 해결은 아직 하지 못했다.. http://localhost:8080/resources/upload/test.png 라고 주소창에 검색하면 static\resources\upload에 있는 파일이 잘 뜨는데 업로드할 때 주소 설정이 잘못된 것인지 파일 업로드만 하면 webapp으로 간다 뭔가 설정이 잘못된 것 같은데 아직 해결 방안을 찾지 못함 @PostMapping("/regist") public String doRegist(@ModelAttribute User user, @RequestPart..

    [Spring] 스프링 핵심 원리 기본편 - 8. 빈 생명주기 콜백

    8. 빈 생명주기 콜백 빈 생명주기 콜백 스프링은 간단하게 다음과 같은 라이프사이클을 가진다 객체 생성 → 의존관계 주입 (생성자 주입은 예외) 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 함 - 개발자는 의존관계 주입이 완료된 시점을 어떻게 알 수 있을까?? 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 다양한 기능을 제공 스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 준다 스프링 빈의 이벤트 라이프 사이클 스프링 컨테이너 생성 → 스프링 빈 생성 → 의존관계 주입 → 초기화 콜백 → 사용 → 소멸 전 콜백 → 스프링 종료 초기화 콜백: 빈이 생성되고 빈의 의존관계 주입이 완료된 후 호출 소멸전 콜백: 빈이 소멸되기 직전에 호출 ..

    [Spring] 스프링 핵심 원리 기본편 - 7. 의존관계 자동 주입

    7. 의존관계 자동 주입 다양한 의존관계 주입 방법 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 생성자 주입 특징 생성자 호출 시점에 딱 1번만 호출되는 것이 보장됨 불변, 필수 의존관계에 사용 불변: 생성자 외에 외부에서 의존관계를 수정할 수 없음 필수: final, 꼭 값이 있어야 함 생성자가 딱 1개만 있으면 @Autowired를 생략해도 자동으로 지정됨 생성자 주입은 빈을 등록하면서 의존관계 주입도 같이 일어남 - 생성자를 호출하게 되기 때문에 수정자 주입 setter라 불리는 필드의 값을 변경하는 수정자 메서드를 통해 주입 특징 선택, 변경 가능성이 있는 의존관계에 사용 참고: @Autowired(required = false) → 주입할 대상이 없어도 동작하게 할 ..

출처: https://gmnam.tistory.com/157 [Voyager:티스토리]