분류 전체보기 (6) 썸네일형 리스트형 Thread에 대하여 쓰레드란? 쓰레드는 위에서 설명한 프로세스 내에서 실행되는 세부 작업의 단위이다. 여러개의 쓰레드가 모여 하나의 프로세스를 구성하며, 이 하나의 프로세스를 구성하는 여러개의 쓰레드를 멀티쓰레드라고 부른다. 쓰레드는 한번에 하나씩 밖에 동작 할 수 없으며 어떤 쓰레드가 먼저 실행이 될지는 아무도 알 수 없다. 쓰레드의 생성 주기 Thread 생성 -> Runnable -> Running -> Dead 쓰레드의 동기화 (Synchronized) 하나의 메서드 또는 동작을 여러개의 쓰레드가 한번에 사용하게 되면 프로그램이 서버리는 DeadLock 현상이 발생 하는 경우가 있다. 이런 경우를 방지하기 위해 DeadLock이 발생할 수 있는 부분에 synchronized를 이용하여 쓰레드를 동기화 시켜준다. 하나.. DTO에 대하여 DAO = Data Access Object 실질적으로 DB에 접근하는 객체이고 사용하는 이유는 효율적인 커넥션 관리와 보안성 때문이다 DAO란? 한마디로 Database의 데이터에 접근하는 트랜잭션 객체이다. 일종의 객체이다. DAO는 저수준의 로직과 고급 비즈니스 로직을 분리하고 도메인 로직으로부터 persistence mechanism을 숨기기 위해 사용한다. DAO는 DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다 사용자는 자신이 필요한 인터페이스를 DAO에게 던지고 DAO는 이 인터페이스를 구현한 객체를 사용자에게 편리하게 사용 할 수 있도록 반환해 줍니다. 이렇게 DAO를 통해서만 접근하면 다수의 원격호출을 통한 오버헤드를 VO나 DTO를 통해 줄일 수 있고.. 추상화에 대하여 추상화란 어떤 영역에서 필요로 하는 속성이나 행동을 추출하는 작업을 의미한다 일반적으로 추상화는 사물들의 공통된 특징, 즉 추상적 특징을 파악해 인식의 대상으로 삼는 행위 자바에서 추상화란 공통된 행위나 필드를 모아서 클래스를 만드는 것 캡슐화 - 정보 은닉을 통해 높은 응집도와 낮은 결합도를 갖도록 한다 - 응집도: 클래스나 모듈 안의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타낸다 - 결합도: 어떤 기능을 실행하는데 다른 클래스나 모듈들에 얼마나 의존적인지를 나타낸다 일반화 관계 - 객체지향 프로그래밍 관점에서 상속 관계라 한다 - 여러 개체들이 가진 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립 시키는 과정 - 공통된 속성이나 행위를 하나에 클래스에 모아서 상속 받아서 자식 클래스가 사용.. 프로세서에 대하여 - 중앙처리장치(CPU)는 명령어를 해석하는 컴퓨터의 한 부분이다 - 마이크로프로세서(Microprocessor)는 마이크로 컴퓨터의 한 부분이다 마이크로프로세서 또는 초소형 연산처리장치는 컴퓨터의 중앙처리 장치를 말한다. 기계어 코드를 실행하기 위해 실행과정을 단계별로 나누어 처리를 위한 마이크로 코드를 작성하고, 이 마이크로 코드에 의해 단계적으로 처리하는 논리회로를 말한다. 초기의 마이크로프로세서는 하나의 칩으로 만들어졌으나, 점점 다른 하드웨어 요소들을 집적시키는 경향이 있다. 따라서, CPU-코어라는 말로 다른 요소들과 구별한다 중앙처리장치가(CPU)가 컴퓨터 전체 시스템의 위치와 입장에서 나온 말이라면, 마이크로프로세서는 동작 방식에서 나온 말로 서로 같은 것이다. 프로세서 또는 CPU는 제어.. gRPC에 대하여 기존에는 Resful API로 개발을 하는데 통신을 주고 받을때 각 모듈별로 웹서버를 띄우는 것이 부담스럽다. 좀 더 가볍고 좀 더 빠르고 언어에 종속적이지 않고 여러가지 Application이 쉽게 메시지를 주고 받을 수 있는 방법이 없을까 할때 gRPC를 쓴다 Remote Procedure Call - 프로세스간 통신을 위한 기법 중 하나 - 다른 컴퓨터에 있는 절차를 호출할때 마치 같은 컴퓨터에 있는 것처럼 호출 할 수 있음 - 클라이언트와 서버간에 각자가 일반 로컬 메소드를 호출하는 것처럼 사용하게 하는 것 - 다양한 언어환경에 제약 없이, 플랫폼 제약 없이 사용할 수 있게 하는 것 RPC의 구성요소 - Caller / Callee는 IDL (Interface Define language)를 통하.. Spring Webflux에 대하여 Spring Webflux는 복수개의 서비스로 이루어진 분산 시스템이 정상 상황 뿐만 아니라 장애 상황에서도 일관된 동작을 보장해 주는 시스템이며 Microservice가 지향하는 방향이다 용도 - 비동기 - 논블록킹 리엑티브 개발에 사용 - 효율적으로 동작하는 고성능 웹 어플리케이션 개발 - 서비스 간 호출이 많은 마이크로서비스 아키텍쳐에 적합 개발방식 - MVC (@Controller, @RestController, @RequestMapping) - 새로운 함수형 모델 새로운 요청 - 응답 모델 - 서블릿 스택과 API에서 탈비 (Servlet API는 리엑티브 함수형 스타일에 적합하지 않음) - ServerRequest, ServerResponse 지원 웹 서버 / 컨테이너 - Servlet 3.1.. 이전 1 다음