본문 바로가기
728x90

분류 전체보기143

[모든 개발자를 위한 HTTP 웹 기본 지식] 8. HTTP 헤더 2 - 캐시와 조건부 요청 캐시의 기본 동작 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비쌈 (pc의 메모리나 하드디스크에 비해 상대적으로) 브라우저의 로딩 속도가 느리다. 이로 인해 느린 사용자 경험이 발생한다. 캐시 적용 이렇게 캐시를 적용하게 되면, 일정 시간 동안 같은 요청을 보낼 때, 네트워크를 통해서 결과를 받아오지 않고, 브라우저 캐시에 접속해서 결과를 받아오기 때문에 이 과정에서 시간이 크게 단축된다. 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험을 만들어준다. 웹 브라우저 이용시 한 번 들어갔던 사이트를 재방문할 때 매우.. 2022. 12. 26.
[Java] 자바 공부 - 4, package란? C++나 여타 다른 언어에서 프로젝트를 폴더에 나눠 관리하는 방식으로 코딩을 많이 진행했는데, 이번에 자바를 공부하니 패키지라는 단위로 소스 코드들을 나눠 관리하는 방식을 처음 접하게 되어서 공부 목적으로 자바 패키지에 대해 정리해보려 합니다. Java Package란? 자바 패키지(Java package)는 자바 클래스들을 여러 namespace로 정리하며, 소속된 각 class에 대해 고유한 namespace를 제공한다. 동일한 package 내의 class들은 서로의 package-private 및 protected 멤버들에 접근할 수 있다. 자바 패키지는 jar 파일이라는 압축 파일에 저장할 수 있으며, 클래스들을 하나씩이 아닌 묶음으로 더 빠르게 다운로드할 수 있다. - 위키백과 (자바 패키지).. 2022. 12. 26.
김영한님의 [모든 개발자들을 위한 HTTP 웹 기본 지식] 강의 후기!! 모든 개발자들을 위한 HTTP 웹 기본 지식 후기! 오늘 2022년 크리스마스를 기준으로 "모든 개발자를 위한 HTTP 웹 기본 지식" 강의를 다 듣게 되어서 후기를 간단하게 남겨보려 합니다! 사실 학부 과정 4학년에 올라와서 백엔드 개발자를 지망하여 공부를 시작하고 팀 프로젝트를 진행하면서, 개발 과정에 필요한 네트워크 지식이 너무 부족하다는 것을 절실하게 느끼고 있었습니다.. REST API 자체에 대한 개념도 지난 카카오 2차 코딩테스트를 준비하면서 알게 되는 등.. 부족함을 느끼던 찰나에 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런... www.inflearn.com.. 2022. 12. 25.
[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더 1 - 일반 헤더 HTTP message 중에서도 header에 대한 간단한 복습 header-field = field-name":" OWS field-value OWS (OWS는 띄어쓰기 허용을 의미) field-name에는 대소문자 구분이 없다. HTTP header 용도 HTTP 전송에 필요한 모든 부가 정보를 담는 부분이다. 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등.. 표준 헤더가 너무 많다. 필요시 임의의 헤더 추가가 가능하다. helloworld: hihi 이런 식으로? 과거의 HTTP 헤더 분류 General 헤더: 메시지 전체에 적용되는 정보, 예) Connection: close Request 헤더: 요청 정보, 예) User-Age.. 2022. 12. 25.
좋은 객체 지향 프로그래밍이란? 객체 지향 프로그래밍의 정의? 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. (협력) 객체 지향 프로그래밍은 프로그램을 유연하고 변경에 용이하게 만들기 때문에, 대규모 소프트웨어 개발에 많이 사용된다. 유연하고 변경에 용이하다는 것의 의미란? 레고 블록을 조립하듯이 키보드, 마우스를 갈아 끼우듯이 컴퓨터 부품을 갈아 끼우듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법을 말한다!! 그것이 바로 다형성을 의미한다!! 다형성의 실세계 비유 실세계와 객체 지향을 1:1로 정확하게 매칭하기에는 무리가 있음 그래도 비유를 하는 것이 .. 2022. 12. 24.
좋은 객체 지향 설계의 5가지 원칙 (SOLID) SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리했다. SRP: 단일 책임 원칙 (single responsibility principle) OCP: 개방-폐쇄 원칙 (open/closed principle) LSP: 리스코프 치환 원칙 (Liskov substitution principle) ISP: 인터페이스 분리 원칙 (Interface segregation principle) DIP: 의존 관계 역전 원칙 (Dependency inversion principle) SRP 단일 책임 원칙 - single responsibility principle 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수도 있고, 작을 수도 있다. 문맥과 .. 2022. 12. 24.
728x90