분류 전체보기 127

SpringBoot Auto Configuration

Annotation = 주석? 컴파일러가 Anotation을 만나면 미리 정의 된 일이 동작한다. @SpringBootApplication -> 들어가보면 @SpringBootConfiguration -> 빈을 만들어준다. @EnableAutoConfiguration -> 2번 Resoruse 의 Meta-info- spring factories의 EnableAutoConfigration이 있는 Compent들과 연관이 있는 외부클래스들을 가져와 빈을 등록한다. @ComponentScan -> 1번 @Component 붙어있는 객체들을 스캔을 하면서 빈으로 등록한다 @Filter @inrherited @Documented @Retention @Target www.youtube.com/watch?v=OXI..

Back-end/SpringBoot 2021.04.25

[파이썬]-백준(BOJ) 1719_택배

문제 명우기업은 2008년부터 택배 사업을 새로이 시작하기로 하였다. 우선 택배 화물을 모아서 처리하는 집하장을 몇 개 마련했지만, 택배 화물이 각 집하장들 사이를 오갈 때 어떤 경로를 거쳐야 하는지 결정하지 못했다. 어떤 경로를 거칠지 정해서, 이를 경로표로 정리하는 것이 여러분이 할 일이다. 예시된 그래프에서 굵게 표시된 1, 2, 3, 4, 5, 6은 집하장을 나타낸다. 정점간의 간선은 두 집하장간에 화물 이동이 가능함을 나타내며, 가중치는 이동에 걸리는 시간이다. 이로부터 얻어내야 하는 경로표는 다음과 같다. 경로표는 한 집하장에서 다른 집하장으로 최단경로로 화물을 이동시키기 위해 가장 먼저 거쳐야 하는 집하장을 나타낸 것이다. 예를 들어 4행 5열의 6은 4번 집하장에서 5번 집하장으로 최단 경..

백준/최단경로 2021.04.23

MVC 패턴

디자인 패턴? 구현 SW 개발방법을 공식화 한것 1. MVC 패턴이란 Model & View & Controller 애플리 케이션을 3가지로 역할로 구분한 개발 방법론 모델 1. JSP(view) + javaBean(Service) 뷰와 로직이 섞인다 장점 단점 구조가 단순 출력과 로직 코드가 섞여 JSP코드가 복잡해진다 프런트와 백엔드가 혼재되어 분업이 용이하지 않다 유지보수가 어렵다. 모델 2. [JavaBean(Service) + JSP(view) + 서블릿(controller)] MVC구조 장점 단점 뷰와 로직의 분리로 모델1에 비해 덜 복잡하고, 분업이 용이하며, 유지보수가 쉽다. 습득이 어렵고 작업량이 많다 MVC흐름 1. 사용자는 원하는 기능을 처리하기 위한 모든 요청을 컨트롤러에 보낸다. ..

DTO vs VO

DTO(Date Transfer Object) 레이어 간 데이터를 전달하는 객체 데이터 접근 메서드 외에 기능을 가지지 않음(setter, getter 로만 구성) + 정렬, 직렬화 등 데이터 표현을 위한 기능은 가질수 있음 데이터의 캡슐화를 통해 유연한 대응이 가능함 + 데이터 요청 수 감소 효과 VO 값 자체로 의미를 가지는 객체 변하지 않는 값을 가지는 객체 -> 값이 변하지 않음을 보장하여 코드의 안정성과 생산성을 높임 값이 같다면 동일한 객체 -> 각 개체를 비교하는 데 사용되는 ID가없음 -> 같은 객체인지 판단하기 위해 각 속성들의 값을 비교함 공통점 레이어 간 데이터를 전달할때 사용가능 (VO는 불변을 보장하기 때문에 데이터 전달 용도로 사용 가능) DTO VO 값이 변할수 있음 레이어와 ..

Back-end/Spring 2021.04.23

OCP 와 전략 패턴

1. if-else의 문제점 변경, 확장이 될 수록 코드가 복잡해진다 코드를 수정하거나 수정할 위치를 찾는데 점점 오래 걸린다. 실수로 추가하지 않고 누락하는 부분이 생길 가능성이 있다. -> 유지보수가 어려워 진다!! 계속되는 기능 추가 -> 복잡도 증가 -> 추가, 수정이 힘들다. 2. OCP (open close principle, 개방폐쇄의 원칙) 소프트웨어 구성 요소(컴포넌트, 클래스, 모듈, 함수)는 확장에 대해서는 개방돼야하지만 변경에 대해 폐쇄 되어야한다. 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다는 뜻이다. 적용방법 - 1 상속(is-a) 깨지기 쉬운 상위 클래스 문제 : 상속은 하위클래스가 상위클래스의 기능과 밀접하기 때문에 상위가 바뀌면 하위에 영향이..

[파이썬]-백준(BOJ)11053_ 가장 긴 증가하는 부분 수열

시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 71114 27341 18053 36.870% 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 예제 입력 1 복사 6 10 20 10 30 20 50 예제 출력 1 복사 4 해설 L..

백준/DP 2021.04.21

[파이썬]-백준(BOJ)7562_ 나이트의 이동

나이트의 이동 성공출처다국어분류 한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 24238 11576 8697 47.049% 문제 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 있을까? 입력 입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 세 줄로 이루어져 있다. 첫째 줄에는 체스판의 한 변의 길이 l(4 ≤ l ≤ 300)이 주어진다. 체스판의 크기는 l × l이다. 체스판의 각 칸은 두 수의 쌍 {0, ..., l-1} × {0, ..., l-1}로 나타낼 수 있다. 둘째 줄과 셋째 줄에는 나이트가 현재 있는 ..

백준/BFS 2021.04.21