본문 바로가기
반응형

분류 전체보기75

[Algorithm]Programmers_17683_방금그곡_Java 문제 링크 방금그곡 : 링크 문제 풀이 음악 하나 하나를 저장할 class 객체를 만든다. #이 붙은(갯수는 하나지만 length가 2인) 악보를 겹치지 않는 다른 문자로 변환한다. 답이 여러개 일 경우를 대비하여 running time을 계산한다. array list에 값을 넣기 때문에 running time이 같다면 먼저 저장된 음악이 답임을 생각한다. 코드 package Programmers.LV2; import java.util.ArrayList; public class Q17683 { static class Music{ int runningTime; String name; String infos; public Music(int runningTime, String name, String infos.. 2021. 9. 3.
[OS] 교착상태(DeadLock)란? 교착상태란? 다중프로그래밍을 지원하는 프로세스는 한정된 데이터를 읽고 쓰기 위해 경쟁하게 된다. 이 경쟁 과정에서 생길 수 있는 문제를 예방하기 위해 데이터는 프로세스가 점유 상태라면 다른 프로세스의 접근을 막는 방법을 주로 사용하게 되는데 그 결과 같은 두개의 데이터를 필요로 하는 두 프로세스가 각각 하나씩 점유하게 되면 무한정 대기상태에 빠지게 되는데 이러한 상태를 교착상태라 한다. 교착 상태가 생기기 위한 조건 교착상태는 아래의 네가지 조건을 충족해야 일어난다 상호배제(mutual exclusion) 한 리소스는 한번에 한 프로세스만이 사용 할 수 있음(화장실 키) 점유하며 대기(hold-and-height) 프로세스는 최소한 하나의 점유한 채, 현재 다른 프로세스에 의해 점유된 자원을 추가로 얻기.. 2021. 9. 2.
[Network] HTTP란? 그리고 HTTP 1.1, HTTP 2 Rest API가 HTTP/1.0의 특징과 연관이 있듯 gRPC에 대해 알아보니 HTTP/2.0의 특징과 큰 연관이 있는 듯 하다. 근본이 되는 기술을 공부해 두는게 좋겠지.. 면접에서도 종종 나오는 질문인듯하고. 아자아자! HTTP란? HTTP(Hypher Text Transfer Protocol)란 웹에서 데이터를 주고 받기 위한 프로토콜 즉, 일종의 약속이다. 주로 TCP/IP 전송계층을 사용한다.(Google님이 HTTP를 3.0버전을 UDP를 사용하여 제작했다. 정보를 찾아보니 많은 장점이 있던데 이를 통해 또 어떤 기술이 생겨날지 기대된다.) HTTP의 특징 TCP/IP 전송 계층을 사용하는 애플리케이션 계층의 프로토콜 비연결성 프로토콜 Client 측과 Server측의 request, res.. 2021. 9. 2.
[Go] 고루틴(Goroutine) 알고쓰기(1) - 동시성, 병렬성 프로그래밍 그리고 고루틴 그냥 가져다 쓰면 되는줄 알았는데 공부할게 정말 많은 부분이었다. 간단히 기억하기 위해 포스팅을 하려 했으나 생각보다 모르는 부분이 많았고 공부할 가치가 있다 판단하여 조금 깊게 들여다 보았다. 동시성? 병렬성? 무어의 법칙을 아는가? 인텔의 공동 창업자인 무어가 반도체가 1년에 2배씩 빨라 질 것을 예언하였고 어느 시기까지는 들어 맞았다. 하지만 발열량과 같은 물리적 한계에 부딪혔고 더이상 무어의 법칙이 적용되기 어려운 시기까지 도달하게 됐다. 하지만 컴퓨터와 같은 기기들은 계속해서 빨라졌다. 해답을 찾은 것이다. 바로 반도체 하나의 성능을 높일 수 없으니 여러개의 반도체를 사용하기로...!( 공부하다 재밌어서.. + 연관 있음 ) 동시성 컴퓨터의 코어가 하나(싱글 코어)일 때를 생각해 보자. 우리는 .. 2021. 9. 1.
[Server] REST API란? REST API 알고 쓰기 HTTP란? HTTP(Hyper Text Transfer Protocol)는 웹브라우저와 웹서버가 통신을 하기위한 통신 규칙이다. 굉장히 단순했던 HTTP는 웹의 발전으로 성능, 보안,안정성을 확보하는것이 어려워 졌다. 이러한 문제를 해결하기 위해 HTTP는 계속해서 발전해 왔다. 기존엔 메시지만 전송이 가능했었지만 이미지, 오디오, 동영상과 같은 멀티미디어 파일을 전송할 수 있는 protocol로 진화하게 됐다. 이제는 웹을 넘어서 인터넷을 지휘하는 통신 규약이 됐다. API(Application Programming Interface)란? 컴퓨터의 기능을 실행 시키는 방법 서로 정보를 교환하는 행위를 가능하게 하는 도구 REST(REpresentational State Transfer) API란? 내.. 2021. 8. 31.
[Server] APACHE와 NGINX의 특징과 차이 APACHE의 특징 Apache는 서버의 요청에 1:1로 프로세스 또는 쓰레드가 대응하는 방식 요청이 늘어날 수록 CPU와 메모리 사용량이 늘어남 프로세스가 Blocking 현상이 일어나면 요청을 처리하지 못하고 계속해서 대기하는 현상이 생김 ⇒이를 해결하기 위한 방법으로 Keep Alive를 사용. Keep Alive란 설정한 KeepAlive TimeOut 동안 접속을 끊지 않고 다음 접속을 기다리는것 즉, 한번 연결된 클라이언트와의 연결을 지속하고 있는다는 것 → Apache의 성능 향상 기대 but. 바쁜 서버 환경에서 KeepAlive On으로 설정해 놓을 경우, 모든 요청 마다 연결을 유지해야 하기 때문에 프로세스 수가 기하급수적으로 늘어나 MaxClient값을 초과 → Apache의 성능 저.. 2021. 8. 29.
반응형