legacy
-
[운영체제] 프로세스 간에 데이터를 주고받는 방법 (Inter Process Communication)legacy/Operating System 2024. 9. 7. 19:51
프로세스 간에는 기본적으로 자원을 공유할 수 없다. 각 프로세스는 독립된 주소 공간을 가지고 있기 때문에 자신의 메모리 공간에만 접근할 수 있다. 만약 프로세스가 서로의 메모리 공간에 접근할 수 있다면 의도치 않게 데이터를 변경하거나 충돌이 발생할 수 있다.만약 프로세스 간에 데이터를 주고받고 싶다면 IPC(Inter-Process Communication) 방식을 사용해야 한다. 1. 공유 메모리공유 메모리 방식은 사용자 영역 일부를 데이터를 주고받기 위한 메모리 공간으로 사용한다. 프로세스 A는 B에게 전달하고자 하는 데이터를 공유 메모리에 저장하고, 프로세스 B는 공유 메모리에 저장된 데이터를 읽는다. 이렇게 되면 프로세스 A가 B에게 데이터를 전달한 것과 마찬가지가 된다. 공유 메모리 방식은 사용..
-
[운영체제] 프로세스의 동작 방식에 대해서 알아보기legacy/Operating System 2024. 9. 5. 13:55
1. 커널 영역과 사용자 영역커널 영역에는 프로세스 제어 블록(PCB)이 저장되고, 사용자 영역에는 실행 중인 프로세스를 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장된다.1-1. 코드 영역코드 영역은 CPU가 실행할 명령어가 담겨 있기 때문에 읽기 전용(read-only) 모드로 사용한다. CPU는 코드 영역에 담긴 명령어를 읽고 실행만 하기 때문에, 수정되어서는 안 될 공간이다.1-2. 데이터 영역데이터 영역은 프로그램이 실행되는 동안 사용할 데이터가 저장되는 공간이다. 주로 정적 변수와 전역 변수가 저장된다.전역 변수 : 프로그램 전체에서 사용 가능한 변수이다.자바(Java)는 전역 변수를 지원하지 않는다.정적 변수 : 클래스에 속한 변수로, 클래스의 모든 인스턴스가 공유하는 변수..
-
[Spring] 서블릿 컨테이너(Servlet Container) 역할legacy/Spring 2024. 9. 2. 10:35
클라이언트로부터 HTTP 요청이 발생하면 웹 서버(ex. Apache, Tomcat, Nginx, ..)로 전달된다. 서블릿 컨테이너에는 여러 요청을 처리할 수 있도록 여러 개의 서블릿이 등록되어 있다. 서블릿 컨테이너는 웹 서버로부터 HTTP 요청을 받아, 이 요청을 처리할 수 있는 서블릿으로 전달한다. 서블릿(Servlet)은 HTTP 요청을 처리하고 응답을 생성하여 웹 페이지를 동적으로 생성하는 역할을 한다. 기본적으로 init(), service(), destroy()가 정의되어 있다.HTTP 요청이 들어오면 요청을 처리할 수 있는 서블릿을 찾는다.서블릿이 처음으로 사용된다면 해당 서블릿을 인스턴스화하여 메모리에 로드한다. 이후에 init()을 호출하여 서블릿을 초기화한다. 초기화 작업은 서블릿 ..
-
JVM(Java Virtual Machine) 구조legacy/Java 2024. 8. 25. 15:43
자바의 특징 Write once, run anywhere. (한 번 작성하면 어디서든 실행된다.) 1. JVM: Java Virtual Machine JVM이란 Java 프로그램을 실행하는 가상 환경이다. 자바 가상 머신을 사용하여 자바 바이트 코드를 실행할 수 있다. JVM은 운영체제 위에서 작동하면서, 자바 컴파일러에 의해 생성된 바이트 코드를 운영체제가 이해할 수 있는 기계어로 바꿔 실행한다. 덕분에 자바 프로그램은 특정 운영체제에 종속되지 않고, 다양한 운영체제에서 동일하게 사용할 수 있다. ex) 소스 코드가 담긴 Person.java 파일이 자바 컴파일러에 의해 컴파일되면 Person.class 파일이 생성된다. 이 .class 파일에는 바이트코드가 포함되어 있고, JVM이 바이트코드를 기계어..
-
쿠키(Cookie)와 세션(Session) 방식의 개념과 차이점legacy/WEB 2024. 8. 25. 13:55
1. 쿠키(Cookie)와 세션(Session) 개념이 등장한 이유HTTP 프로토콜은 비상태성(stateless)를 가지고 있다. 이게 무슨 말이냐면, 동일한 클라이언트가 서버로 요청을 보냈을 때, 서버는 이전의 요청들을 기억하지 않는다는 것이다. 예를 들면, 메인 페이지와 로그인 페이지가 존재할 때, 로그인을 완료하고 메인 페이지로 이동하였을 때, 서버는 로그인을 했는지 알 수 없다는 것이다.사용자가 로그인을 했는지 여부를 알 수 없으므로 모든 요청마다 로그인을 해야할 것이다. 따라서 사용자의 상태를 유지하기 위해서 쿠키(Cookie)와 세션(Session)이 도입되었다. 2. 쿠키(Cookie)2-1. 쿠키(Cookie)란?쿠키란 클라이언트의 브라우저에 사용자의 상태 정보를 저장하는 데이터 파일이다...
-
토큰(Token) 방식과 세션(Session) 방식legacy/WEB 2024. 8. 20. 23:38
1. 인증(Authentication)과 인가(Authorization)인증(Authentication)은 사용자가 서비스에 등록되어 있는지 검증하기 위해 사용된다. 예를 들어, 사용자가 입력한 정보가 서비스에 등록되어 있다면 인증된 사용자라고 할 수 있다.인가(Authorization) 는 인증이 완료된 사용자가 서버에서 보호하고 있는 자원에 접근할 수 있는지 권한을 확인하는 과정이다. 먼저 인증이 되어야만, 인가 여부를 확인할 수 있다. 예를 들어, 게시판에 글을 작성하는 것은 로그인 된(인증된) 사용자(USER, ADMIN)라면 누구나 할 수 있지만, 관리자 페이지에 접근하는 것은 관리자 권한(ADMIN)이 있는 사람만 가능할 것이다. 인증(Authentication), 인가(Authorizatio..