앤서블 기초 정의 및 특징 서버의 설정을 자동화하는 도구(Configuration Management)임 수십, 수백 대의 서버에 접속해서 패키지 설치, 환경변수 설정 등의 작업을 자동화함 특징 Agentless (에이전트리스) 관리 대상 서버에 별도의 프로그램을 설치할 필요가 없음...
Java LTS 버전별 차이
현재 Java 생태계 현재 Java 생태계의 표준은 Java 17로 이동함 Java 8 여전히 많이 쓰이나 Legacy임 모던 인프라와 프레임워크의 혜택을 받을 수 없음 Java 17 현재 Java 생태계의 주요 표준 버전임 Spring Boot 3.0의 최소 요...
[주니어 백엔드 개발자가 반드시 알아야 할 실무 지식] 5장 비동기 연동, 언제 어떻게 써야 할까
💡해당 게시글은 최범균님의 ‘주니어 백엔드 개발자가 반드시 알아야 할 실무 지식’을 개인 공부목적으로 메모하였습니다. 5장에서 다루는 내용 비동기 연동 별도 스레드를 이용한 비동기 연동 메시징을 이용한 비동기 연동 트랜잭션 아웃박스 패턴 배치 전송 CDC 동기 연동과 비동기 연동 동기 방식 ...
[김영한의 실전 자바 기본편] 생성자
생성자 김영한님의 실전 자바 강의 중 생성자 챕터를 학습하며 객체 생성 시 초기화 작업을 수행하는 생성자의 개념과 활용법을 정리함 생성자가 필요한 근본적인 이유와 this, this() 키워드의 차이점을 분석함 생성자가 필요한 이유 객체를 생성한 직후에 멤버 변수의 초기값을 설정하는 작업은 빈번하게 발생함 초기화 작업의 반...
스택과 큐 알고리즘
스택(Stack)과 큐(Queue)는 배열에서 발전된 형태의 선형 자료구조임 구조는 유사하지만 데이터를 처리하는 방식에서 근본적인 차이가 있음 단순 자료 저장을 넘어 실제 서비스 환경의 성능 최적화와 동시성 제어의 기초가 됨 주요 특징 비교 구분 스택 (Stack) 큐 (Queue) ...
슬라이딩 윈도우 알고리즘
개요 슬라이딩 윈도우(Sliding Window)는 배열이나 문자열의 연속된 부분 집합을 효율적으로 처리하기 위한 알고리즘 기법임 창틀에 창문을 놓고 옆으로 밀면서 이동하는 모양에서 이름이 유래됨 두 개의 중첩 루프를 단일 루프로 변환하여 $O(N^2)$의 시간 복잡도를 $O(N)$으로 개선하는 것이 주요 목적임 이전 윈도우의 결과를...
[김영한의 실전 자바 기본편] 객체 지향 프로그래밍
객체 지향 프로그래밍 김영한님의 실전 자바 강의 중 객체 지향 프로그래밍 챕터를 학습하며 절차 지향과 객체 지향의 차이, 캡슐화의 원리, 그리고 객체의 데이터와 기능을 하나로 묶는 설계 방식을 정리함 절차 지향과 객체 지향의 차이 프로그래밍 방식은 크게 절차 지향과 객체 지향으로 나눌 수 있음 절차 지향과 객체 지향의 관계 ...
[주니어 백엔드 개발자가 반드시 알아야 할 실무 지식] 4장 외부 연동이 문제일 때 살펴봐야 할 것들
💡해당 게시글은 최범균님의 ‘주니어 백엔드 개발자가 반드시 알아야 할 실무 지식’을 개인 공부목적으로 메모하였습니다. 4장에서 다루는 내용 외부 연동 문제 타임아웃과 재시도 동시 요청 제한과 서킷 브레이커 DB와 외부 연동 HTTP 커넥션 풀 이중화 외부 연동과 장애 전파 외부 연동의 중요성 현대 ...
투 포인터 알고리즘
개요 투 포인터(Two Pointers)는 1차원 배열에서 두 개의 포인터를 조작하여 원하는 결과를 얻는 알고리즘 기법임 완전 탐색 적용 시 $O(N^2)$이 소요되는 문제를 $O(N)$으로 최적화할 때 활용함 연속된 구간의 합을 구하거나 정렬된 배열에서 특정 조건을 만족하는 쌍을 찾는 문제에 효과적임 문제 식별 방법 선형...
조합(Combination) 구하기
개요 입력 크기($N$)와 문제 조건(모듈러 연산 여부)에 따라 적절한 알고리즘 선택이 필요함 조합을 구하는 3가지 방법(팩토리얼, DP, 페르마의 소정리)을 비교하고 수학적 원리를 설명함 문제 식별 방법 전체 원소 중 순서에 상관없이 특정 개수를 선택하는 모든 경우의 수를 구함 정답의 크기가 매우 커서 모듈러 연산($\%...