본문 바로가기

전체 글75

[Network] TCP와 UDP, HTTP1,2,3, HOLB란? HTTP, TCP와 UDP, TCP의 연결/해제 방식인 3-way handshaking과 4-way handshaking에 대해서 알아본다. 목차 HTTP TCP UDP QUIC HOLB HTTP Hyper Text Transfer Protocol HTTP/1 한 번의 연결(Handshake)에 한 번의 요청만 처리 HTTP/2 멀티플렉싱을 사용하여 한 번의 연결(Handshake)에 여러 요청을 처리 Handshake 과정을 줄임으로써 Latency를 낮춤 HTTP/3 TCP방식을 사용하는 HTTP/1, HTTP/2와 달리 UDP방식을 사용 HTTP/2와 마찬가지로 멀티플렉싱을 지원한다. TCP 연결 지향 연속적인 데이터 전송의 신뢰성을 보장한다. 이러한 과정을 위해 서버와 클라이언트가 연결을 하거나 .. 2021. 9. 19.
[Java] String, StringBuilder, StringBuffer의 차이 자바에서 String과 StringBuilder, StringBuffer의 차이는 매우 중요하고 면접에서 자주 물어보는 단골 질문이다. 이번 포스팅에서는 셋의 차이와 각자의 특징에 대해 알아보려고 한다. String vs StringBuilder, StringBuffer String과 StringBuilder, StringBuffer의 가장 큰 차이는 값이 변경되는지, 변경되지 않는지의 여부이다. 각 객체를 수정하였을 때 실제 메모리에 어떤 변화가 있는지를 확인하면 쉽게 이해할 수 있다. 실제로 String, StringBuffer, StringBuilder가 메모리에 저장되는 방식 우선 자바에서 객체가 저장되는 방식은 위와 같다. String str = "sujinhope"에서 변수 str 은 스택에 .. 2021. 9. 12.
[Java] Java11의 특징(Feat. Java9, Java10) 이번 포스팅은 Java11의 특징. 즉, Java8 이후 Java11 까지의 대략적인 변화에 대해 정리해두었다. Java8의 특징을 알고 싶다면 이전 포스트에 정리해두었다. [Java] Java8의 특징 1. 함수형 인터페이스, Stream API, Lambda 목차 함수형 인터페이스 Stream API Lambda 참고 링크 그동안은 알고리즘이나 프로젝트를 진행할 때 Java8을 사용해 오다가 이번에 회사에서 Java11을 이용해 프로젝트를 진행하게 되었다. Java8과 Java11 beforb.tistory.com 목차 GC의 변화 - G1 GC(Garbage First GC) 도커 컨테이너의 향상된 기능 다중 릴리즈 - jar files 기타 버전별 업데이트(Java9, Java10, Java11).. 2021. 9. 6.
[Java] Java8의 특징 1. 함수형 인터페이스, Stream API, Lambda 목차 함수형 인터페이스 Stream API Lambda 참고 링크 그동안은 알고리즘이나 프로젝트를 진행할 때 Java8을 사용해 오다가 이번에 회사에서 Java11을 이용해 프로젝트를 진행하게 되었다. Java8과 Java11은 특히 변화와 특징이 많아 그동안 기술 면접에서도 종종 질문이 들어왔던 이슈인데, 이번 기회에 정리해보려고 한다. Java11의 특징은 다음 포스트에 정리해 두었다. ​ 1. 함수형 인터페이스(Functional Interface) Java8의 핵심은 함수형 프로그래밍을 지원한다는 것이다. 함수형 인터페이스를 위해서는 함수형 프로그래밍에 대해 먼저 알아야 하는데, 함수형 프로그래밍에 대해서는 좀 더 자세히 정리하고 싶어서 여기서는 간단히만 정리하고 따로 포스팅을 할 예정이다. 간단.. 2021. 8. 30.
[Java] 클래스 변수와 인스턴스 변수의 차이(static 변수와 non-static 변수) 목차 클래스 변수, 인스턴스 변수 클래스 변수, 인스턴스 변수, 지역 변수가 메모리에 적재되는 위치 클래스 변수(Static)의 주의점, 클래스 변수가 필요한 이유 ​ 클래스 변수, 인스턴스 변수 클래스 변수(Static 멤버) 클래스 내에 Static 키워드로 선언된 변수 처음 JVM이 실행되어 클래스가 메모리에 올라갈 때 ~ 프로그램이 종료될 때까지 유지 클래스가 여러 번 생성되어도 Static 변수는 처음 딱 한 번만 생성됨 동일한 클래스의 모든 객체들에 의해서 공유됨 인스턴스 변수(Non-static 멤버) 클래스 내에 선언된 변수 객체 생성 시마다 매번 새로운 변수가 생성됨 클래스 변수와 달리 공유되지 않음 아래 예제에서 StaticTest 인스턴스를 두 개 생성한 후 staticTest1의 클.. 2021. 8. 25.
[Network] 동기 vs 비동기, 블로킹 vs 논블로킹의 차이 목차 동기(Sync)와 비동기(Async) 블로킹(Blocking)과 논블로킹(Non-Blocking) 예제 - 동기+블로킹, 동기+논블로킹, 비동기+블로킹, 비동기+논블로킹 이번 시간엔 동기와 비동기, 블로킹과 논블로킹에 대해 알아보려고 한다. 이전에 동기와 비동기에 대해서 공부할 때 단순히 하나의 작업이 처리된 후에 다음 일이 처리되면 동기, 여러 작업이 동시에 처리되면 비동기라고 이해하고 있었는데, 동기와 비동기를 말 할 때 블로킹/논블로킹의 개념을 함께 이해해야 된다는 것을 알게 되었다. 그동안 내가 단순히 동기와 비동기 개념으로 이해하고 있었던 것은 엄밀히 따지자면 동기+블로킹, 비동기+논블로킹이었던 것 같다. 동기/비동기와 블로킹/논블로킹은 엄연히 다른 개념으로 한 번 짚고 넘어갈 필요가 있다.. 2021. 8. 25.
[배포] 2. Django Nginx 설정하기(feat. uWSGI) 참고링크 시작 전 처음에 백엔드 테스트용으로 실행하느라 backend.conf/backend.ini로 설정했지만 파일명을 전부 원하는대로 바꿔도 됨. ex) backend.conf -> myproject.conf / 프로젝트명.conf 등 backend.ini -> myproject.ini / 프로젝트명.ini 등 프로젝트 구조 test_aws └─ sub2 ├─ frontend# frontend project │ └─ backend# backend project ├─ manage.py# runserver 위치 ├─ .config │├─ nginx │ │ └─ backend.conf │ └─ uwsgi │├─ backend.ini │└─ uwsgi.service └─ backend └─ wsgi.py D.. 2021. 8. 24.
[배포] 1. Django EC2 배포 방법(feat. uWSGI) 참고링크 아래 링크의 내용을 바탕으로 직접 Django를 EC2에 배포해보고, 내용을 요약하여 정리해보았다. Django 서비스 AWS로 배포하기 - [3] uWSGI 연결하기 Django 서비스 AWS로 배포하기 - [1] 프로젝트 준비와 AWS 서버 대여 Django 서비스 AWS로 배포하기 - [2] github과 프로젝트 업로드 지난 포스트 까지 서버에 나의 프로젝트를 git을 통해 업로드 해보았습니 nerogarret.tistory.com TIP # ubuntu 명령어 # 참고 - https://velog.io/@devyang97/Linux-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-Ubuntu-%EC%82%AC%EC%9A%A9 $ pwd# 현재 디렉토리.. 2021. 8. 24.
[Javascript] Dayjs 사용법 정리 (Date Format, 날짜 계산하기 등) 이전 포스트에서는 자바스크립트 Date 객체로 날짜 계산하는 법과 DateFormat 지정하는 법, 주의사항에 대해 정리하였다. 현재 프로젝트에서 Date객체를 이용하여 모든 날짜를 처리하고 계산하고 있는데, 친구가 Dayjs 라이브러리라는 것을 알려주었다. Dayjs가 어떤 라이브러리인지, 사용법에 대해 구글링 해보았더니 Date객체에 비해 훨씬 포맷팅도 쉽고 생각보다 다양한 기능을 제공하기는 것 같아 한 번 정리해보려고 한다. 1. Dayjs 라이브러리란? Dayjs 라이브러리는 Javascript에서 날짜/시간을 쉽게 파싱하고 계산할 수 있도록 도와주는 Date 라이브러리이다. 용량도 7.1KB로 기존에 많이 사용하던 Moment.js 에 비해 훨씬 가벼운 경량 라이브러리이다. Moment.js를 .. 2021. 8. 20.
반응형