본문 바로가기

전체 글

[Kubernetes] CKA 합격 후기 CKA 합격 후기얼마 전 CKA 시험에 응시했고 합격했습니다. 저 또한 다른 사람들의 후기에 도움을 받았기 때문에 준비 과정을 남겨봅니다.동기저희 회사에서는 온프레미스에 구축한 쿠버네티스 환경에서 서비스를 운영합니다. 클러스터와 관련된 대부분의 작업은 데브옵스팀에서 진행합니다. 하지만 서비스 개발자 역시 트러블슈팅이나 기타 운영 이슈를 해결하려면 쿠버네티스의 구조나 기능을 알아야만 합니다. 설령 권한이 없어서 설정의 변경은 데브옵스에 요청할지라도 말입니다.그래서 2024년의 목표 중 하나는 쿠버네티스로 정했습니다. 보통 책으로 공부하는 것을 선호합니다. 서점에 가서 관심있는 주제의 책을 훑어보면 이걸 사야겠다고 느낌이 오는데요. 쿠버네티스 책은 마땅히 끌리는 게 없었습니다. 그래서 강의를 찾아보니 인도.. 더보기
암호화 알고리즘 정의 암호화는 정보 보안의 중요한 구성 요소로, 데이터를 무단 액세스, 변경 또는 배포로부터 보호하는 데 도움이 됩니다. 암호화: 데이터를 읽을 수 없는 형태로 변환하여 외부로부터의 무단 접근을 방지하는 기술. 암호화 알고리즘: 평문을 암호문으로 변환하는 데 사용되는 수학적 프로세스. 평문(Plain Text): 해독 가능한 형태, 즉 암호화 전의 메시지 암호문(Cipher Text): 해독 불가능한 형태, 즉 암호화 후의 메시지 암호화(Encryption): 평문을 암호문으로 변환하는 작업 복호화(Decryption): 암호문을 평문으로 변한하는 작업 안전한 암호에는 혼돈(Confusion)과 확산(Diffusion)의 성질이 있어야한다 - 클라우드 섀넌(Claude E. Shannon) 혼돈: 암호문.. 더보기
Spring Boot, Kotlin 인프런 강의 제작 후기 Spring Boot, Kotlin 인프런 강의 제작 후기 결론 요즘은 두괄식으로 말하는 연습을 하고 있습니다. 결론부터 얘기하자면 인프런에 입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기 강의를 오픈했습니다. 아래 링크 방문해서 어떤 강의인지 살펴봐주시면 감사하겠습니다. 입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기 입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기 강의 - 인프런 이론부터 실습까지. 직접 개발한 웹사이트를 클라우드에 올리며 웹 개발 전반을 학습할 수 있습니다., [사진]개발자 고양이 용백이의 가상 프로필로 만든 포트폴리오 사이트Kotlin과 Spring.. 더보기
[Spring] 스프링 의존관계 주입 방법 [Spring] 스프링 의존관계 주입 방법 스프링의 가장 큰 특징이라고 할 수 있는 것이 제어의 역전입니다. 이 제어의 역전은 프레임워크와 라이브러리를 구분하는 기준이 되기도 하는데요. 스프링 프레임워크는 객체의 생성과 세팅 등을 개발자가 직접 관리하지 않고, 스프링에서 관리하도록 설계되어 있습니다. 여기서 스프링이 관리하는 객체를 스프링 빈, 빈을 관리하는 주체를 DI 컨테이너라고 부릅니다. 한 스프링 빈에서 다른 스프링 빈을 사용할 때, 즉 한 스프링 빈이 다른 스프링 빈이 의존할 때 의존하는 객체를 스프링 DI 컨테이너에서 알아서 넣어줍니다. 이것을 의존성 주입이라고 부릅니다. 의존성 주입 방법에는 대표적으로 3가지가 있습니다. 주입 방법 1. 생성자 주입(Constructor) @Service p.. 더보기
[Network] TCP의 연결 성립과 해제 - 3 Way & 4 Way Handshake [Network] TCP의 연결 성립과 해제 - 3 Way & 4 Way Handshake TCP는 Transmission Control Protocol의 약자로, 전송 제어 프로토콜이라고 번역됩니다. OSI 7 계층 중 4번째인 전송 계층에서 사용되는 프로토콜인데요. 일반적으로 IP와 엮어서 TCP/IP라고도 표현합니다. TCP와 자주 비교되는 개념으로 UDP가 있는데요. UDP와 비교하여 TCP의 특징 중 하나는 신뢰성입니다. 신뢰성은 구체적으로 다음 두 가지를 의미합니다. 전송하는 패킷들의 순서를 보장한다. 수신 여부를 확인한다. 이를 위해 TCP는 연결의 성립과 해제에 있어 각각 3 Way Handshake, 4 Way Handshake란 방식을 사용합니다. 연결 성립: 3 Way Handshak.. 더보기
[Database] 데이터베이스의 인덱스 [Database] 데이터베이스의 인덱스 인덱스란? 인덱스는 데이터베이스에서 테이블의 동작 속도를 높여주는 자료구조를 의미합니다. 말 그대로 책의 색인과도 같다고 할 수 있습니다. 많은 책들에는 특정 키워드를 찾기 쉽도록 책의 맨 뒤에 키워드와 그 키워드가 나온 페이지를 정리해둔 색인이 있습니다. 만약 데이터베이스 책에서 Distinct란 단어를 찾고 싶다고 가정해봅시다. 가장 먼저 떠오르는 방식은 책의 1 페이지부터 한장씩 넘기면서 Distinct란 단어를 찾는 것입니다. 이건 Table Full Scan과 같습니다. 하지만 이렇게 할 경우 10 페이지 짜리 책이라면 그리 오래 걸리지 않겠지만, 1000 페이지 책이라면 상당히 많은 시간이 걸릴 것입니다. 52 페이지 쯤에서 키워드를 발견했다고 해도 뒤.. 더보기
[Java] Call by Value와 Call by Reference [Java] Call by Value와 Call by Reference 프로그래밍 언어에는 Call by Value와 Call by Reference라는 개념이 있습니다. 함수, 또는 메소드에 파라미터를 넘겨주는 방식에 대한 개념인데요. Call by Value는 값에 의한 호출, Call by Reference는 참조에 의한 호출이라고 번역됩니다. 그럼 각각은 어떤 차이가 있을까요? Call by Value Call by Value는 메소드를 호출할 때, 인자로 넣어주는 변수의 값을 복사합니다. plusOne()이라는 이름의 숫자 num을 받는 메소드가 있다고 하겠습니다. 인자로 들어온 num에 1을 더하는 기능을 합니다. 다음 코드와 같이 plusOne() 메소드를 호출하면 어떤 일이 일어날까요? @.. 더보기
[운영체제] 메모리 단편화와 페이징 [운영체제] 메모리 단편화와 페이징 메모리 단편화란? RAM에서 메모리의 공간이 조각나서, 사용 가능한 메모리가 총합은 충분하지만 프로세스의 할당이 불가능한 상태를 의미합니다. 이 개념을 이해하기 위해선 우선 CPU가 어떻게 메모리에 프로세스를 할당하는지 알아야할 필요가 있습니다. 연속 메모리 할당 메모리를 할당하는 방법 중 가장 기본적으로 떠올릴 수 있는 방법입니다. 100만큼의 크기를 갖고 있는 메모리와 프로세스 A, B, C 각각 10, 20, 30만큼의 크기를 갖고 있다고 가정해봅시다. A를 0 9까지, B를 10 29까지, C를 30~59까지 할당할 수 있습니다. 결과적으로 메모리에는 다음 그림과 같이 프로세스가 적재됩니다. 이 방식은 문제가 있습니다. 프로세스 B가 가장 먼저 실행이 중단됐다고.. 더보기