https://www.acmicpc.net/problem/1753 가중치가 부여된 단방향 간선들로 연결된 노드들의 정보를 준다. 시작위치에서 각각의 노드까지의 최단경로를 출력하면 되는 문제이다. 따라서 하나의 시작 정점으로부터 모든 다른 정점까지의 음의 가중치가 없을 때 최단 경로를 찾는 알고리즘인 다익스트라 알고리즘을 사용하면 된다. 시작점부...
백준 1753 - 최단경로 (java)
백준 11053 - 가장 긴 증가하는 부분 수열 (java)
https://www.acmicpc.net/problem/11053 배열이 주어지면 값이 증가하는 가장 긴 부분을 찾으면 되는 문제이다. [10, 20, 10, 30, 20, 50]의 경우 10 20 30 50 의 원소만 체크하면 증가하는 형태이고 길이는 4이기 때문에 예제 출력이 4가 되는 것이다. 배열의 각 인덱스를 돌고 만약 해당 인덱스의 ...
싱글톤 컨테이너
스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도 얼마든지 개발할 수 있다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 이렇게 고객3명이 요청을 하면 객체 3개를 생성해야 한다. 고객 트래픽이 초당 100이 나오면 초당 ...
스프링 컨테이너와 스프링 빈
스프링 컨테이너의 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 스프링 컨테이너 생성 스프링 컨테이너를 생성할 떄는 구성 정보를 지정해주어야 한다. (AppConfig.class) 스프링 빈 등록...
싱글톤, 팩토리, 이터레이터 패턴
디자인패턴? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 ‘규약’ 형태로 만들어 놓은 것을 의미한다. 디자인패턴은 라이브러리나 프레임워크를 만드는데 기초적인 원리가 되며 지금도 많은 라이브러리, 프레임워크가 어떠한 디자인패턴을 기반으로 만들어지고 있다. 라이브러리와 프레임워크의 차이?...
백준 2470- 두 용액 (java)
https://www.acmicpc.net/problem/2470 투포인터 알고리즘을 사용해 start, end 포인트 합의 절댓값이 0에 가까운 포인트를 찾는 문제이다. 처음에는 원소가 모두 음수인 경우, 원소가 모두 양수인 경우, 음수 양수가 섞인 경우를 모두 고려해 start, end 포인트가 배열을 끝까지 돌지 않도록 설계하려 했는데 내용이...
회원,주문,할인 설계와 개발 예제 (2) - 스프링 전환
이전 포스트에서 순수한 자바 코드만으로 DI를 적용했다. 이제 스프링을 사용해보자. 스프링으로 전환하기 //AppConfig 클래스 위에 @Configuraion 추가. 각 메서드에 @Bean 추가. @Configuration - 구성정보 / 설정정보에 붙이면 됨. @Bean - 스프링 컨테이너에 메서드를 등록 //MemberA...
회원,주문,할인 설계와 개발 예제 (1) - 순수 자바
‘우선 스프링의 편리함을 알기 위해 순수 자바코드를 통한 예제를 작성’ start.spring.io 에서 시작하지만 우선 Dependencies에 아무것도 추가하지 않음. (Spring Web, Thymeleaf 등등) 비즈니스 요구사항 & 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VI...
CI/CD
CI / CD Continuous Integration / Delivery & Deployment 지속적으로 코드를 합치고, 배포한다. Delivery = git 같은 곳에 merge하는. Deployment = 실제 서비스 배포. 이 파이프라인이 주는 장점은 코드 배포까지 좀 더 체계적으로 만들어주고 테스트가 강제된다. (테스트 ...
스프링과 객체지향
왜 EJB를 놔두고 스프링을 만들었을까. 왜 스프링에 열광할까. 2003년 스프링 프레임워크 1.0 출시 - XML 2009년 스프링 프레임워크 3.0 출시 - 자바 코드로 설정 2014년 스프링 부트 1.0 출시 스프링? 스프링은 이렇게 많은 기능이 있다. 이 외에도 더 있다. 이 중 핵심은 스프링 프레임워크이고 스프링 프레임워크...