분류 전체보기505 [Spring] 예외처리하기 - ControllerAdvice web.xml (404, 500 등의 에러 페이지 설정) 기존 방식 404 /error/404.jsp 500 /error/500.jsp Spring 8~11줄. DispatcherServlet을 만들면서 throwExceptionIfNoHandlerFound를 true로 설정한다. 이렇게 설정하면 error를 exception으로 던져서 같이 처리할 수 있게 된다. 기본은 false인데, DispatcherServlet이 NOT_FOUND 에러를 바로 보낸다는 의미다. setThrowExceptionIfNoHandlerFound Set whether to throw a NoHandlerFoundException when no Handler was found for this request. This exc.. 기록/BACKEND 2022. 4. 21. [Spring] DI DI (Dependency Injection) - 객체 간의 의존 관계를 자신이 아닌 외부의 조립기가 수행한다. - 제어의 역행(IoC : inversion of Control)이라는 의미로 사용한다. - DI를 통해 시스템에 있는 각 객체를 조정하는 외부 개체가 객체들에게 생성 시에 의존관계를 줌 - 느슨한 결합(loose coupling)의 주요 강점 : 객체는 인터페이스에 의한 의존관계만을 알고 있으며, 이 의존관계는 구현 클래스에 대하나 차이를 모르는 채 서로 다른 구현으로 대체가 가능하다. - Spring의 DI 지원 : Spring Container가 DI 조립기를 제공한다. 스프링 설정파일을 통해 객체 간 의존관계를 설정하고, 제공하는 API를 이용해 객체를 사용한다. 용어 정리 Bean -.. 기록/BACKEND 2022. 4. 20. [Spring] JNDI 설정하기 [기존 Servlet에서 Connection Pool을 얻던 방식]을 Spring에서도 사용하는 방법이다. 파일 하나만 변경하면 된다. WEB-INF > spring > root-context.xml org.springframework.jndi.JndiObjectFactoryBean의 setJndiName에 value를 설정한다. org.springframework.jndi.JndiObjectLocator에서 상속받은 메서드인데, java:comp/env/로 시작하지 않고 resourceRef가 true로 설정돼있다면 자동으로 prefix를 붙여준다. META-INF > context.xml 저번과 동일하다. WEB-INF/web.xml 기록/BACKEND 2022. 4. 19. [JAVA] library, framework, pattern, architecture 차이 보호되어 있는 글 입니다. 2022. 4. 19. [WEB] IoC IoC (Inversion of Control, 제어의 역행) 객체 제어 방식 - 기존 : 필요한 위치에서 개발자가 필요한 객체 생성 로직을 구현했다. - IoC : 객체 생성을 Container에게 위임해 처리한다. 객체지향 언어에서 Object 간의 연결 관계를 런타임에 결정한다. IoC 사용에 따른 장점 - 객체 간의 결합도를 떨어뜨릴 수 있다. 객체 간 결합도가 높으면 해당 클래스가 유지보수될 때 그 클래스와 결합된 다른 클래스도 같이 유지보수돼야할 가능성이 높아진다. IoC 유형 1. DL : Dependency Lookup -> JNDL Lookup 2. DI : Dependency Injection -> 1) Setter Injection, 2) Constructor Injection, 3).. 기록/BACKEND 2022. 4. 19. [BOJ] 4803 트리 - JAVA 1. 문제 4803번: 트리 입력으로 주어진 그래프에 트리가 없다면 "No trees."를, 한 개라면 "There is one tree."를, T개(T > 1)라면 "A forest of T trees."를 테스트 케이스 번호와 함께 출력한다. www.acmicpc.net 그래프는 정점과 간선으로 이루어져 있다. 두 정점 사이에 경로가 있다면, 두 정점은 연결되어 있다고 한다. 연결 요소는 모든 정점이 서로 연결되어 있는 정점의 부분집합이다. 그래프는 하나 또는 그 이상의 연결 요소로 이루어져 있다. 트리는 사이클이 없는 연결 요소이다. 트리에는 여러 성질이 있다. 예를 들어, 트리는 정점이 n개, 간선이 n-1개 있다. 또, 임의의 두 정점에 대해서 경로가 유일하다. 그래프가 주어졌을 때, 트리의 개.. 코딩테스트/BOJ 2022. 4. 18. [PG] 정수삼각형 - JAVA 1. 문제 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수.. 코딩테스트/PROGRAMMERS 2022. 4. 17. [Spring] DI 주입하기 - java 객체 필요한 곳에서 부르기 1. context 설정(객체 정보를 알 수 있는 class) - .xml 파일 대신 설정이 담긴 java class를 넘긴다. 2. 사용할 객체 가져오기(xml과 동일) - context에서 Bean을 가져온다. - 이름만 설정 : 해당 이름의 객체를 가져온다. 이름이 없다면 해당하는 class를 알아서 가져온다. - 클래스만 설정 : 해당 class타입으로 자동 형 변환해서 가져온다. 클래스 설정하지 않으면 Object 타입으로 반환한다. ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); GuestBookService guestBookService = con.. 기록/BACKEND 2022. 4. 16. [Spring] DI 주입하기 - xml 방법 두 가지가 있는데, context.xml과 java class에서 하나씩 짝지어 생각하면 된다. 객체 필요한 곳에서 부르기 1. context 설정(객체 정보를 알 수 있는 xml파일) - new ClassPathXmlApplicationContext()에 xml 파일 주소를 넘긴다. 2. 사용할 객체 가져오기 - context에서 Bean을 가져온다. - 이름만 설정 : 해당 이름의 객체를 가져온다. 이름이 없다면 해당하는 class를 알아서 가져온다. - 클래스만 설정 : 해당 class타입으로 자동 형 변환해서 가져온다. 클래스 설정하지 않으면 Object 타입으로 반환한다. ApplicationContext context = new ClassPathXmlApplicationContext("c.. 기록/BACKEND 2022. 4. 15. [BOJ] 3954 Brainf**k 인터프리터 - JAVA 1. 문제 3954번: Brainf**k 인터프리터 각 테스트 케이스에 대해서, 프로그램이 종료된다면 "Terminates"를, 무한 루프에 빠지게 된다면 "Loops"를 출력한다. 무한 루프에 빠졌을 때는, 프로그램의 어느 부분이 무한 루프인지를 출력한다. ([ www.acmicpc.net Brainf**k 프로그램이 주어졌을 때, 이 프로그램이 끝나는지, 무한 루프에 빠지는지 알아내는 프로그램을 작성하시오. 무한 루프란, 특정 시점부터 탈출하지 않고 무한히 반복 실행되는 루프를 말한다. Brainf**k 인터프리터는 정수를 담는 하나의 배열(unsigned 8-bit 정수)과, 그 배열의 칸 하나를 가리키는 포인터로 이루어져 있다. Brainf**k 프로그램은 다음과 같이 8개의 명령어로 이루어져 있.. 코딩테스트/BOJ 2022. 4. 15. [SWEA] 4013 특이한 자석 - JAVA 1. 문제 BOJ 14891 톱니바퀴와 동일하다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴가 1번, 그 오른쪽은 2번, 그 오른쪽은 3번, 가장 오른쪽 톱니바퀴는 .. 코딩테스트/SWEA 2022. 4. 14. [BOJ] 9205 맥주 마시면서 걸어가기 - JAVA 1. 문제 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. 맥주 한 박스에는 맥주가 20개 들어있다. 목이 마르면 안되기 때문에 50미터에 한 병씩 마시려고 한다. 즉, 50미터를 가려면 그 직전에 맥주 한 병을 마셔야 한다. 상근이의 집에서 페스티벌이 열리는 곳은 매우 먼 거리이다. 따라서, 맥주를 더 구매해야 할 수.. 코딩테스트/BOJ 2022. 4. 14. 이전 1 ··· 26 27 28 29 30 31 32 ··· 43 다음