TIL (45) 썸네일형 리스트형 HTTP - 로그인 상태 판단 HTTP는 문서 전달을 하는 것이 핵심 기능 (html)이며 Stateless 프로토콜 이다. 따라서 상태를 알기 위해 쿠키를 사용하는데 쿠키는 (Key = Value) 형태로 되어있다. HTTP는 문자열로 되어있는데 즉 가변성을 갖는다. 따라서 쿠키 값이 점점 증가하면서 header가 커지고(4KB) 쿠키를 전달하다가 실제 데이터를 전송하지 못하는 경우가 생겼다. HTTP는 Request Response 로 html, 요즘은 Json을 받을 수 있고 Server는 정보를 Database에 저장, Web은 Webclient 에 저장(cookie는 webclient)한다. *공공 와이파이 이용시 해킹* 로그인 -> Database의 정보와 일치 -> WAS가 ID/Session(쿠키에 담아 돌려줌)을 전달.. TCP/IP - OSI 7Layers [ User ] : Process : HTTP -7Layer # Application(DOD - 미국국방부) [ Kenrel ] : TCP/IP(=Socket) : Driver (컴퓨터의 HW를 제어할 수 있는 일종의 HW디바이스 드라이버) -4Layer(Transport) # DOD : Transport ; 고유식별자 Port번호 -3Layer(Network) # DOD : Network ; 고유식별자 IP주소 * TCP Scoket 이란 사용자모드 응용프로그램이 전송계층에 접근할 수 있도록 전송계층(TCP)에서 파일로 추상화 한 일종의 인터페이스를 포함하는 파일을 의미한다. [ H/W ] : NIC (네트워크 인터페이스 카드, 랜카드) - L1 # Access(DOD) ; 고유식별자 MAC TCP 송/수신 원리 - 전 편에 이어서 TCP의 전송 효율성을 최대화 하기 위한 방법 윈도우 크기 조정(Window Scaling) TCP는 윈도우 기반 흐름 제어를 사용하여 한 번에 전송할 수 있는 데이터 양을 제어한다. 송신자는 수신자의 윈도우 크기에 따라 데이터를 전송하며, 수신자는 처리할 수 있는 데이터 양을 조절하기 위해 윈도우 크기를 조정한다. 따라서 네트워크 혼잡 상태나 수신자의 처리 능력에 따라 동적으로 데이터 전송량을 조절 할 수 있다. 지연된 ACK(Delayed ACK) 수신자가 즉시 ACK를 보내지 않고, 짧은 시간 동안 여러개의 패킷을 수집한 후 하나의 ACK로 응답하여 네트워크 트래픽을 줄이는 방법이다. 네트워크의 부하를 줄이고, 효율적인 대역폭 사용을 가능하게 한다. 하지만 지연 시간이 증가할 수 있으므로 적절한 지.. TCP 송/수신 원리 송신측 (Server) 서버(web) 소켓 = file Process (RWX : read/write/excute) -> 소켓의 경우 Receive, Send(I/O) 하드디스크에 들어 있는 파일을 -> Driver -> File System으로 보낸다. 실제 파일은 1.4 MB 이더라도 서버 프로세스 메모리 사이즈를 개발자가 설정해 줄 수 있다. 예를들어 64KB로 설정을 했다면 64KB씩 끊어 읽어온다. [ TCP ] - 분해 되어 Buffer로 Copy 해온다 (= Buffered I/O) 분해된 이것을 Segment라고 한다. [ IP ] - Segment를 또 쪼개어 나누어 담는데 Packet이라고 한다. [ Driver ] [ NIC ] - L2 , Frame 으로 전송 되면서 몇 번 변경 되.. 면접 준비 14 - Java의 Exception? Java의 Exception이 처리되는 순서를 설명하시오. catch안에 exception이 또 발생하는 경우의 상황을 설명하시오 1. 예외 발생 : 프로그램이 예외 상황에 직면하면 해당 예외 발생. 2. 예외 처리 : Java는 해당 예외를 적절하게 처리하기 위해 catch블록을 찾는다. catch블록은 try블록 내에서 예외가 발생한 경우 실행 될 코드를 포함한다. 3. catch 블록 실행 : 가장 구체적인 예외 타입과 일치하는 catch블록이 실행된다. java는 catch블록을 위에서 아래로 순차적으로 확인하며, 처음으로 매칭되는 catch블록을 실행한다. 4. 다중 catch블록 : 여러 종류의 예외를 처리해야 하는 경우, 각각의 예외 타입에 대해 별도의 catch블록을 사용할 수 있다. Ja.. 면접 준비 13 - JPA N+1 문제 원인과 해결방안 #8월 1일 JPA N+1 문제 원인과 해결방안을 설명하시오 JPA N+1 문제의 원인은 객체-관계 매핑 기술인 JPA를 사용할 때 발생하는 문제다. 이 문제는 JPA를 통해 데이터베이스에서 엔티티를 조회할 때 연관관계에 대한 지연 로딩을 기본 전략으로 사용하기 때문에 발생한다. 지연로딩은 관련된 엔티티를 즉시 가져오지 않고, 해당 엔티티가 실제로 필요할 때 데이터베이스에서 조회하는 방식이다. 따라서 하나의 초기 쿼리를 실행한 후, 실제로 관련된 데이터가 필요한 시점에서 여러개의 추가 쿼리가 발생하여 N+1개의 쿼리가 실행되는 문제가 발생하게 된다. -> 연관관계가 설정된 엔티티를 조회할 경우 조회된 데이터 갯수만큼 연관관계의 조회 쿼리가 추가로 발생하여 데이터를 읽어오는 현상 1 : 한 엔티티를 조회하.. 면접 준비 12 - RDB와 NoSQL은 무엇인가요? #7월 31일 RDB와 NoSQL은 무엇인가요? 장단점 위주로 설명하시오 RDB(Relational Database)와 NoSQL은 데이터베이스의 유형으로 RDB는 테이블 형태로 데이터를 저장하며 SQL을 사용하여 데이터를 조작하고 조회한다. 반면 NoSQL은 비관계형 데이터베이스로 다양한 형태로 데이터를 저장하고, 주로 수평적 확장에 초점을 맞추어 설계되었다. RDB의 장점은 데이터 일관성과 무결성이 보장되며 SQL을 사용하여 복잡한 데이터 처리가 용이하다는 점이다. 하지만 확장성이 제한적이고 스키마 변경이 어려울 수 있다. 반면 NoSQL은 유연한 데이터 모델과 수평적 확장이 가능하여 대용량 데이터 처리에 효과적이다. 하지만 데이터 일관성을 보장하지 않는 경우가 있고, 데이터 조작을 위한 쿼리 언어가.. 면접 준비 11 - 오버로딩과 오버라이딩의 차이점? #7월 31일 오버로딩과 오버라이딩의 차이점 오버 로딩과 오버라이딩은 객체 지향 프로그래밍에서 중요한 두 가지 개념이다. 클래스 계층 구조에서 메서드의 다른 동작을 제공하는 데 사용된다. 오버로딩은 동일한 클래스나 하위 클래스 내에서 이름은 같지만 매개변수 목록이 다른 여러 메서드를 정의하는 기능이다. 오버로딩된 각 메서드는 서로 다른 매개변수들을 가져야 한다. 이를 통해 같은 이름을 가진 메서드들이 다른 유형의 데이터를 처리하거나 전달된 인자에 다라 다른 동작을 수행할 수 있게 된다. 반면에 오버라이딩은 하위 클래스에서 이미 상위 클래스에 존재하는 메서드를 새로운 구현으로 제공하는 것을 의미한다. 메서드의 이름과 매개변수의 개수와타입은 상위클래스와 하위클래스 모두 동일해야 한다. 오버라이딩은 하위 클래.. 면접 준비 10 - Stack과 Queue, Array와 Linked List #7월 27일 Stack 과 Queue 그리고 Array와 Linked List 자료구조와 차이점을 설명하시오. 스택은 데이터를 후입선출(LIFO)방식으로 저장하고 처리한다. 가장 마지막에 추가된 데이터가 가장 먼저 처리된다. 스택은 데이터를 쌓아 올리는 구조로, 메모리의 한쪽 방향으로 확장된다. 큐는 데이터를 선입선출(FIFO)방식으로 저장하고 처리한다. 가장 먼저 추가된 데이터가 가장 먼저 처리되는 것이 특징이다. 어레이는 데이터를 순차적으로 저장하는 선형 자료 구조이다. 인덱스를 사용하여 데이터에 빠르게 접근할 수 있고, 메모리 상 연속적으로 배치 된다. 배열의 크기는 선언 시에 고정 되기 때문에 크기를 동적으로 변경하기 어렵다. Linked List는 데이터와 각데이터의 다음 데이터를 가리키는 포.. 면접 준비 9 - 웹 서버와 WAS의 차이는? #7월 27일 웹 서버와 WAS의 차이를 설명하시오 웹서버와 웹애플리케이션 서버는 웹 애플리케이션 아키텍처에서 모두 중요한 구성 요소 이지만, 목적고 기능이 다르다. 웹 서버는 주로 HTTP요청을 처리하고 정적 컨텐츠(HTML, CSS, 이미지 등)을 제공하는 것이 주요 기능이다. 간단한 서버 사이드 작업도 처리할 수 있지만, 주로 클라이언트(웹브라우저)와 웹 애플리케이션 사이에서 중개 역할을 한다. 웹애플리케이션서버는 동적인 애플리케이션을 실행하는데 특화되어 있다. 서버 사이드 스크립팅을 지원하며 데이터베이스에 접속하여 비즈니스 로직을 실행하고 동적인 HTML을 생성한다. 복잡한 애플리케이션 처리와 클라이언트에 동적 컨텐츠를 제공하는데 주로 사용한다. 웹서버는 주로 정적 컨텐츠를 효율적으로 제공하는데 .. 이전 1 2 3 4 5 다음