전체 글

나만의 기록... 까먹지말자...
· Spring
1. 연동 이유 및 사용했던 부분에 대한 내용 정리 회사 내부의 래거시 시스템인 근태 관리 시스템 고도화 개발중 사용자의 근무 시간 및 근무 정책에 따라서 동적으로 근무 정보를 표현하는 부분이 존재했다. 관리자가 정책 변경 또는 사용자가 근무 시간을 변경 (초과 근무, 휴가, 출장등) 을 신청 하고 결재하게 되면 사용자의 스케줄이 변하게 되고 해당 사용자 별로 각각의 유동적이 스케줄을 가지게 됩니다. 근무 정보를 구할때, 사용자 정보, 신청 정보, 이미 정산이된 근무량 등등(...😱) 너무 많은 데이터를 조합해서 근무 정보를 구해야한다. 고객사의 기준으로 년 단위 조회 또는 구축이 된지 오래된 고객사의 경우는 조회가 너무 느려지는 이슈가 발생을 하면서 방법을 찾기 시작했다. 쿼리 튜닝, DB 인덱스 추가..
· CS
⚡네트워크란? 기본 정의 정의로는 Net + Work의 합성어로 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미한다. 쉽게 말하면 두대 이상의 컴퓨터들을 연결하고 서로 통신할 수 있는 것이라고 정의할 수 있다. ⚡프로토콜 각 컴퓨터는 통신을 통해서 데이터를 주고받는 형식을 정할수 있었는데 A 컴퓨터에서 보내는 데이터를 제목, 날짜, 형식, 내용 순서로 보냈지만, B 컴퓨터에서는 제목, 내용, 날짜, 형식으로 받도록 하다보니 서로의 통신 내용을 이해하는데 어려움을 격게 되었고, 이때 주고 받는 데이터를 어떻게 할 것인지 정하게 되었다. 이러한 약속된 데이터 형식을 프로토콜이라고 부르게 되었다. ⚡허브 두대의 컴퓨터를 1:1로 연결할 때는 직접 연결을 해서 사용하면 된다. 하지만 엄..
· CS
HTTPS는 Hyper Text Transfer Protocol Secure Socket layer의 약자 ⚡등장 배경 HTTPS(HTTP Secure) 의 경우 HTTP/1.1이 개발되고 얼마 뒤에 등장했다. HTTP 자체는 암호화되지 않은 텍스트로만 통신하기 때문에 중간에 누군가 통신내용을 가로채거나 사용자의 정보를 탈취할 수 있는 문제점이 있기 때문이다. 이를 방지하기 위해서는 HTTP 통신에 신뢰성과 무결성을 추가할 필요를 느끼게 된다. HTTPS는 이문제를 대화상대가 서로 자신이 신뢰할 수 있음을 증명하는 인증서를 사용하고 통신내용은 SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security) 라는 프로토콜로 암호화하는 방식으로 해결했다. ⚡SSL, T..
· CS
⚡프로세스(Process)란? 프로세스는 운영체제에서 실행 중인 프로그램을 말한다. 간단히 말해, 컴퓨터에서 실행 중인 프로그램이 하나의 프로세스이다. 프로세스는 각자의 가상 메모리 공간을 할당 받아 실행되며, 서로 독립적으로 실행된다. ⚡스레드(Thread)란? 스레드는 프로세스 내에서 실행되는 작은 작업 단위이다. 프로세스는 여러 개의 스레드를 가질 수 있으며, 각 스레드는 프로세스의 가상 메모리 공간을 공유한다. 이 때, 각 스레드는 다른 스레드와 독립적으로 실행되지 않으며, 프로세스 내의 자원을 공유하게 된다. ⚡프로세스의 특징 프로세스는 운영 체제에서 실행되는 실행 단위로, 다음과 같은 특징을 가지고 있다. 자원의 독립성: 프로세스는 운영 체제로부터 자신만의 주소 공간, 스택, 레지스터, 파일 ..
· CS
⚡HTTP 진화 과정 페이지를 열고, 개발자 도구에서 네트워크 탭을 통해서 확인한 프로토콜의 정보이다. (어떤 페이지에서든 확인 가능) 위 사진의 프로토콜 컬럼을 보면 http/1.1, h2, h3 를 확인할 수 있다. 이는 각 통신이 HTTP/1.1, HTTP/2, HTTP/3 을 이용했다는 것을 알 수 있다. 여기서의 의문점은 하나의 웹 페이지에서 서로 다른 버전의 HTTP가 사용되고 있다는것이다. 그래서 이번에 정리해볼 내용의 경우 HTTP의 배경과 버전별 특징을 정리해보려고 한다. 왜 이렇게 변화가 되었는지를 알아야 기억하기도 편하다고 생각이 된다. HTTP/1.1전에 HTTP/1.0과 HTTP/0.9 라는 두 개의 버전이 더 있지만, 이 부분의 경우 좀 더 깊게 공부하고 싶은 경우 추천한다. 간..
· CS
⚡쿠키 (Cookie) 쿠키의 경우 한마디로 말하면 사용자의 브라우저에 저장되는 정보이다. (내가 가지고 있는 정보) 키와 값 (key, value)가 들어 있는 작은 텍스트 데이터 파일이며, 이름, 값, 만료기간, 경로 정보가 존재한다. 사용자의 브라우저에 저장되는 정보이다 보니, 해당 pc를 사용한다면 누구나 쿠키의 정보를 쉽게 확인이 가능하다는 단점이 있다. => 보안성이 낮다 쿠키의 제약 조건 - 클라이언트 즉 사용자는 총 300개의 쿠키를 저장 가능하다. (몰라도 될듯...) - 하나의 쿠키는 4KB 크기로 저장이 가능하다. - 하나의 도메인당 20개의 쿠키를 가질 수 있다 (20개가 넘어가면 가장 적게 사용되는 것부터 삭제가 된다고 한다.) 쿠키 통신 방법 1) 최초에는 쿠키값이 존재 x , ..
· DevOps
⚡WSL2 에서 Docker 구축하기 도커가 공식적으로 제공하는 설치 스크립트를 이용해서 설치한다. (버전을 맞춰야한다거나 특별한 이유가 있는 경우가 아니라면 설치 스크립트를 사용해도 상관 없다고 생각을 한다. ) 1. 도커 엔진 설치 💢 이미 도커를 설치 해놓고 하다보니 문구가 다를수 있으나, 처음 설치를 한다면 WSL 환경에서는 도커 데스크톱을 쓰기를 추천하다는 문구가 나오게 된다. 하지만 나는 리눅스 커널 환경에서 엔진 설치, 컨텍스트 설정 및 도커 환경 구축을 해보려고 한다. curl -sSL get.docker.com | sh 커널에서의 경우 help 명령어를 치게 되면 내용에 대해서 상세하게 나오니 익숙하지 않다면 참조해서 한번 보는게 좋다고 생각한다. 설치된 버전을 체크하면서 정상적으로 설치..
· DevOps
⚡Docker란 무엇인가? Docker 컨테이너는 애플리케이션의 모든 코드 및 종속성을 표준 형식으로 패키징할수 있게 해주는 컨테이너 이다. 이를 통해서 애플리케이션이 컴퓨터 환경 전반에서 빠르고 안정적으로 실행이 될수 있다. Docker 컨테이너는 라이브러리, 시스템 도구, 코드, 런타임 등 애플리케이션 실행에 필요한 모든것을 담고 있는 인기 있는 경량의 독립형 실행 컨테이너 이며, 개발자가 컨테이너화된 애플리케이션을 빠르게 빌드, 테스트 및 배포할 수 있게 해주는 소프트웨어 플랫폼이기도 하다. ⚡Docker 용어 정리 Docker 컨테이너 기술을 활용하는 앱의 개발, 제공 및 실행을 위해 설계된 소프트웨어 컨테이너 플랫폼입니다. Docker는 엔터프라이즈 에디션과 커뮤니티 에디션 이렇게 두 가진 버전..
· Java
자바 19에 추가되는 핵심 기능 7가지에 대해서 소개해보도록 하겠다. 2022년 9월에 출시된 자바 19 버전의 7번째 기능으로 구조적 동시성이 추가되었다. 멀티스레드 프로그래밍을 간편하게 지원하기 위한 요소이다. 해당 내용 외에 미리 공개된 6가지 핵심 기능에는 레코드 패턴, 외부함수와 메모리 API(프리뷰), 오픈소스 기반의 리눅스/RISC-V 명령어 집합구조(ISA) 지원 등이 있다. 추가된 내용을 자세히 한번 알아보자. ⚡구조적 동시성(인큐베이터) : 아직 인큐베이터 단계로 구조를 갖춘 동시성 라이브러리를 이용해 멀티쓰레드 프로그래밍을 제공한다. 동시성이라는 기능 덕에 여러 태스크를 서로 다른 스레드 안에 운영하고 동시에 단일한 유닛 형태로 관리할 수 있다. 따라서 사용자는 에러 관리나 취소 관련..
HaeTae
soTech