ModelAttribute vs RequestParam vs RequestBody
2024. 2. 6. 22:31
CS
@ModelAttribute 1. Model의 attribute에 접근하는 메서드 메서드레벨과 파라미터 레벨에서 모두 사용이 가능하고, 두 반환값 모두 모델 객체에 바인딩이 가능하다. 2. ModelAttribute는 초기화와 바인딩 작업을 거친다. 그래서 값이 전달되지 않않아도초기화 값을 사용할 수 있다. RequestMapping은 바인딩만 하기 때문에 값이 전달되지 않으면 에러가 발생한다. 3. form 형태의 Http body 데이터와 Http Body와 requestParam를 생성자나 setter로 바인딩하기 위해 사용한다. ModelAttribute는 요청된 값이 객체의 타입과 일치하는지 검증하는 작업을 진행한다. 예를 들어 int로 요청이 들어와야 하는자리에 String값으로 요청이 들어오..
OSI 7 layer
2023. 1. 25. 17:16
CS
Application layer(L7) 응용 프로세스를 직접 사용해 일반적인 응용 서비스를 수행한다. HTTP, FTP, DNS, SMTP와 같은 프로토콜이 속한 계층 웹서버는 HTTP 프로토콜을 사용해 html 데이터를 클라이언트에 제공한다. 그 래서 APache, Nginx와 같은 웹서버도 이 계층에서 작동한다. Presentation layer(L6) 데이터의 변환, 압축 암호화가 이루어지는 계층 (JPEG, MPEG 등) 파일 인코딩, 명령어를 포장, 압축, 암호화한다. 서로 다른 통신 기기간에 다른 인코딩을 사용하기 대문에 데이터 변환이 이곳에서 이루어진다. Session layer(L5) 세션을 열고 닫고를 제공하는 메커니즘의 계층 (API, Socket) 세션 복구도 지원한다. 체크포인트를 ..
HTTP 버전
2022. 12. 21. 15:34
CS
HTTP 1.0 한 연결당 하나의 요청을 처리한다. RTT(Round Tip Time, 패킷이 목적지에 도착하고 나서부터 출발지로 돌아오기 전 까지 걸리는 시간 = 패킷 왕복시간)의 증가 TCP - 3 way handshake를 서버로부터 파일을 가져올 때마다 하기 때문에 RTT시간이 증가한다. RTT 증가를 해결하기 위한 방법 이를 이미지 스플리팅, 코드 압축, 이미지 BASE 64인코딩을 활용해 해결한다. 이미지 스플리팅 많은 이미지를 다운로드받으면 과부하가 걸려 이미지가 합쳐진 하나의 이미지를 다운받고 이를 기반으로 Background 이미지의 Position을 이용해 이미지를 표기한다. 코드 압축 코드를 압축해 개행 문자, 빈칸을 없애 크기를 최소화한다. 이미지 BASE 64 인코딩 이미지 파일을..
Garbage Collector
2022. 12. 20. 23:06
CS
GC가 필요한 이유 프로그램이 동적으로 할당했던 메모리 영역 중 필요 없게된 영역을 알아서 해제한다. 동적으로 할당한 메모리 영역 : heap 영역 필요 없게된 영역 : 어떤 변수도 가리키고 있지 않은 영역 이러한 메모리를 제대로 해제하지 않으면 Memory Leak(필요하지 않은 메모리를 점유하고 있는 현상) 이 발생하다. 자바에서는 이를 자동으로 관리해주어 메모리 누수를 방지한다. 장점 메모리 누수 방지 해제한 메모리에 접근 방지 해제한 메모리를 다시 해제하는 것을 방지 단점 GC 작업은 순수 오버헤드(어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 / 메모리 ) 작업이다. 즉, 메모리 해제 대상을 검사하고 해제하는 것은 프로그램이 자신의 일을 하지 못하도록 방해하는 요소이다. 또한 GC의 메모리..
TCP / IP 4계층에 대해 알아보기
2022. 11. 23. 20:18
CS
TCP/IP는 개발 공부를 하면 정말 정말 많이 나오는 소재중 하나입니다! 근데 볼 때마다 정말 새롭고 생소하고 어렵습니다 ㅎㅎ 그래서 이참에 조금 더 자세히 내용을 정리해볼까 합니다! 계층 구조 TCP/IP 계층은 네 계층으로 이루어져 있으며 OSI 7계층과 많이 비교되곤 합니다. TCP/IP는 어플리케이션 계층(L4, 응용 계층), 전송 계층(L3), 인터넷 계층(L2), 링크 계층(L1)으로 이루어져 있습니다. 이 계층들은 특정 계층이 변경되었을 떄 다른 계층이 영향을 받지 않도록 설계되어 있습니다. 어플리케이션 계층 어플리케이션 계층은 FTP,HTTP,SMTP,DNS,SSH 등 응용 프로그램이 사용되는 프로토콜 계층입니다. 즉, 웹서비스, 이메일 등 응용 프로그램 간에 데이터를 주고받으며 사용자에..
운영체제 구조와 원리
2022. 9. 26. 12:27
CS
운영체제란? 운영체제란 컴퓨터가 시스템 자원(CPU,메모리,I/O 디자이스)의 자원을 효율적으로 관리해주면서 동시에 여러 애플리케이션이 유연하게 동작할 수 있도록 환경을 제공해주는 소프트웨어다. 역할 1. CPU 스케줄링 프로세스 관리 CPU 소유권을 어떤 프로세스에 할당할 지 , 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리한다. 2. 메모리 관리 한정된 메모리를 어떤 프로세스에 할당해야 하는 지 관리합니다. 3. 디스크 파일 관리 디스크 파일을 어떤 방법으로 보관할 지 관리합니다. 4. I/O 디바이스 관리 I/O 디바이스들인 마우스와 키보드, 그리고 컴퓨터와의 데이터를 주고받는 것을 관리합니다. 운영체제의 부팅과정 1. 전원 켜기 메인 보드에 전력이 들어오고 이후 메인보드에 장착된 장치들 (C..
인터넷이란? 웹이란? DNS란? 웹서버란?
2022. 9. 21. 12:42
CS
인터넷이란? TCP/IP 기반의 네트워크가 전세계적으로 확대되어 하나로 연결된 네트워크들의 네트워크(네트워크의 결합체) 수많은 클라이언트 컴퓨터와 서버 컴퓨터, 그리고 이들로 구성된 네트워크들의 집합체 특징 1. 인터넷은 서로 동시에 참여할 수 있는 쌍방향 통신을 제공합니다. 2. 컴퓨터는 저장이 가능하므로 메시지를 보내는 사람과 받는 사람 모두 시간에 제약을 받지 않고 컴퓨터가 네트워크에 연결만 되어 있다면 언제든지 메시지를 주고 받을 수 있습니다. 3. 초기 인터넷에서는 텍스트로만 통신이 가능했지만 현재에는 이미지, 음성, 동영상 등 다양한 포맷으로 통신이 가능합니다. 이름 프로토콜 포트 기능 WWW HTTP 80 웹서비스 Email SMTP/POP3/IMAP 25/110/114 이메일 서비스 FTP..
2022 백엔드 로드맵
2022. 9. 21. 10:11
CS
개발자로서 기본 소양을 갖추기 위해서 아는 내용은 설명할 수 있을 만큼 다시 한번, 몰랐던 부분은 복습과 함께 다져나가기 :)