alt
Home
hungryjayy
Cancel

Spring MVC vs Webflux

Spring MVC 동기식 처리방식. 멀티 스레드 환경 Spring boot에서의 일반적인 모습 기본적으로 client로 부터 요청이 들어오면 queue를 통한다.(WAS의 대기열?) Thread pool이 수용할 만큼만 처리하고 나머지는 queue에서 대기한다. Resource를 줄이기 위해 Thread는 성능에 맞게 최대치를...

DBCP(DB 커넥션 풀)

: Thread pool과 같은 맥락. 디비 커넥션을 pool에 미리 만들어두고 재사용하기 위한 방법 커넥션을 관리하는 캐시 or 기법 매 요청마다 쓰레드를 생성 삭제하면 비용이므로 WAS(tomcat)에 thread pool을 두고 재사용하는 방법과 같음 마찬가지로 DB connection이 있을때마다 커넥션 객체를...

Was vs Web Server(nginx, apache)

Was(Web application server) 사용자 요청에 맞게 동적인 컨텐츠를 전달 Web server + Web container DB 서버가 같이 수행 비즈니스 로직 처리 Node.js 서버, Spring boot 서버가 여기에 해당. 정확하게는 node의 express, 서블릿을 지원해주는 To...

IaaS, PaaS, SaaS

: 인프라, 플랫폼, 소프트 웨어의 형태로 클라우드 컴퓨팅을 제공하는 것 클라우드 : 기존 온프레미스 환경에서 기업 각각이 IT 인프라를 관리하고 책임졌다면, 클라우드 환경에서는 더 중요한 사안(어떠한 서비스를 제공할 지) 만 신경 쓰고, 인프라에 관한 것을 클라우드에 맡김 각각이 지원해주는 정도와 비용이 위와 같이 다르기 때문에 적절...

외부 정렬(External sort)

: 정렬해야하는 목적 데이터의 양이 큰 경우 사용한다. “메인 메모리의 양이 100MB인데, 정렬해야 할 데이터가 10GB이면 어떻게 해야하는가?” “한 줄에 한 문자열이 쓰여있는 텍스트 파일인데 이게 20GB이다. 어떻게 할 것인가?” 위와 같은 경우에 사용될 수 있는 것이 외부 정렬이다. 내부 정렬의 경우 일반적으로 성능 좋다고 ...

커널모드 vs 유저모드

: 중요 자원 관리를 위해 자원에 대한 접근 권한을 다르게 갖도록 모드를 두개로 나눈 것 유저모드 제한적인 접근 권한을 갖는다.(하드웨어 접근 불가) 애플리케이션 코드 실행(새로운 프로세스 실행) 시스템에 영향을 주는 악의적인 명령을 수행하지 못하도록 막는다. 유저모드 특권 level을 갖는다. 커널모드 컴퓨터 내 모...

네트워크의 성능

: 네트워크의 객관적 성능 측정은 시스템 설계의 지표로 활용될 수 있다. 대역폭 단위 시간에 전송할 수 있는 데이터의 최대치 (최대 능력). 보통 초당 비트 or 초당 기가바이트로 이야기 처리량 단위 시간에 실제로 전송된 데이터 양 데이터 압축 등의 방법으로 향상 가능 지연 시간(latency) 데이터 ...

커널(Kernel)

커널이란? : 컴퓨터의 운영 체제의 핵심이 되는 컴퓨터 프로그램의 하나. 운영체제 중 항상 필요한 부분이 메모리에 상주하게 되는데, 이 것이 커널이다. 보호(보안): 결함이나 악의적인 행동으로부터 하드웨어를 보호해준다. 프로세스 협동(자원관리): 프로세스간 협력을 위해 IPC(Inter process communication...

실제 사용되는 sort() 알고리즘

: 일반적으로 시간 복잡도를 기준으로 sort 알고리즘의 성능을 판단하지만, 실제로는 지역성이나 실 데이터의 분포 등 고려할 것들이 많다. 언어마다 default로 사용하는 sort들이 정해져있다. C++: Intro sort : c++의 std::sort 로 사용되는 Intro sort는 퀵 정렬, 삽입 정렬, 힙 정렬로 이루어져 있다. ...

Transaction과 격리수준

: 데이터베이스에 접근해 로직을 처리하는 하나의 논리적 단위 Transaction의 네가지 성질 (ACID) 원자성(Atomic): 트랜잭션은 오직 커밋 or 롤백된다. 일부만 성공하는 것은 없다. 일관성(Consistent): 일관성 있는 DB.(data integrity 만족). String이던 데이터가 갑자기 Date타입으로 변경...