일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- springboot
- GC
- resilience4j
- feign
- closeable
- 동작방식
- zipWith
- Hotspot VM
- 날짜쿼리
- 람다표현식
- jvm
- try-catch
- jetbrain
- optional
- 4-way-handshake
- AutoCloseable
- 코딩테스트
- circuitbreaker
- tcp
- n+1
- java
- execution engine
- Class Loader
- try-with-resources
- intelij
- webflux
- Kotlin
- wagon-ssh
- try-catch-finally
- Runtime data area
- Today
- Total
JuBin's personal study blog
[이직준비] 면접시 예상 질문 리스트 본문
[네트워크 분야]
TCP란 무엇인가?
- 네트워크 OSI 7계층에 전송계층(4 Layer)에 위치함.
- 클라이언트는 서버가 보낸정보를 제대로 받았는지 확인 해주고 다시 메세지를 서버에게 전달하여 전달 받지 못할때 재 전송을 서버에 요청 할 수 있다.
- 3 handshaking 방식을 사용함
UDP란 무엇인가?
- 네트워크 OSI 7계층에 전송계층(4 Layer)에 위치함.
- TCP와 다르게 단방향 통신이다.
- 전송을 보장하지 않는다.
- 오디오 및 비디오 스트리밍과 같은 통신에 적합
OSI 7계층
7 - 응용 | DHCP, DNS, FTP | 사용자가 네트워크에 접근할 수 있다. |
6 - 표현 | JPEG, MPEG, SMB, HTTP | 운영체제의 한부분으로 입력 또는 출력되는 데이터를 하나의 표현 형태로 반환한다. |
5 - 세션 | SSH, TLS | 통신 세션을 구성하는 계층으로 포트연결이라고 할 수 있다. |
4 - 전송 | TCP, UDP, ARP | 전체 메세지를 발신자 대 목적지간 제어와 에러를 관리한다. |
3 - 네트워크 | IP, ICNP, IGMP | 다중 네트워크 링크에서 패킷을 발신자로부터 목적지로 전달할 책임을 갖는다. |
2 - 데이터링크 | MAC, PPP | 오류없이 한 장치에서 다른 장치를 프레임을 전달하는 역할 |
1 - 물리 | Ethenet,JRS-232C | 물리적 매체를 통해 비트흐름을 전송하기 위해 요구되는 기능들을 조정 |
L2 역할
Ethenet은 Brodcast방식이다. 그러기 때문에 IP정보/경로정보를 지속적으로 추적하여 패킷을 목적지로 전달, MAC Address기반 스위칭
[OS 분야]
프로세스
실행중인 프로그램에 대한 인스턴스를 프로세스라 한다. 프로세스를 공유하는것은 아니다. 프로세스는 운영체제로부터 주소공간, 파일, 메모리 등을 할당받는다.
스레드
프로세스내에서 동작되는 여러 실행의 흐름으로, 프로세스 내의 주송공간이나 자원들을 대부분 공유하면서 실행된다.
32비트와 64비트 차이
32비트의 2의 32제곱이므로 0에서 4,294,967,286까지 저장될 수 있다. 64비트는 2의 64제곱이므로 18,446,744,073,709,551,616까지 저장
2의 32제곱 만큼 더 단위로 저장 단위로 처리할 수 있다.
[HTTP 분야]
HTTP의 정의
Hypertext Transfer Protocol은 인터넷상에서 데이터를 주고받는 서버/클라이언트 모델 따르는 프로토콜이다.
HTTPS란
- HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다.
- HTTPS의 기본 TCP/IP 포트는 443이다.
HTTPS단점
- https암호화를 통해 웹서버에 부하가 생긴다.
- verisign같은 업체에서 비싼 인증서를 사야한다.
URI
URI를 이용하여 자원의 위치를 찾는다. = URI의 자원의 위치를 알려주기 위한 프로토콜
Method
- Get : 정보를 요청하기 위해 사용
- Post : 정보를 삽입하기 위해 사용
- Put : 정보를 업데이트하기 위해 사용
- Delete : 정보를 삭제하기 위해 사용
- Head : 헤더정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인
- Options : 서버가 지원하는 메소드 종류를 요청한다.
- Trace : 클라이언트의 요청을 그대로 반환한다. echo서비스로 서버상태를 사용하기 위한 목적으로 사용함
Request Hader 구성
- Accept : 응답으로 받고 싶은 미디어 타입을 명시하기 위해 사용
- Accept-Charset : 응답으로 받고 싶은 캐릭터셋에 대하여 명시하는
- User-agent : 현재 요청을 보낸 Agent의 정보를 표시하기 위해 사용
- Referer : 해당 요청을 보내기 바로 직전에 참조하던 리소스 혹은 주소에 대한 정보를 나타내기 위해 사용
- Content-Length : 요청과 응답 메세지의 엔터티 바디의 크기
- Last-Modified : 해당 리소스가 마지막으로 갱신된 시간을 나타내기 위해 사용
Response 구성
- HTTP 버전 /응답상태코드
- Header
- 응답내용
Response Hader (추가내용)구성
- Retry-After : 현재 리소스가 사용 불가능한 상태일때 언제 가능한지 여부
- Server : 서버 애플리케이션의 이름과 버전
- Title : 무서에서 주어진 것과 같은 제목
- Warning : 경고 메세지
Response 상태코드 (https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C)
- 200 : 성공
204 : 요청 정상처리 하였지만, 돌려줄 리소스가 없음 - 300 : 리디렉션
301 : 요청된 리소스에는 새로운 UIR가 지정되어 있기 때문에, 이후 새로운 URI로 사용하라고 알려줌 - 400 : 클라이언트 에러
403 : 접근 금지 응답
404 요청한 리소스가 없음 - 500 : 서버 에러
503 : 서버가 일시적으로 요청을 처리할 수 없음.
504 : 서버 시간 초과됨
REST란
네트워크 시스템 아키텍처 스타일이다. 아래는 기본 규칙이다.
- URI정보의 자원을 표현해야한다.
- 자원에 행위는 HTTP Method(GET, POST 등)으로 표현한다.
REST특징
- Stateless : Statelessness
REST의 가장 큰 장점중 하나이다. 이전 이후에 대한 직접적인 정보가 필요없이 직관적인 오브젝트에의 접근으로 서비스를처리한다. 서비스의 자유도 또한 높아지고 로드밸런싱 등의 유연한 아키텍처의 적용이 가능하다. - URI 이용
유일하고 직관적인 URI를 통해 접근하도록 한다. - HTTP메소드 사용
- Connectedness
연결성이란것이 서비스내에 하나의 리소스가 다른 리소스들간의 관계에 의해 표현될수 있다.
REST 장/단점
- 장점
REST를 별도의 지원하는 도구나 프레임워크 없이 구현이 가능하다. - 단점
표준이 없는게 단점이다.
CRUD만으로 표현이 불가능한 서비스들이 많기 때문에 많은 고민을 해보고 해야한다. - REST여러운점
CRUD만으로 모든 행위를 표현할 수 없다. 그래서 의미를 바꾸어 표현해야 되는 어려움이 있다.
Web Server
- html등의 네트워크망에 종속되지 않고, 웹서비스를 할 수 있는 애플리케이션
- HTTP를 통해 웹브라우저에서 요청하는 HTML문서나 오브젝트(이미지 등)전송해주는 서비스
WAS
- 트랜잭션, 보안, 트래픽관리, DB커넥션 풀, 사용자 관리 등을 다양하게 제공하는 s/w를 의미한다.
- 웹서에서 화면을 동적으로 보여주기 위해 여러가지 로직이 들어가게 되는데 한 서버에 로직이 집중되면 무거워지고 속도 및 보안에 문제가 생김. 그래서 화면에 뿌려주는 로직은 웹서버에서 실제 로직은 WAS로 분담의 역할을 한다.
Web Server 와 WAS 분리의 장점
- 장점
- 기능을 분리하여 서버 부하방지
- 물리적 분리 보안강화
- 여러 대의 WAS를 연결가능(로드밸런싱의 역할 및 falil over , fall back 처리에 유리)
Fail over : 시스템 대체 작동, 즉 주 시스템이 작동이 정지되면 예비 장비가 자동으로 대체 작동함
Fail back : 재난이나 지정된 유지보수 기간 후 서비스를 정상 상태로 돌리는 프로세스
[객체지향]
특성
- 상속성 : 상위 클래스에서 정의한 속성을 재사용 확장하여 개발속도를 개선시키는 개념
- 다형성 : 같은 이름의 함수 호출에 대하여 각 객체에 따라 다른 동작을 할 수 있도록 구성하는 방법
- 은닉성 : 데이터의 훼손 방지 및 보안을 위해 외부 클래스의 접근을 제한하는 특성
- 캡슐화 : 클래스의 내부 정의에 대해 외부에서 볼 수 없도록 하기 위한 특징.
[Java 분야]
Primitive Type
int, long, short, float, double, boolean byte char
Call by value : 값의 의한 호출
값이 바뀌지 않음
Call by reference : 값의 의한 호출
값이 바뀜
접근제어자의 종류와 특성
- public : 접근제한이 전혀 없다.
- protected : 같은 패키지 내에서, 다른 패키지의 자손클레스에서 접근이 가능하다.
- default : 같은 패키지 내에서 접근이 가능하다.
- private : 같은 클래스 내에서만 접근이 가능하다.
객체의 직렬화
JVM 힙 영역에 존재하는 객체를 한줄로 늘어선 바이트의 형태로 만드는 것을 객체의 직렬화 라고 부름, 객체의 형태로 복원하는 직업을 역직렬화라고 한다.
스레드
하나의 프로그램에서 여러개의 실행 흐름을 두는것
상속 : Thread 클래스
구현 : Runnable 인터페이스
static
- static 키워드가 붙은 변수나 메서드들은 인스턴스를 생성할 필요 없이 자동으로 메모리에 할당하는 기능이다.
- 메소드나 클래스 간의 변수나 메소드를 공유할 수 있다.
제네릭
클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법이다.
- jdk 1.5 버전에서 도입
- 코드의 간결성 향상
- 타입의 안정성을 높여줌
Properties
Map의 일종이지만 key나 value로 문자열을 다룰때 주로 사용
Servlet lifecycle
출처: https://pangyo-dev.tistory.com/5?category=689676 [동네개발자]