전체 글 69

[회고] 2022년 회고 및 2023 목표

🌕 2022 회고 내가 좋아하는 것과 싫어하는 것 에 대한 호불호가 없는 도전과 실패가 없는 평탄하고 평범한 한 해를 보냈다. 2022년도에 쓴 회고록을 보며 작성하겠다. 1. 운동 헬스장을 끊어 일주일에 많으면 3번, 적으면 한달에 2번 정도.. 다녔다. 시도는 좋았으나 처음과 다르게 의지가 점점 떨어졌고, 헬스장에 흥미를 느끼지 못했다. 목표를 잡아놓지 않았기 때문일 수도 있다. 운동에 흥미를 붙이기 위해 좀 더 재밌는 스포츠를 해보고자 한다. 2. 긍정적 2021년보다는 감정적으로 기복이 많이 없었다. 상반기에는 좀 힘들었지만, 기댈 수 있는 친구들도 있었고 적응도 빨리해서 일하고 일상을 보내는데에 어려움이 있지 않았다. 긍정적이지도 부정적이지도 않은 그저 그런 한 해가 아니었나 싶다. 하지만, 내..

회고록 2023.01.02

쿠버네티스 아키텍처

📍쿠버네티스 아키텍처 쿠버네티스는 크게 마스터와 노드 2개의 컴포넌트로 분리한다. 🔆 마스터 마스터는 쿠버네티스의 설정환경을 저장하고 전체 클러스터를 관리하는 역할 🌈 마스터 컴포넌트 클러스터에 관한 전반적인 결정(ex. 스케줄링)을 내리고 클러스터 이벤트를 감지하고 반응하는 역학을 한다. 클러스터 내 어떠한 머신에서도 동작 가능하다. 관리자는 Master의 API Server를 통해 K8s를 관리하며 모든 컴포넌트들은 API Server를 통해 서로 통신한다. 🌈 마스터 컴포넌트 종류 1) kube-scheduler kube-schedule는 Pod, 서비스 등 리소스들을 적절한 노드에 할당하는 즉, 전반적인 결정을 내린다. 2) kube-controller-manager 컨트롤러가 여러가지가 만들어지..

쿠버네티스 2022.12.06

쿠버네티스와 컨테이너

📍 가상화 vs 컨테이너 1) 가상화 하나의 컴퓨터를 다수의 가상 컴퓨터로 분할할 수 있도록 해주는 기술 즉, 하나의 컴퓨터 안에 여러 개의 OS 와 APP이 돌아갈 수 있음. (ex. 맥북에 윈도우OS를 깔 수 있듯!) 리소스를 효율적으로 관리할 수 있음. 여러 개의 가상 컴퓨터를 I/O 명령 처리 및 관리해주는 Hypervisor라는 것이 있다. 2) 컨테이너 가상화 기능을 사용하다가, VM보다 좀 더 가벼운 것이 없을까 하고 나타난 개념 이동성과 배포 편의성이 있음. (개발환경의 jdk와 상용환경 jdk 라이브러리가 다르다면, 버전 오류가 발생하지만, 컨테이너는 하나의 이미지로 만들기 때문에, 어떤 환경에서 구동하던 상관없음.) Container Engine 을 통해 자원을 분리해서 사용 🌈 컨테이..

쿠버네티스 2022.11.30

[프로그래머스] 시저 암호 풀이 - JAVA

📍LEVEL1 : 시저 암호 유형 : 구현 📍풀이방법 입력값이 String 이고, 한 자리마다 n씩 움직여서 최종 결과값을 내야한다. 1) String의 한 자리씩 확인을 해야한다. -> char를 사용해야겠다고 생각. 2) 대소문자를 함께 입력받는다. -> 대소문자 구분을 해줘야겠다고 생각. 3) char는 int형으로 변경할 수 있고, 계산을 할 수 있기 때문에, 입력받은 n 과 각 자리 char 값을 더해준다. 4) z 또는 Z 를 넘어가는 범위는 있일 수 없기 때문에 a~z의 개수(=26)를 빼준다. (z or Z 범위를 벗어나게 된다면) 5) 영어 알파벳을 제외한 다른 문자(공백)도 들어갈 수 있기 때문에 예외로 처리해준다. 📍코드 class Solution { public String so..

[Network] 네트워크 기초 1 : 물리계층

🖥 OSI 1 계층 : 물리계층 📍 데이터를 전송하는 과정에서 OSI 최하위 계층인 물리계층의 역할 및 특징을 알아본다. 👤 들어가기 컴퓨터는 0과 1로 이루어져있고, 이것만 이해할 수 있다. 0과 1로 이루어진 데이터들을 다른 컴퓨터로 보내기 위해 전기신호로 바꾸는 곳이 바로 물리계층이다. 🙈 전기신호 1) 아날로그 신호 사용처 : 전화회선, 라디오 2) 디지털 신호 사용처 : 컴퓨터 데이터 전송 ❓ 0과 1을 어떻게 전기신호로 변환할까? "랜카드" 는 0과 1을 전기신호로 변경 또는 전기신호를 0과1로 변경해주는 역할을 한다. 랜카드는 모든 컴퓨터에 하나씩은 내장이 되어있다. 랜카드는 컴퓨터의 고유의 주소, "MAC 주소"라고 하는 고유의 식별번호이다. (사람으로 따지면, 주민등록번호 같은) 해당 M..

CS/Network 2022.07.15

[Network] 네트워크 기초 0 : 기본 규칙

🚦 네트워크의 기본 규칙 : 프로토콜 📍네트워크 기초를 다루기 위한 시리즈로 어떻게 데이터가 전송되는지 과정을 알아보고, 큰 틀을 이해한다. 📍네트워크 기초 1 : 앞으로의 내용을 이해하기 위해, 큰 그림을 그리고자 한다. 🚥 프로토콜이란? 우리는 화폐를 지급하여 물건을 사고 파는 규칙이 있다. 만약, 어떤 사람이 예전의 물물교환 방식으로 난 지급할 거야!라고 한다면 어떻게 될까? 물건을 파는 사람 입장에서는 물건을 팔지 않을 것이고 소비자 입장에서도 절대 원하는 물건을 사지 못할 것이다. 일상의 사소한 규칙들이 있듯, 컴퓨터 사이에도 규칙들이 존재한다. 하나의 컴퓨터에서 다른 컴퓨터로 데이터를 전송하기 위한 규칙. 이것이 바로 프로토콜이다. ❓ 데이터는 어떻게 보내고, 받을 수 있는 걸까? 데이터를 주..

CS/Network 2022.06.25

[클린 아키텍처] 6부. 세부사항

🍊 데이터베이스는 세부사항이다. 데이터베이스는 세부사항이고, 아키텍처의 구성요소 수준으로 끌어올릴 수 없다. 아키텍처와 데이터베이스의 관계는 건물로 비교하면 건물의 아키텍처와 문 손잡이의 관계와 같다. 체계화된 데이터 구조와 데이터 모델은 아키텍처적으로 중요하지만, 기술과 시스템은 중요하지 않다. 🍒 데이터베이스 시스템은 왜 널리 사용되는 걸까? -> "디스크(저장소의 중심)" 때문이다. -> 데이터가 많아짐과 동시에 데이터를 읽는 "속도"는 중요했다. 시간 지연을 완화하기 위해 색인, 캐시, 쿼리 등 최적화가 필요했고, 이런 것을 제공해주고 데이터 접근 및 관리 시스템이 나오게 된 것이다. 🍒 데이터베이스 시스템은 왜 세부사항인 걸까? - 데이터베이스는 그저 매커니즘에 불과하며 데이터를 이리저리 옮길..

개발서적 2022.03.10

[클린 아키텍처] 5부. 아키텍처

🍎 테스트 경계 테스트는 시스템의 일부이고, 아키텍처에도 관여한다. 🍊 테스트의 특성 1) 테스트는 의존성 규칙을 따른다. - 테스트는 세부적, 구체적인 것으로 의존성은 항상 테스트 대상이 되는 코드를 향한다. - 실제로 테스트는 아키텍처에서 가장 바깥쪽 원으로 생각할 수 있다. - 시스템 내부의 어떤 것도 테스트에는 의존하지 않으며, 테스트는 시스템의 컴포넌트를 향해, 항상 원의 안쪽으로 의존한다. 2) 테스트는 독립적으로 배포 가능하다. - 대다수의 경우 테스트는 테스트 시스템에만 배포하며, 상용 시스템에는 배포하지 않는다. 3) 테스트는 시스템 컴포넌트 중 가장 고립되어있다. - 테스트가 시스템 운영에 꼭 필요하지 않다. 하지만, 그렇다고 해서 아키텍처 설계 시, 테스트를 설계 범위 밖에 있다고 여..

개발서적 2022.02.22

[클린 아키텍처] 5부. 아키텍처 - 1

❓ 소프트웨어 아키텍트란? 바로, 프로그래머이며 앞으로도 계속 프로그래머로 남는다. 즉, 프로그래밍을 지속적으로 이어가고 생산성을 극대화할 수 있는 설계를 하도록 방향을 이끌어주는 역할을 한다. ❓ 소프트웨어 시스템의 아키텍처란? 시스템을 구축했던 사람들이 만들어낸 시스템의 형태 이 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수되도록 만들어진다. 아키텍처의 궁극적인 목표는 시스템의 수명과 관련된 비용을 최소화하고, 프로그래머의 생산성은 최대화하는 데 있다. ❗ 아키텍처를 설계할 때, 중요하게 생각해야 할 것 1) 개발 상위 구조로 인한 장애물이 없기를 바라지 말고, 시스템을 신뢰할 수 있고 안정된 인터페이스를 갖춘, 잘 설계된 컴포넌트 단위로 분리하자. 2) 배포 배포..

개발서적 2022.01.26

[클린 아키텍처] 3부. 설계 원칙

🎯 설계 원칙 SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open-Closed Principle) : 개방-폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존성 역전 원칙 ❗ SRP : 단일 책임 원칙 하나의 모듈은 오직 하나의 액터에 대해서만 책임져야 한다. 모듈이란? - 단순한 정의로 소스 파일 징후1) 우발적 중복 Employee라는 클래스 안에 calculatePay, reportHours, save 메서드가 3명의 액터를 책임진다. 즉, 단..

개발서적 2022.01.12