질문https://github.com/n30v364/wanted-preonboarding-information-security-june GitHub - n30v364/wanted-preonboarding-information-security-juneContribute to n30v364/wanted-preonboarding-information-security-june development by creating an account on GitHub.github.com 1 시스템 보안의 기본 원리는 무엇인가요? 2 시스템 취약점을 어떻게 식별하나요? 3 리눅스 시스템에서 덤프 파일을 생성하는 방법에는 무엇이 있는지 설명하세요. 4 서버 취약점 점검을 한다고 했을 때, 가장 먼저 무엇을 어떻게 할 건가요? ..
서론객체 지향의 특징 4가지를 정리할 예정입니다.1. 캡슐화2. 추상화3. 상속4. 다형성 객체 지향과 캡슐화가 무엇인지는 이전 글에 작성했습니다.https://langeasy.tistory.com/106 [Java] 객체 지향 언어의 특징 - 캡슐화(Encapsulation)서론객체 지향의 특징 4가지를 정리할 예정입니다.1. 캡슐화2. 상속3. 다형성4. 추상화 우선 캡슐화 설명에 들어가기에 앞서 객체 지향이란 무엇일까? 객체 지향이란? from 객체 지향의 창조자 :langeasy.tistory.com 캡슐화를 공부했으면 아시겠지만, 캡슐화를 했기 때문에 추상화, 상속, 다형성이라는 특징을 쓸 수 있는겁니다.특징 4가지가 모두 유기적으로 연결되어있어 그말이 그말 같지만보면 볼 수록 유연한 프로그..
서론객체 지향의 특징 4가지를 정리할 예정입니다.1. 캡슐화2. 추상화3. 상속4. 다형성 우선 캡슐화 설명에 들어가기에 앞서 객체 지향이란 무엇일까? 객체 지향이란? from 객체 지향의 창조자 : 엘런케이딱딱하게 받아들일 개념은 "소프트웨어를 개발 할 때 객체(Obejct) 중심으로 생각한 뒤 해당 객체를 어떤 기능(함수), 특성(데이터)들을 갖추고 있는지 등 모델링하고 재사용할 수 있기 위해 모듈화(기능을 세분화하는 것)하는 것" 입니다. 그러나 객체 지향의 창조자인 엘런케이의 말을 들어보면 조금 더 부드럽게 받아들일 수 있습니다.(참고로 엘런케이 曰 이라고 쓰여있는 부분은 실제 엘런케이가 말한 내용인지 확실한 팩트체크는 없습니다.) 우연히 유투브를 보다 "객체 지향의 본질"이라는 영상을 보게 됐..
이전에 알고리즘을 학습 할때 공부했고 코딩테스트 문제에도 자주 나오는 DP 알고리즘이지만솔직히 크게 와닿지 않아서 기록을 하지 못했다. 'dp 대충 어떻게 쓰는지는 알겠는데 Memoization, Tabulation이 뭔데?' '뭐가 그렇게 차이가 있는건데?' 필자는 무언가 언어적으로 이해가 되지 않으면 잘 와닿지 않는 사람이라..대충 넘겨서 dp를 완벽히 정복하지 못했던 것 같다. 그리고 남들 다 예시로 쓰는 피보나치 수열로 대충 쓰고 싶지 않았다.ㅎ.. 복붙인 것 같은 글들 피로해~ 그러나 어느 분께서 정말 DP를 자세하게 써주셔서 이제 누군가 DP를 나에게 물어보면 대답할 수 있을 정도로 이해했기에 기록해본다. (ThanksTo > https://cdragon.tistory.com/entry/Alg..
이전에 운영체제의 역할 중 하나가 CPU 스케줄링과 프로세스 관리 인 것과 프로세스, 스레드 그리고 멀티 프로세스, 멀티 스레싱 등 학습했다. 그럼 CPU(자원)이 하나일 때 여러 프로세스가 해당 자원을 필요로 할때 운영체제가 어떻게 관리를 할까? CPU 스케줄러 CPU 스케줄러: CPU 스케줄링 알고리즘에 따라 프로세스에서 해야하는 일을 스레드 단위로 CPU에 할당시켜주는 것 즉, CPU 스케줄러를 통해 여러 개 중 어떤 프로세스에 CPU를 배정할지 결정한다. 이것은 컴퓨터 시스템의 효율에 직결되는 중요한 일이다. CPU 스케줄링 알고리즘 프로그램이 실행될 때 CPU 스케줄링 알고리즘을 통해 어떤 프로그램에게 CPU 소유권을 줄 것인지 결정된다. 이 알고리즘은 다음과 같은 목표로 CPU 스케줄러를 사용..
멀티 프로세싱 멀티 프로세싱: 하나의 시스템에서 여러 개의 프로세서(Processor: CPU) 사용하여 동시에 일을 수행하는 방식 -> 하드웨어 관점으로 여러 개의 프로세서로 작업을 처리하는 것을 의미 여러 개의 프로세서가 동시에 작업을 처리하므로, 전체적인 처리 속도가 빨라진다. (병렬성) 좌 - 여러 개의 CPU(프로세서)로 한가지 작업에 대해 병렬적으로 수행 우 - 여러 개의 CPU(프로세서)로 여러 가지 작업에 대해 병렬적으로 수행 더보기 멀티프로세싱과 주로 언급되는 것은 멀티 태스킹이다. 멀티 태스킹이란? 단일 CPU에서 여러 개의 작업을 동시에 처리하는 것 처럼 일을 수행하는 방식 더보기 멀티 프로세스와 멀티 프로세싱에 대한 개념의 차이는 어디에 집중하느냐에 대한 관점의 차이인것 같음. 단순..
운영체제란? 운영체제(OS, Operationg System) : 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스 주요 운영체제: Window, UNIX 계열 OS(리눅스), MacOS 더보기 펌웨어(Firmware) - 운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없는 것 운영체제의 역할과 구조 운영체제의 역할 CPU 스케줄링과 프로세스 관리 - CPU 소유권을 어떤 프로세스에 할당할지(CPU 스케줄러) - 프로세스의 생성과 삭제 - 자원 할당 및 반환 관리 메모리 관리 한정된 메모리를 어떤 프로세스에 얼마나 할당해야하는 지 관리 디스크 파일 관리 디스크 파일을 어떠한 방법으로 보관할지 관리 I/O 디바이스 관리 I/O 디바이스(마우스, 키보드 등)와 컴퓨터 간에 데이터 주고 받는 것 관리 운영..
Builder Parttern이란?Builder Pattern은 디자인 패턴의 종류(생성, 구조, 행동) 중 생성 디자인 패턴에 속한다.객체를 만드는 방법이 여러 가지 일때, 즉 옵션이 많은 객체를 만들어야할 때 사용함 Builder Pattern을 쓰는 이유 (== 기존 개발 형태에 대한 문제점)?만일 집(아파트가 아닌 독립 주택)이라는 클래스가 있다고 하자. 해당 집에는 지붕, 방, 창문, 화장실, 마당, 발코니 등 여러 요소가 있고 할때 이를 클래스로 구현하면 다음과 같다. public class House { private int rooms; private int toilets; private int windows; private int floors; private boolean hasB..
예전에 HTTP 프로토콜에 대해서 학습하고 기록으로 남기고 싶어서 포스팅 해놓았는데 오늘은 인터넷 계층인 IP 프로토콜에 대해서 정리해보겠다. 그전에 다시한번 프로토콜에 대해서 한 번 더 짚고 넘어가보자! 프로토콜 서로 다른 시스템에 있는 개체간에(= 서로 다른 디바이스 간에) 성공적으로 데이터를 전송할 수 있도록 정해둔 통신 규약프로토콜은 계층적인 구조로 정의되어있고, 계층별 역할이 구분됨 OSI 7계층 layer들과 TCP/IP계층 layer가 존재함 OSI 7계층은 이상적인 모델이며 TCP/IP는 실제 디바이스간에 데이터 전송이 구체화된 모델이다. OSI 7계층: - 장비개발 참조용 - 실제 통신용 프로토콜 - 문제해결 참조용 - 유지보수 참조용 - 학습 참조용 TCP/IP 계층: 실제 통신용 프로..
Observer Pattern(옵저버 패턴)이란?Observer Pattern은 디자인 패턴(생성, 구조, 행동) 중 행동 디자인 패턴에 속한다.주체가 어떤 객체(subject)의 상태 변화를 관찰 하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴이다. 이런 변화를 알려주는 과정에서 흔히 객체가 발행자(publish) 옵저버가 구독자(subscribe)로도 알려져 있으며 이는 객체와 옵저버가 1:N관계를 가지며 분산 이벤트 시스템을 구현하는 데 이용하기도 한다. 물론 이렇게만 읽으면 크게 와닿는게 없다..! 그래도 저기서 bold처리한 객체와 옵저버가 존재하고 객체(subject)의 상태변화가 있을 때마다 옵저버가 알게되어야 하는 상황이라면 ..