본문 바로가기
728x90

전체 글196

[개발자면접] 객체지향이란? 객체지향 특징, 오버라이딩 오버로딩 차이점 1. 객체지향이란? 객체지향 프로그래밍(Object-Oriendted-Programming)은 프로그램을 구성하는 구성요소들을 객체라는 곳에 담아두어 상호작용을 통해서 프로그램이 동작할 수 있게 하는 것을 말한다. 절차적으로 이루어지는 절차 지향적 언어와는 달리, 구성요소들이 객체 안에 담겨있어 특정 객체만 동작하게 하거나 데이터를 처리하기 등 다양한 일을 할 수 있다. 객체지향 프로그래밍은 크게 캡슐화, 상속, 추상화, 다형성으로 나눌 수 있다. 2. 객체지향 특징? (다형성 상속 추상화 캡슐화) 1. 다형성 다형성이란 하나의 타입에 여러 객체를 대입할 수 있는 성질. 확장성 증가. (하나의 참조변수로 여러 타입의 객체를 참조할 수 있는 것 (부모타입 참조변수로 자식 타입 인스턴스 참조 가능, 반대는 .. 2022. 11. 25.
[운영체제, 개발자면접] '프로세스와 스레드 완벽 정리' 프로그램을 실행하면 OS로부터 실행에 필요한 메모리를 할당받아 프로세스가 되는데, 그 안에서 실제로 작업을 수행하는 것이 바로 쓰레드입니다. 하나의 프로세스 안에 하나 이상의 스레드가 있고, 스레드는 동시에 작업 할 수 있습니다. 1. 프로세스와 스레드 #프로세스 운영체제에서 실행중인 하나의 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스는 프로그램을 수행하는데 필요한 데이터와 메모리 등의 자원 그리고 하나 이상의 쓰레드로 구성되어 있으며, 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드이다. [ 프로세스 용어 ] PCB: 프로세스 제어 블록, 프로세스에 대한 중요한 정보를 저장 PC: 프로그램 카운터, 프로세스 실행을 위한 다음 명령의.. 2022. 11. 25.
[CS] 캐시메모리와 메인메모리 캐시메모리와 메인메모리 1. CPU에서 어떤 작업을 처리하고자 한다. 2. 가상주소에 있는 데이터를 메모리에 요청한다. 3. MMU(Memory Management Unit)이 가상주소를 물리주소로 번역한다. 4. 물리주소를 캐시(or메인)메모리에 전달한다. 5. CPU에 전달된 명령을 처리한다. 1. 캐시메모리 사용 CPU → 가상 주소 전달 → MMU → 물리 주소 전달 → Cache → 주소에 해당하는 명령어 전달 → CPU 2. 메인메모리 사용 CPU → 가상 주소 전달 → MMU → 물리 주소 전달 → Cache → 데이터 x → 메인 메모리 → 해당 명령어 블록 인출 → 명령어 블록 Cache에 저장 → 명령어 전달 → CPU 캐시메모리가 작업 처리면에서 더 빠르다. 2022. 11. 25.
[Web] 아파치-멀티 프로세스, 톰캣-멀티 쓰레드 이유는? 1. Web Server vs WAS Web Server 클라이언트가 서버에 페이지 요청을 하면 요청을 받아 정적 컨텐츠(.html, .png, .css등)를 제공하는 서버다. 더보기 클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한 처리를 한다. 클라이언트의 요청을 기다리고 요청에 대한 데이터를 만들어서 응답하는 역할 (정적 데이터)을 수행하고 정적 컨텐츠가 아닐 경우, WAS에게 전달한다. 대표적으로 Apache, Nginx가 있다. Apach 멀티 프로세스 + 멀티 스레드 스레드풀에 미리 스레드를 만들어 놓는다 클라이언트 요청 하나에 스레드 하나 대응 Apache, nginx 비교 더보기 Apache 멀티 프로세스와 멀티 스레드 스레드풀에 미리 스레드를 만들어 놓는다. 클라이언트 요청 하나에 스.. 2022. 11. 22.
[java] 자바 메모리 구조(static, stack, heap) 프로그램을 구동하기 위해서 운영체제가 메모리에 데이터 및 명령어를 저장할 공간을 할당해준다. 메모리를 효율적으로 사용하기 위해, 메모리의 구성과 특징에 대해서 이해해보자. Runtime Data Area [1] Static area || Class Area 메서드 영역, 클래스 영역, 코드 영역, 스태틱 영역으로 이루어져 있다. 하나의 JAVA 파일은 크게 필드(field), 생성자(constructor), 메소드(method)로 구성된다. 그중 필드 부분에서 선언된 변수(전역변수)와 정적 멤버변수(static이 붙은 자료형) Static 영역에 데이터를 저장한다. Static 영역의 데이터는 프로그램의 시작부터 종료가 될 때까지 메모리에 남아있게 된다. 다르게 말하면 전역변수가 프로그램이 종료될 때까지.. 2022. 11. 18.
[Network] DNS lookup 과정(DNS 동작 방식) nslookup 은 name server lookup 의 약자로, 윈도우 명령프롬프트로 name server 에 대한 정보를 확인할 수 있다. 1. 브라우저에 naver.com 을 입력하면 2. 컴퓨터의 hosts 파일에 naver.com 의 ip 주소 정보가 있는지 확인한다. *hosts 파일 : ip 주소와 hostname 을 매칭시켜놓은 텍스트 파일이며, 해당 컴퓨터 안에선 이 파일이 우선권을 갖는다. mac os 기준 hosts 파일의 위치는 /etc/hosts. /etc/hosts 파일 변경 후, dscacheutil -flushcache 명령어로 캐시를 갱신하면 바로 적용된다. 3. hosts 파일에 정보가 없으면, 컴퓨터에 있는 local DNS cache에 ip 주소가 있는지 확인한다. L.. 2022. 11. 18.
[java] RAM, HDD이란? RAM이란? 기억장치 중 하나. 주기억장치. 또 다른 기억장치로는 CPU, HDD가 있는데 CPU와 RAM은 일시적으로 데이터를 보존하고, HDD는 데이터를 영구적으로 보존한다. CPU가 일을 더 빠르게 수행할 수 있게 해준다. 하지만 휘발성 메모리. HDD는 보조 기억 장치. 그래서 RAM이 CPU가 사용할 정보들을 미리 저장해뒀다가 빨리 꺼내주는 것이다. 2022. 11. 17.
[암호화] 양방향(공개키/비대칭키, 비공개키/대칭키), 단방향 0. 양방향/단방향 알고리즘 - 양방향: 암호화된 암호문을 복호화 할 수 있는 알고리즘. 암호화/복호화 가능. (대칭키, 비대칭키) - 단방향: 암호화는 수행하지만 복호화가 불가능한 알고리즘. 암호화/복호화 불가 (Hash 방식) 1. 양방향 알고리즘 대칭키, 비대칭키 암호화, 복호화시 모두 동일한 키를 사용하고, 비대칭키(공개키)방식은 암호화 복호화에 서로 다른 키를 사용한다. a. 대칭키(비공개키) 방식: 대칭키(비공개키) 방식 : 암복호화에 서로 동일한 키가 사용되는 암호화 방식. 그래서 키를 비공개한다. 하지만 결정적으로 '키 배송'에 관한 문제가 있다. 어떻게든 송신 측에서는 수신 측에 암호 키를 전달해야만 하고, 이 키가 배송과정에서 탈취되면 아무리 뛰어난 암호화 알고리즘을 사용했더라도 평문이.. 2022. 11. 14.
SSL 인증서란? (SSL 인증서가 안전한 연결을 만드는 법, 공개키, 개인키, 세션키) 0. HTTPS 와 HTTP HTTP는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 주고 받는 메시지를 감청하는 것이 쉽다. 예를들어 로그인을 위해서 서버로 비밀번호를 전송하거나, 또는 중요한 기밀 문서를 열람하는 과정에서 악의적인 감청이나 데이터의 변조등이 일어날 수 있다. 이를 보안한 것이 HTTPS다. - HTTPS 와 SSL 웹이 인터넷 위에서 돌아가는 서비스 중 하나인 것처럼, HTTPS도 SSL 프로토콜 위에서 돌아가는 프로토콜이다. - SSL 프로토콜 SSL 프로토콜은 링크와 전송되는 데이터의 암호화 변수를 결정한다. 모든 브라우저는 SSL 프로토콜을 사용해 보안 웹 서버와 상호작용할 수 있는 기능이 있다. 그러나 브라우저와 서버는 보안 연결을 수립하기 위해 SSL .. 2022. 11. 14.
728x90