Back-End/Java
Ant 빌드와 MAVEN 빌드 차이(수정필요)
2026.02.19
1) 빌드 철학: 선언형 vs 절차형Ant = 절차형(Imperative)개발자가 **빌드 과정(절차)**을 “순서대로” 직접 작성합니다.즉, “컴파일하려면 폴더 만들고 → 소스 모으고 → javac 실행하고 → jar 만들고 → 복사하고 …” 를 스크립트처럼 작성.장점원하는 대로 커스터마이징이 매우 자유롭다.작은 작업 자동화에 빠르게 붙일 수 있다.단점프로젝트마다 build.xml 스타일이 제각각이라 표준화가 약함유지보수 시 “이 빌드가 뭘 하는지” 이해 비용이 큼Maven = 선언형(Declarative)개발자는 “무엇을 만들지(결과물)” + “의존성(라이브러리)” + “플러그인 설정”을 선언하면,Maven이 정해진 Lifecycle(생명주기) 에 따라 자동으로 수행합니다.장점표준 Lifecycle ..
Back-End/Java
JKS(Java KeyStore) 파일 과 JKS 의 키체인
2026.02.09
1️⃣ JKS 파일이 뭐냐JKS = Java KeyStore자바 기반 시스템에서 인증서와 개인키를 저장하는 보관소파일 하나에 여러 개의 인증서/키를 담을 수 있음주로 SSL/TLS(HTTPS), 서버 인증, 클라이언트 인증에 사용server.jkstruststore.jkskeystore.jks 2️⃣ JKS 안에 들어가는 것들 (핵심)JKS에는 엔트리(entry) 가 있고, 타입이 다릅니다.🔹 1) PrivateKeyEntry (가장 중요)개인키 + 서버 인증서 + 인증서 체인HTTPS 서버 구동 시 필요[개인키][서버 인증서][중간 CA][루트 CA]👉 keystore 용도 🔹 2) TrustedCertificateEntryCA 인증서(신뢰용) 만 들어 있음상대 서버를 믿기 위해 사용👉 trus..
Back-End
Application 아키텍처
2025.10.01
0) 큰 지도: 아키텍처 스펙트럼단일 ⇒ 모듈러 ⇒ 분산으로 갈수록 복잡도·운영비용이 증가하고, 독립성·확장성·배포 유연성이 커집니다.보통 모놀리식 → 모듈러 모놀리식 → 마이크로서비스로 점진적 진화가 현실적입니다(스트랭글러 패턴).1) 레이어드 모놀리식(2/3/N-Tier Monolith)개념: 하나의 배포 단위(WAR/JAR) 안에 Presentation/Business/Persistence 레이어로 계층화.장점: 단순 배포·트랜잭션 일관성·개발 속도 빠름.단점: 코드베이스 비대화, 부분적 확장/배포 어려움.권장: 초기 제품, 작은 팀, 기능 복잡도 낮음.예시 스택: Spring MVC/Boot, JPA/Hibernate, Tomcat/TomEE, MySQL/PostgreSQL. [UI] → [Con..
Back-End/Java
JAVA 메타스페이스
2025.09.17
Java 8부터 도입된 메모리 영역 이전 버전(Java 7까지)에서는 클래스 메타데이터를 PermGen(Permanent Generation) 영역에 저장했는데, Java 8부터는 PermGen이 제거되고 Metaspace라는 새로운 영역이 도입 특징클래스 메타데이터 저장소JVM이 로딩한 클래스의 메타데이터(클래스 구조, 메소드, 필드 정보 등)를 저장하는 영역이에요.PermGen과의 차이점PermGen은 JVM 힙 메모리 내부에 있었지만,Metaspace는 **네이티브 메모리(native memory, OS 메모리)**를 사용해요.→ 즉, JVM 힙 크기와는 별개로 운영체제 메모리를 사용하기 때문에 PermGen보다 더 유연해졌어요.자동 확장 가능기본적으로 제한이 없어서, 필요할 때마다 OS 메모리에서..
Back-End/Java
자바 8 / 17 / 21 버전별 차이점
2025.06.04
🔹 Java 8 (2014년 출시, LTS)주요 기능Lambda 표현식: 함수형 프로그래밍 도입Stream API: 데이터 처리 방식 개선 (map/filter/reduce)java.time 패키지: 새로운 날짜/시간 APIOptional 클래스: NullPointerException 방지특징: 기존 Java에서 함수형 프로그래밍으로의 전환점🔹 Java 17 (2021년 출시, LTS)주요 기능Sealed Classes: 클래스 상속 제한Pattern Matching for instanceof: 타입 캐스팅 간소화Switch 표현식 개선 (Java 14~부터 미리보기 → 정식 도입)Records: 불변 데이터 객체 간결하게 정의Text Blocks: 여러 줄 문자열을 쉽게 작성JEP 410: 보안 문..