본문 바로가기

전체 글428

[Programmers] Lv.0 | [PCCE] 기출문제 1번 / 문자 출력 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/340207 풀이import java.util.Scanner;public class Solution { public static void main(String[] args) { String message = "Let's go!"; System.out.println("3\n2\n1"); System.out.println(message); }} 2025. 9. 17.
회고 및 KPI 작성 가이드 개발자 회고 + KPI + 포트폴리오 가이드1. 목적단순 감상문이 아니라, 성과·학습·개선점을 구조적으로 기록KPI와 연계해 성장 경로를 확인하고, 포트폴리오 산출물 확보2. 회고 작성 구조2.1 프로젝트 개요프로젝트명 / 기간 / 팀 규모 / 기술 스택 / 목표핵심: 프로젝트 전반을 한눈에 파악할 수 있도록 간단히2.2 역할과 책임본인이 맡은 범위 중심으로 기록예: 기능 구현, 설계, 문서화, 테스트, 협업협업 범위: 기획자·프론트와의 API 정의, 검수, 일정 조율2.3 주요 성과기능 구현: 로그인/결제/ERP 연동 등시스템 구조: ERD, API 명세서, 아키텍처 다이어그램 등핵심: “무엇을 달성했는가” 중심으로 정리, 가능하면 수치 포함2.4 학습과 성장새로 습득한 기술/라이브러리, 아키텍처 이해.. 2025. 9. 17.
Linux 로그 관련 명령어 로그 파일 확인 명령어cat로그 파일의 전체 내용을 한 번에 출력cat less로그 파일을 페이지 단위로 볼 수 있음q를 눌러 종료less 이동 방법q : 종료방향키(↑, ↓) : 위, 아래로 스크롤space : 한 페이지씩 스크롤 moreless와 유사하지만, 한 페이지씩 출력되는 방식more tail로그 파일의 끝 부분을 확인할 때 사용기본적으로 마지막 10줄을 출력tail tail -f파일이 실시간으로 업데이트 될 때, 마지막 부분을 실시간으로 모니터링할 수 있음tail -f head로그 파일의 처음 부분을 확인할 때 사용기본적으로 처음 10줄을 출력head head -n 파일의 처음 N줄을 확인할 수 있음head -n 20 로그 분석 및 검색 명령어grep특정 키워드나 패턴을 검색할 때 .. 2025. 5. 13.
git 자주 쓰는 명령어 & 커밋 규칙 자주 쓰는 명령어git stashgit stash applyGit 커밋 수정(amend)과 강제 푸시(force push)amend: 개발 중 코드 리뷰를 반영하거나 작은 수정을 할 때, 커밋을 추가로 쌓지 않고 기존 커밋을 수정하는 방법(amend) 을 사용하면 히스토리를 깔끔하게 관리할 수 있음force push: amend 시 필요한 경우 강제 푸시(force push) 도 함께 사용커밋 메시지 규칙 (Prefix 추천)feat:새로운 기능 추가 / 변경fix:버그 수정refactor:기능 변화 없이 코드 구조 개선style:코드 포맷팅, 스타일 수정docs:문서 수정test:테스트 코드 추가/수정build:빌드 설정 변경 ✅ 예시refactor: 코드 리뷰 피드백 반영 및 로직 개선 커밋 수정 (.. 2025. 4. 3.
mac 자주 쓰는 단축키 mac화면 잠금 : command + l파일 복사 : command + c파일 붙여넣기 : command + v파일 붙여넣기 + 기존 삭제 : command + option + v폴더 닫기 : command + q화면 전체 캡쳐 : shift + command + 3화면 부분 캡쳐 : shift + command + 4이모지 : control + command + space기본 한영키 : ctrl + space | fn web크롬창 화면 전환 : command + ~개발자 도구 : command + option + i새로고침 : command + r    intellij개발메서드 오버라이드 : ctrl + o인터페이스 구현 : ctrl + igetter, setter 등 자동 생성 : command + .. 2025. 4. 2.
리버스 프록시, 로드 밸런서 리버스 프록시 (Reverse Proxy)리버스 프록시는 클라이언트의 요청을 받아 여러 서버로 전달하는 서버클라이언트는 실제 서버의 IP나 주소를 알지 못하고, 리버스 프록시 서버에 요청을 보냄리버스 프록시는 이 요청을 적절한 서버로 전달주요 특징클라이언트는 실제 서버가 아닌 리버스 프록시 서버와 통신보안, 캐싱, SSL 종료, 로드 밸런싱 등을 수행할 수 있음자바에서 Spring Cloud Gateway, Zuul 등이 리버스 프록시 역할을 할 수 있음로드 밸런서 (Load Balancer)로드 밸런서는 여러 서버 간에 트래픽을 분산하여 서버의 부하를 고르게 분배하는 역할이로 인해 서버가 과부하되는 것을 방지하고, 시스템의 가용성을 높임주요 특징클라이언트의 요청을 여러 서버에 분산하여 처리부하 분산 알.. 2025. 3. 20.
API 문서화 : Swagger, Spring REST Docs Swagger (Springfox / Springdoc OpenAPI)API 문서화 도구OpenAPI 표준을 기반으로 동작API 자동 문서화 및 실시간 테스트 가능한 UI 제공Spring Boot에서 쉽게 설정 가능샘플 코드 (Springdoc OpenAPI)// build.gradle 의존성 추가dependencies { implementation 'org.springdoc:springdoc-openapi-ui:1.6.9'}// Spring Boot 애플리케이션 클래스@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(Demo.. 2025. 3. 19.
[Programmers] Lv.0 | 겹치는 선분의 길이 | Java 문제https://school.programmers.co.kr/learn/courses/30/lessons/120876 포인트연속된 숫자로 구간을 표현할 때, 끝점은 포함하지 않아도 됨 풀이class Solution { public int solution(int[][] lines) { int[] arr = new int[200]; int answer = 0; for (int i = 0; i 1) { answer++; } } return answer; }}import java.util.*;class Solution { public int solution(int[][].. 2025. 3. 11.
CGLIB 프록시 JDK 동적 프록시 vs CGLIB✔ Spring에서 @Transactional, @Cacheable 같은 AOP 기능을 적용할 때 JDK 동적 프록시와 CGLIB 프록시를 사용함✔ Spring Boot 2.0부터 JDK 동적 프록시가 기본값으로 변경되었으며, 그 이유와 차이를 정리CGLIB 프록시✔ CGLIB(Code Generation Library) 프록시는 바이트코드를 조작하여 클래스 기반으로 프록시 객체를 생성하는 기술✔ Spring에서는 AOP(Aspect-Oriented Programming)와 프록시 패턴에서 사용됨CGLIB 프록시 개념✔ JDK 동적 프록시와 차이점JDK 동적 프록시: 인터페이스 기반 → 인터페이스가 필요함CGLIB 프록시: 클래스 기반 → 인터페이스 없이도 프록시 생성 .. 2025. 3. 1.
JPA | MyBatis | JDBC JPA (Java Persistence API)자바에서 객체와 관계형 데이터베이스를 매핑하는 표준 API엔티티 클래스를 통해 데이터를 객체로 관리하고, 객체 상태에 따라 자동으로 DB와 연동됨주로 Hibernate와 함께 사용됨JPA는 규격(specification)이고, Hibernate는 그 구현체(implementation)Hibernate는 JPA를 구현하면서, JPA가 정의한 기능을 지원하고, 그 외에도 Hibernate만의 고유 기능을 추가로 제공함@Entitypublic class User { @Id private Long id; private String name; // getter, setter}JPQL (Java Persistence Query Language)JP.. 2025. 3. 1.
도커(Docker), 쿠버네티스(K8S), CI/CD Docker (도커)컨테이너화 플랫폼애플리케이션을 컨테이너라는 독립적인 환경에 패키징하여 어디서나 실행할 수 있게 해줌이미지를 기반으로 컨테이너를 생성하고, 이를 실행하여 애플리케이션을 관리환경 일관성 제공 : 개발 환경과 운영 환경을 동일하게 유지할 수 있음주요 개념Docker 이미지 : 애플리케이션, 라이브러리, 설정 등을 포함한 읽기 전용 템플릿Docker 컨테이너 : 이미지를 실행한 인스턴스, 가벼운 격리 환경 제공Docker Hub : 이미지를 저장하고 공유하는 공용 레지스트리Kubernetes (쿠버네티스)컨테이너 오케스트레이션 플랫폼여러 개의 컨테이너를 자동으로 배포, 확장, 관리하는 시스템컨테이너의 자동화된 배치, 확장, 로드 밸런싱 및 자원 관리 제공클러스터 기반으로 여러 노드를 연결하여.. 2025. 3. 1.
[Programmers] Lv.0 / 유한소수 판별하기 / Java 문제 풀이import java.util.*;class Solution { public int solution(int a, int b) { int reducedDenominator = b / gcd(a, b); // 기약분수로 바꾸기 위해 b를 GCD로 나눔 while (reducedDenominator != 1) { // reducedDenominator가 1이 될 때까지 if (reducedDenominator % 2 == 0) { // 2로 나눠지면 나누기 reducedDenominator /= 2; } else if (reducedDenominator % 5 == 0) { // 5로 나눠지.. 2025. 2. 26.