728x90

분류 전체보기 97

[네트워크] 쓰레드, 멀티 쓰레드

프로세스?프로세스의 생성에는 많은 리소스가 소모프로세스가 생성되면, 프로세스간의 컨텍스트 스위칭으로 인해 성능 저하컨텍스트 스위칭은 프로세스의 정보를 하드디스크에 저장 및 복원하는 일메모리가 독립적으로 운영되어 데이터 공유 불가능따라서 운영체제가 별도로 제공하는 메모리 공간을 대상으로 별도의 IPC기법 적용 쓰레드프로세스보다 가벼운, 경령화된 프로세스컨텍스트 스위칭이 빠름쓰레드 별로 메모리 공유가 가능하기 때문에 별도의 IPC 기법 불필요프로세스 내에서의 프로그램의 흐름 추가 쓰레드와 프로세스의 차이점 위와 같이 프로세스는 서로 완전히 독립적, 운영체제의 관점에서 실행흐름을 구성    반면, 쓰레드는 프로세스 내에서의 실행흐름, 데이터 영역과 힙영역을 공유하기 때문에 컨텍스트 스위칭에 대한 부담이 덜하고..

네트워크 2023.06.11

[네트워크] IO 멀티플렉싱

멀티 프로세스 서버의 단점프로세스의 빈번한 생성은 성능의 저하로 이어짐멀티 프로세스의 흐름을 고려해서 구현해야 하기 때문에 구현이 쉽지 않음프로세스간 통신이 필요한 상황에서는 서버의 구현이 더 복잠해짐 이 대안은? 하나의 프로세스가 다수의 클라이언트에게 서비스를 할 수 있게 함하나의 프로세스가 여러 개의 소켓을 핸들링 할 수 있는 방법이 존재야함 --> 이것이 IO 멀티플렉싱이다멀티플렉싱은 하나의 리소스를 둘 이상의 영역에서 공유하는 것 select 함수select 함수를 사용하면 한곳에 여러개의 파일 디스크립터를 모아 놓고 다음과 같은 사항을 관찰할수 있다수신한 데이터를 지니고 있는 소켓이 존재하는가?블로킹되지 않고 데이터의 전송이 가능한 소켓을 무엇인가?예외상황이 발생한 소켓은 무엇인가? select..

네트워크 2023.06.11

[네트워크] 시그널 핸들링

시그널이란?특정 상황이 되었을 때 운영체제가 프로세스에게 해당 상황이 발생했음을 알리는 일종의 메시지 SIGALRM : alarm 함수호출을 통해서 등록된 시간이 된 상황SIGINT : CTRL+C가 입력된 상황SIGCHLD : 자식 프로세스가 종료된 상황 시그널 등록특정 상황에서 운영체제로부터 프로세스가 시그널을 받기 위해서는 해당 상황에 대해서 등록의 과정을 거쳐야함 시그널 등록의 예signal(SGICHLD, mychild);  자식 프로세스가 종료되면 mychild 함수를 호출해달라signal(SIGALRM,timeout); alarm 함수호출을 통해서 등록된 시간이 지나면 timeout 함수 호출signal(SIGINT, keycontrol); ctrl+c 가 입력되면 keycontrol 함수를..

네트워크 2023.06.11

[Spring] AOP(Aspect Oriented Programming)

aop 들어 가기 전,. 기본 용어를 알아보자! 관심사 : 애플리케이션을 개발하기 위한 구현 기능들을 지칭, 중요 기능들을 핵심 관심사라고 한다 횡단 관심사 : 여러 모듈에 걸쳐 공통적이고 반복적으로 필요로 하는 처리 내용 횡단 관심사 분리 : 횡단 관심사를 한 곳으로 모는 것, 이를 실현하는 방법을 관점 지향 프로그래밍이라 함 그래서 aop가 뭔데? AOP 관점 지향 프로그래밍 여러 비즈니스 모듈에서 공통으로 사용되는 횡단 관심사를 중심으로 설계, 개발하는 프로그래밍 기법 객체지향 프로그래밍보다 완성도 높인 프로그래밍 패러다임 예로) 회원, 상품, 배송 서비스에서 핵심 서비스가 따로 있긴 하지만 인증, 보안, 트랜잭션, 캐싱, 로깅 같은 보조 기능은 모두 필요로 한다 AOP 목적 DI는 객체 간의 결합..

Backend/Spring 2023.06.09

[Spring] Mybatis_2

저번 글에 mybatis 관련 설정을 했다 이젠 domain, dao, service, controller, mapper 코드 등을 작성한 후 관계 설정을 해주면 된다 dao 인터페이스 , dao 클래스 //MemberDAO 인터페이스 package org.tukorea.wonjoon.persistence; import java.util.List; import org.tukorea.myweb.domain.StudentVO; public interface MemberDAO { public void add(StudentVO student) throws Exception; public List readList() throws Exception; public StudentVO read(String id) thr..

Backend/Spring 2023.06.09

[Spring] Mybatis

MyBatis란? sql과 자바 객체를 매핑하는 사상에서 개발된 db 접근용 프레임워크 sql 기반으로 db 접근을 수행하는 기존 방식과 큰 규모의 애플리케이션 개발에서 발생하는 과제를 해결함 이거 왜 사용함? 장점이 뭐임? sql을 체계적으로 관리 할수 있고, 자바 객체와 sql 입출력 값의 바인딩 ->mapper 인터페이스를 통해 sql 설정 파일과 연동 ->비지니스 로직에서 mapper 인터페이스를 통해 sql문 실행 주요 컴포넌트 MyBatis 설정파일 sqlSessionFactoryBuilder : mybatis 설정 파일을 바탕으로 SqlSessionFactory 생성 SqlSessionFactory : sqlSesson 생성을 위한 컴포넌트 SqlSssion : sql 발행과 트랜잭션 관리 ..

Backend/Spring 2023.06.09

[네트워크] send&recv, readv&writev 입출력 함수

send&recv 입출력함수ssize_t send(int sockfd, const void *buf, size_t nbytes, int flags);ssize_t recv(int sockfd, void *buf, size_t nbytes, int flags);  윈도우 기반 send&recv 함수와 동일sockfd : 파일 디스크립터buf : 데이터 저장할 버퍼의 주소값nbytes : 수신 가능한 최대 바이트 수flags : 적용할 다양한 옵션 정보   send&recv 함수 옵션 옵션정보는 | 연산자를 이용해 둘 이상 동시 지정 가능그러나 옵션의 종류와 지원 여부는 운영체제에 따라 차이 있음  MSG_OOB : 긴급 메시지 전송 옵션MSG_OOB 메시지를 받으면 SIGURG 시그널이 발생, 따라서 이에..

네트워크 2022.11.29

[네트워크] 멀티캐스트, 브로드캐스트

멀티캐스트멀티캐스트 서버는 특정 멀티캐스트 그룹을 대상으로 데이터를 1회 전송1회 전송해도 그룹에 속하는 클라이언트는 모두 데이터를 수신멀티캐스트 그룹의 수는 IP 주소 범위 내에서 얼마든지 추가 가능데이터를 수신하려면 해당 그룹에 가입하면됨멀티캐스트는 연결의 개념이 존재하지 않기 때문에 UDP 소켓이 기반임  TTL(time to live)패킷을 얼마나 멀리 보낼것인가정수로 표현, 라우터를 하나 거칠 때마다 1씩 감소TTL이 0되면 해당 패킷은 소멸 send_sock(socket(PF_INET, SOCK_DRAAM, 0);setsockopt(send_sock, IPPROTO_IP, IP_MULTICAST_TTL, *, * ); 위는 멀티 캐스트 설정TTL 설정 : IPPROTO_IP옵션 이름 : IP_..

네트워크 2022.11.29

[JAVA] 상속

객체 지향의 상속 부모클래스에 만들어진 필드, 메소드를 자식클래스가 물려받음 상속의 장점 클래스의 간결화 클래스 관리 용이 소프트웨어 생산성 향상 public class Person{} public class Student extends Person{} //Person 클래스 상속 public class StudentWorker extends Student{} //Student 클래스 상속 부모 클래스 -> 슈퍼클래스로 부름 자식 클래스 -> 서브클래스로 부름 확장할 떄 extends 키워드 사용 자바 상속의 특징 클래스의 다중 상속 지원하지 않음 상속 횟수 무제한 상속의 최상위 조상 클래스는 java.lang.Object 클래스 상속과 접근 지정자 public, protected, 디폴트, privat..

Backend/java 2022.10.25

[JSP] 부록_3-2 중간고사 예상 문제 정리(~3장)

프론트엔드 기술 3가지 설명 (html, css, js)? html 웹페이지를 기술하기 위한 마크업 언어 태그를 이용해서 문서의 구조를 표현 html은 태그로 이루어진 요소로 결정된다 css 문서의 스타일을 지정하는 표준 스타일시트 언어 화면 구성이나 표현 형식 등 디자인 부분은 html 대신에 css에 위임함으로써 문서 구조와 문서 표현을 자연스럽게 분리할 수 있다 js 동적인 웹 페이지를 작성하기 위해 사용되는 언어 모든 웹브라우저들은 자바스크립트를 지원 html의 요소? 시작태그와 종료태그로 이루어진 문서의 구성요소 요소 = (시작태그 +콘텐츠 + 종료 태그) 속성: 요소에 대한 추가적인 정보를 제공 속성은 항상 시작 태그에 이름="값" 형태로 기술 블록 라인, 인라인 라인, 둘의 차이점 html ..

Backend/jsp 2022.10.23
728x90