목록전체 글 (191)
JAN's History
목차 싱글톤 컨테이너 - 웹 애플리케이션과 싱글톤 싱글톤 컨테이너 - 싱글톤 패턴 싱글톤 컨테이너 - 싱글톤 컨테이너 싱글톤 컨테이너 - 싱글톤 방식의 주의점 싱글톤 컨테이너 - @Configuration과 싱글톤 싱글톤 컨테이너 - @Configuration과 바이트코드 조작의 마법 웹 애플리케이션과 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도 얼마드지 개발할 수 있다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. => 그림에서 고객이 3번 요청하면 객체가 3개 생성된다. 그렇게 되면 문제가 발생한다. AppConfig를 appConfig로 생성하고, appConfig의 ..
목차 1. 문제 9012 2. 문제 1158 3. 문제 2743 1. 문제 9012 풀이 package etc; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class baekjoon9012 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int T = Integer...
스프링 컨테이너 생성 ApplicationContext를 스프링 컨테이너라 한다. ApplicationContext는 인터페이스이다. 그래서 다형성이 적용된다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 직전에 AppConfig를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. 자바 설정 클래스를 기반으로 스프링 컨테이너(ApplicationContext)를 만들어보자. new AnnotationConfigApplicationContext(AppConfig.class); 이 클래스는 ApplicationContext 인터페이스의 구현체이다. 참고 더 정확히는 스프링 컨테이너를 부를 때 BeanFactory..
목차 1. 문제 1935 2. 문제 10808 3. 문제 2751 1. 문제 1935 풀이 package etc; import java.io.*; import java.util.Scanner; import java.util.Stack; public class baekjoon1935 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine()); String data = br.readLine(); double[] arr = new double[num]; ..
새로운 할인 정책 개발 기존 할인 정책 - 고정 금액 할인 정책 => VIP는 10000원을 주문하든 20000만원을 주문하든 항상 1000원 할인해준다. 바뀐 할인 정책 - 정률 할인 정책 => 10%면 10000만원 주문 시 1000원 할인, 20000만원 주문 시 2000원 할인해준다. FixDiscountPolicy를 개발했으니 RateDiscountPolicy를 개발하면 된다! 고정 할인 퍼센트 10으로 선언하고 DiscountPolicy를 오버라이드로 VIP일 때 price의 10%값을 반환하도록 해준다. Ctrl + Shitf + T 로 테스트 코드 생성 member에 id는 1L, name은 memberVIP, 등급은 VIP인 멤버를 생성하고 RateDiscountPolicy 객체인 dis..
목차 1. 문제 10820 2. 문제 10845 3. 문제 11655 1. 문제 10820 풀이 설명 문자열 N개를 입력받아 소문자, 대문자, 숫자, 공백 순으로 각각 개수를 반환하는 문제입니다. BufferedReader를 통해 입력을 받고 String s으로 읽어줍니다. 4개를 반환값으로 하기 때문에 sch, bch, num, blank를 초기화해줍니다. 그리고 if else문으로 각 조건에 맞을 때 마다 ++합니다. 마지막으로 printf로 값을 반환합니다. 에러 나는 처음에 Exception in thread "main" java.lang.Error: Unresolved compilation problem: 라는 에러가 났는데 찾아보니 public를 제거하면 에러가 안난다고 해서 public cl..
1. 람다식 - 함수(메서드)를 간단한 '식'으로 표현하는 방법 - 익명 함수이다.(이름이 없는 함수, anonymous function) => 반환타입과 이름을 지우기 때문! - 함수와 메서드의 차이 > 근본적으로 동일하지만 함수는 일반적인 용어이고 메서드는 객체지향개념의 용어이다. > 함수는 클래스에 독립적, 메서드는 클래스에 종속적이다. > 자바에선 클래스 밖에 함수가 있을 수 없기 때문에 메서드밖에 없다. 람다식 작성법 1. 메서드의 이름과 반환타입을 제거하고 '->'를 블록 {}앞에 추가한다. 2. 반환값이 있는 경우, 식이나 값만 적고 return문 생략 가능 (끝에 ; 안붙임) 3. 매개변수의 타입이 추론 가능하면 생략가능(대부분의 경우 생략 가능) 작성 시, 주의사항 1. 매개변수가 하나인..
1. 쓰레드 프로세스 : 실행중인 프로그램, 자원(resources, Ex) 메모리, CPU)과 쓰레드로 구성 쓰레드 : 프로세스 내에서 실제 작업을 수행. 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다. 프로세스 : 쓰레드 = 공장 : 일꾼 여태껏 작성해온 건 싱글 쓰레드 프로세스 ! 앞으로는 멀티 쓰레드 프로세스를 작업하려고 하는 것 " 하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 든다 " => 공장이 두개냐 일꾼이 두명이냐. 대부분의 프로그램이 멀티쓰레드로 작성되어있다. 그러나, 멀티쓰레드 프로그래밍이 장점만 있는 것은 아니다. 장점 - 시스템 자원을 보다 효율적으로 사용할 수 있다. - 사용자에 대한 응답성이 향상된다. - 작업이 분리되어 코..