Back-End

·Back-End/Nginx
Nginx Nginx는 "동시접속 처리에 특화된 웹 서버 프로그램으로 Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있다. 우분투 설치 sudo apt-get update sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring ## Nginx pakage 저장소 서명키를 다운로드 하고 저장 curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null # lsb_release 명령을 통해 운영체제와 배포판 이..
·Back-End/Netty
네티서버에 필요한 요소- ChannelHandler :이 컴포넌트는 클라이언트로부터 받은 데이터를 서버측에서 처리하는 비지니스 논리를 구현. - Bootstrap : 서버를 구성하는 시동코드를 의미한다. 최소한 서버가 연결요청을 수신하는 포트에 서버와 바인당하는 코드가 있어야함. Netty networking 대표적인 추상화 클래스 1. Channel : 소켓(Socket)- Channel 인터페이스는 Socket으로 직접 작업할 때의 복잡성을 완화하는 API를 제공하고 미리정의된 클래스 계층의 루트임1-1. 종류- EmbeddedChannel- LocalServerChannel- NioDatagramChannel- NioSctpChannel- NioSocketChannel 2. EventLoop :흐름..
·Back-End/Netty
@Sharable - ChannelHandler를 여러 채널간에 안전하게 공유할 수 있도록 하는 것.
·Back-End/Netty
1. 네티 : 비동기식 이벤트 기반 네트워크 프레임 워크 Netty : 유지 관리가 용이한 고성능 프로토콜 서버와 클라이언트를 신속하게 개발하기 위한 비동기식 이벤트 기반 네트워크 애플리케이션 프레임워크 IF 최대 15만 동시 사용자가 성능 저하 없이 지원하려면? (1) 블로킹 입출력 다중연결- 각각 새로운 클라이언트 소켓마다 새로운 스레드를 할당해야함- 여러 스레드가 입출력 데이터가 들어오기를 기다리며 무한정 대기 상태로 유지될 수 있다.(리소스낭비)- 스레드가 스택 메모리를 할당해야 하는데, 운영체제마다 다르지만 스텍의 기본 크기는 64KB에서 1MB 까지 차지할 수 있다.- JVM이 물리적으로 많은 수의 스레드를 지원할 수 있지만, 동시 접속이 한계에 이르기 훨씬 전부터 컨텍스트 전환에 따른 오버헤..
·Back-End/Mybatis
Mybatis란? 개발자가 지정한 sql 저장 프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다.- JDBC에서 처리하는 코드와 파라미터 설정 및 결과 매핑을 대신 해준다.- 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO를 설정해서 매핑하기 위해 xml과 어노테이션을 사용할 수 있다. 사용법 1. xml에서 SqlSessionFactory 빌드하기 - 모든 Mybatis 어플리케이션은 SqlSessionFactory 인스턴스를 사용한다.- SqlSessionFactory 인스턴스는 SqlSessionFactoryBuilder를 사용하여 만들 수 있다.- SqlSessionFactoryBuilder는 XML설정파일에서 SqlSessionFactory 인스턴스를 ..
·Back-End/Netty
0. 공통사항- Object 타입 객체를 하나 만들었다.작업환경 : 스프링 4.2.5, netty 4.1.0final 로함/* 패키지와 임포트는 생략. (1) User.java 123456789101112131415161718192021222324252627282930public class User implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String id; private int age; public String getId() { return id; } public void setId(String id) { this.id = id; } public int getAge() { retur..
·Back-End/Netty
1. 네티의 ServerBootstrap 소켓모드 - ServerBootstrap은 논 블로킹 소켓, 블로킹 소켓, Epoll 소켓 이 있다. 1. Non Blocking Socket Mode EventLoopGroup에서 새로운 객체를 생성할 때 NioEventLoopGroup 객체를 생성한다. EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup = new NioEventLoopGroup(); 그리고 채널에서 NioServerSocketChannel.class을 설정해주면 끝. bootstrap.channel(NioServerSocketChannel.class); 123456789101112131415161718..
조슈아。
'Back-End' 카테고리의 글 목록 (2 Page)