전체 글
-
[프로그래머스] 입국심사 (07.29)algorithm/프로그래머스 2020. 7. 29. 19:01
문제 https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 � programmers.co.kr 접근법 정답이 될 수 있는 범위는 0 부터 times 배열의 최대값 * n 이 된다. 입출력 예시로 보면 심사하는데 걸리는 시간은 7과 10이 있다. 이때 6명의 사람을 심사하는데 최악의 경우는 모든 사람이 10이 걸리는 심사대에서 심사를 받는 것이다. 그렇게 되면 6 * 10, 즉 최대 60의 시간이 걸린다는 것을 알 수 있다. 그럼 정답은 0~60 사..
-
CHAP3. 람다 표현식book/모던 자바 인 액션 2020. 7. 28. 21:00
1. 람다란 무엇인가? 람다 표현식 : 메소드로 전달할 수 있는 익명 함수를 단순화한 것 특징 1. 익명 : 보통 메소드와 달리 이름이 없어 익명이라 표현한다. 2. 함수 : 람다는 메소드처럼 특정 클래스에 종속되지 않아 함수라고 부른다. 하지만 메소드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 3. 전달 : 람다 표현식을 메소드 인수로 전달하거나 변수로 저장할 수 있다. 4. 간결성 : 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다. 람다는 자바 8 이전의 자바로 할 수 없었던 일을 제공하는 것은 아니고 동작 파라미터를 이용할 때 익명 클래스 등 판에 박힌 코드를 구현할 필요가 없이 더 쉽게 구현할 수 있다. - 파라미터 리스트 : Comparator의 com..
-
[프로그래머스] 이중우선순위큐 (07.28)algorithm/프로그래머스 2020. 7. 28. 16:53
문제 https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 접근법 단순하게 직관적으로 생각했다. 큐에 숫자가 삽입이 될때는 항상 정렬된 상태를 유지해야한다. 처음에는 우선순위큐를 사용했는데 힙에 삽입이 되듯이 정렬이 되어서 그냥 offer만 한 상태에서는 오름차순으로 정렬이 되지 않았다. 아직 우선순위 큐에 사용이 좀 미숙하다. 그래서 그냥 List를 정렬해가면서 풀었다. 삽입하고 삭제하는 연산이 많아서 LinkedList를 사용했다. for문 안에 또 정렬을 하면 시간복잡도가 높게 나오지 않을까 걱정했는데 생각보다 짧게 걸렸다. 코드 import java.util.*; class Solut..
-
[프로그래머스] 디스크 컨트롤러 (07.27)algorithm/프로그래머스 2020. 7. 28. 00:56
문제 https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를�� programmers.co.kr 접근법 우선 요청이 들어온 순서대로 정렬을 해준다. ( 그냥 단순히 작업이 짧은 순으로 정렬하면 아직 요청이 들어오지 않았는데도 실행할 수도 있기 때문에 ) 요청 시간 순으로 정렬이 된 상태에서 작업 시간이 짧은 순으로 우선순위 큐에 넣는다. 우선순위 큐에는 힙에 삽입이 되는 것처럼 데이터가 들어간다. index를 이용하여 작업을 꺼내고 time을..
-
[SPRING] Reqeust 흐름과 WASstudy/spring 2020. 7. 26. 22:36
Client(Browser) - WebServer(Apache) - WAS(Tomcat) - Servlet(ServletDispatcher) - DI Container - Controller Web Server ( Apache, nginx ) 흔히 웹 서버라고 하면 웹 애플리케이션이 설치되어 웹 서비스를 제공하는 서버라고 생각한다. 큰 의미로는 맞는 말이지만, 좁은 의미로 사용한다면 정적 컨텐츠를 제공하는 것이 웹 서버이다. 사용자가 웹 서버로 요청을 보내면 먼저 웹 서버가 요청을 보고 동적 컨텐츠를 제공해야한다면 WAS로 보내고, 정적 컨텐츠(.html, .css 등 변화가 없는 파일)로 제공해야한다면 웹 서버에서 직접 응답한다. 웹 서버가 필요한 이유는 웹 서버에서 정적인 콘텐츠만을 처리하도록 기능을..
-
[PROGRAMMING] RESTful API설계programming 2020. 7. 26. 22:14
REST 웹에 존재하는 모든 자원( DB, 이미지 등 )에 고유한 URL을 부여하여 활용하게 하는 아키텍처 자원마다 고유한 URL을 부여하여 자원의 활용이 이루어지기 때문에 각 URL의 설계가 이전보다 중요하게 되어 해당 URL만 보더라도 어떤 작업이 이루어지는지 알 수 있도록 설계해야 한다. 장점 하나의 환경에 집중되어 설계하는 것이 아닌 다양한 디바이스 환경 ( 안드로이드, ios, 웹 등 )에게 서비스를 제공하는 것이 가능하다는 장점이 있다. 메소드 메소드 규칙 설명 GET 데이터를 조회할 때 활용되는 메소드 POST 새로운 데이터를 Write할 때 활용되는 메소드 PUT 데이터를 수정할 때 활용되는 메소드 PATCH 데이터를 수정할 때 활용하는 메소드 DELETE 데이터를 삭제할 때 활용되는 메소..
-
[PROGRAMMING] 라이브러리, 프레임워크 용어 간단 정리programming 2020. 7. 26. 18:50
라이브러리 컴퓨터 프로그램에서 자주 사용되는 부분 프로그램들을 모아 놓은 것 재사용이 가능한 필요 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 클래스나 함수로 만들어진 것 장점 1. 코드의 중복을 줄임 ( 가독성, 유지보수 향상 ) 2. 프로그래밍 시간 단축 ( 생산성 향상 ) 프레임워크 어떤 프로그램을 만들기 위한 기본 틀 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것 장점 1. 프로그램을 편리하고 빠르게 만들 수 있음 ( 생산성 향상 ) 2. 코드가 체계적이어서 유지보수에 안정적 단점 1. 코드를 습득하고 이해하는데 오랜 시간이 걸린다. 2. 이미 짜여진 틀이 있다보니 개발자가 자유..
-
[NETWORK] HTTP1.1 vs. HTTP2.0study/network 2020. 7. 26. 17:56
HTTP : 웹상에서 클라이언트와 서버 간에 요청/응답으로 정보를 주고받을 수 있는 프로토콜 HTTP/1.1 : 기본적으로 연결당 하나의 요청과 응답을 처리하는 방식 HTTP/1.1의 문제점 1. 연결당 하나의 요청과 응답을 처리하기 때문에 동시 전송 문제와 다수의 리소스를 처기하기에 속도와 성능면에서 이슈가 존재한다. 2. 사양상의 제한으로 클라이언트 요청의 순서와 서버 응답 순서는 동기화가 되어야 하는데 이때 HOL(Head Of Line) Blocking, 즉 특정 응답 지연 문제가 발생한다. 먼저 받은 요청이 끝나지 않으면 그 뒤에 있는 요청의 처리가 아무리 빨리 끝나도 먼저 온 요청이 끝날 때까지 기다려야 함. 3. RTT(Round Trip Time) 증가, 양방향 지연 문제 발생 RTT란 네..