Spring lagacy Project로 프로젝트를 생성한 경우! 1. web.xml, root-context.xml, servlet-context.xml 파일을 삭제한다. 2. pom.xml 에 web.xml 파일이 없다는 설정을 추가해야한다. ... org.apache.maven.plugins maven-war-plugin 3.2.0 false 3. Java로 설정하는 경우 xml파일의 역할을 Java 클래스가 대신하게 되므로 기능을 대신할 Java Class 3개를 만들어 줍니다.(Spring lagacy인 경우 스프링 버전이 3.x 대 버전이기 때문에 이를 5.x 대 버전으로 높이고 java 버전도 1.8정도로 맞춰주세요. pom.xml에서, 그래야 밑에 3개의 클래스들이 상속/구현할 클래스/인터..
가장 큰 수 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예 numbers return [..
공유 객체 사용시 - 싱글 스레드의 경우는 고민할 경우가 거의 없다. - 멀티 스레드의 경우 스레드간의 하나의 객체 공유 시 디버깅하기 어려운 오류가 나타날 수 있다. Tread-1이 공유객체의 멤버변수에 할당된 값을 변경. -> 그사이 Thread-2가 공유 객체의 멤버변수에 할당된 값을(null이 아닌지 모르고) 엎어침. -> Thread-1 공유객체 사용하려는데 값이바뀜. -> 오류!! 이를 방지하기 위해 단 하나의 스레드만을 실행할 수 있는 임계영역을 지정해야 한다. 즉, 객체에 잠금을 걸어두어 하나의 스레드만이 접근가능하고 나머지 스레드는 대기하도록 만든다. 키워드 : synchronized 동기화(synchronized) 메소드 public synchronized void method(){ /..
베스트앨범 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생..
스레드의 우선순위 동시성 : 멀티작업을 위해 하나의 코어에서 멀티 스레드가 번갈아가면서 실행하는 성질 병렬성 : 멀티작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질 스레드 스케줄링 - 스레드의 갯수가 코어의 수보다 많을 경우에 스레드를 어떤 순서에 의해 동시성으로 실행할 것인가에 대한 계획. - 아주 짧은 시간 스레드의 run 메소드를 번갈아가면서 실행한다. 우선순위(priority) 방식 - 우선순위가 높은 스레드가 실행상태를 더 많이 가져감. - 객체에 우선순위를 부여하여 개발자가 제어가능. - 1부터 10까지 우선순위, 높으면 먼저 실행 thread.setPriority(우선순위); 우선순위 상수 : Thread.MAX_PRIORITY(10), Thread.NORM_PRIORITY(5..
프로세스와 스레드 프로세스 운영체제에서는 실행중인 하나의 어플리케이션을 프로세스라고 함. 운영체제로부터 실행에 필요한 메모리를 할당받아 어플리케이션의 코드를 실행. 스레드 프로세스를 이루는 코드의 실행흐름. 하나의 스레드는 하나의 코드 실행흐름임. 멀티 프로세스 서로 독립적. 하나의 프로세스에서 오류가 발생하더라도 다른 프로세스에 영향을 미치지 않음. 멀티 스레드 하나의 프로세스 내부에 존재하기 때문에 하나의 스레드가 예외를 던지면 프로세스 하나가 아예 동작하지 않을 수 있음 -> 예외 처리 중요. 메인 스레드 자바 어플리케이션은 메인스레드가 main 메소드를 실행하면서 시작함. 스레드의 생성 1. Thread 클래스로부터 직접 생성 Thread thread = new Thread(Runnable tar..
Strategy 패턴 - 여러 가지의 알고리즘을 하나의 추상적인 접근점을 만들어서 접근점을 통해 교환 가능하도록 구성하는 자바의 디자인 패턴 - 주로 게임 개발에서 무기를 교체하거나 장비를 교체하거나 할 때 사용한다고 한다. Strategy 패턴을 이해하기 위해서는 두가지를 면저 알아두어야 한다. 1. 인터페이스 2. 델리게이트 인터페이스 - 인터페이스는 추상적인 어떤 것이다. 칼, 검, 활의 추상적인 어떤 것은 무기가 될 것이고, 신발, 바지, 상의의 추상적인 어떤 것은 장비가 될 것이다. 다른 의미로는 굉장히 의미가 다양하게 쓰이는 언어라고 생각이 들어 Strategy 패턴에서 사용하고 있는 의미로만 설명되었다. 델리게이트 - delegate(위임하다, 떠넘기다) 라는 영어단어로 개발 영역에서 많이 ..
위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. cl..