스프링의 가장 큰 특징은 POJO 프로그래밍을 지향한다는 점이다.그렇다면 생기는 의문은 "스프링은 어떻게 POJO 중심의 설계를 구현하는가"다. 답은 IoC/DI, AOP, PSA다.1. IoC / DI (Inversion of Control / Dependency Injection)자바는 객체지향 언어다.객체지향에서 가장 중요한 것은 객체 간의 관계(의존성)다.class A { B b = new B();}class B { public void example() { ... }} 이 경우, A는 B에 의존한다.그리고 이 의존성은 개발자가 직접 new 키워드로 생성했다.문제 상황 : 변화에 취약한 코드문제는 여기서 발생한다.만약 B 대신 C를 사용해야 한다면, A의 코드를 아래처럼 수정해야..
분류 전체보기
서론Spring을 공부하다보면 POJO, Java Bean, Spring Bean이라는 용어가 자주 등장한다.이 세가지는 서로 비슷해 보이지만, 사실은 서로 다른 관점에서 정의된 개념이다. 이 글에서는 이 세 개념을 구조적으로 정리하겠다.1. POJO란 무엇인가?POJO는 말 그대로 평범한 자바 객체(Object)다.특정 프레임워크에 의존하지 않는다.특별한 인터페이스를 구현할 필요가 없다.특정 규칙을 반드시 따를 필요도 없다.public class SuperHeroPojo { public String firstName; public String power; public SuperHeroPojo(String firstName, String power) { this.f..
1. Hibernate의 best guess에러 구문GenerationTarget encountered exception accepting command : Error executing DDL "alter table if exists images alter column data set data type oid" via JDBC [오류: "data" 칼럼의 자료형을 oid 형으로 형변환할 수 없음. Hint: "USING data::oid" 구문을 추가해야 할 것 같습니다.]org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table if exists images alter column data set d..
English Wordsfix = "고정하다/수리하다 → (문제·상태를) 바로잡다 → (시선·상태를) 붙들어 두다"발음 : [ fɪks ]어원 : Latin figere “to fasten, attach”에서 유래하여 Middle English fixen을 거쳐 ‘단단히 고정하다’의 의미로 정착.예문물리적으로 고정하다, 붙들다 (core sense: fasten)She fixed the poster to the wall with tape.The shelf isn't fixed securely and might fall.고장·손상을 수리하다 (extension: 고정 → 정상 상태로 복구)Can you fix my laptop? It won't start.The mechanic fixed the brake..
1. Amazon Kinesis는 왜 필요한가Amazon Kinesis는 AWS가 제공하는 관리형 스트리밍 데이터 플랫폼으로, 대용량의 실시간 데이터를 안정적으로 수집, 처리, 분석할 수 있도록 설계되었다. 기존 AWS 서비스인 SQS(Simple Queue Service), SNS(Simple Notification Service), EventBridge와 비교했을 때, Kinesis의 차별화된 특징은 다음과 같다. 1.1 Kinesis 핵심 특징순서 보장 및 파티셔닝 (Ordering + Partitioning)Kinesis는 파티션 키(partition key)를 기준으로 데이터를 샤드(shard)에 분산 저장한다.※ 용어 설명 - 파티션 키 : 데이터를 특정 샤드로 라우팅하기 위한 식별자 (예: ..
개요최근 진행한 Kotlin 기반 HTTP 서버를 구축하며, 동일한 비즈니스 로직(Text 저장/출력/삭제)을 4가지 방식(순수 JDBC, MyBatis, Exposed, JPA)으로 각각 구현해 보았다. 아래는 그 내용을 정리한 결과물이다.GitHub 링크 : https://github.com/proLmpa/HTTP-Server/commit/d6c648b5bf89ae93f1ca6e628426674f66612cdd프로젝트 내 HTTP Text 요청 흐름연결 방식에 상관없이, 프로젝트 내에 구현된 JDBC 구현 방안은 아래의 순서에 따라 동작한다.\TextHandler 는 HTTP 요청의 유효성을 검증하고, 해당 서비스를 요청한다.TextService 는 요청된 repository 기능을 불러온다.Per..
English GrammarPresent Perfect vs. Present Perfect Continuous이 두 시제(tense)는 화자(speaker)가 행동(action)을 어떻게 개념화하는지에 따라 달라진다. 1. 공유하는 이미지두 시제 모두 "과거 행동이 현재까지 여전히 이어졌음"을 표현한다.과거에서 끝난 것이 아니라 현재(now)와 관련이 있는 것이다. 아래 두 문장은 모두 같은 의미다.I have lived here for 5 years. I have been living here for 5 years.2. 차이가 발생하는 지점 Present PerfectPresent Perfect Continuous주안점 (Focus)Result / stateProcess / duration관점 (Vie..
English Wordsgeneral ("일반적인, 흔한" -- scope)발음 : [ ˈdʒen.ər.əl ]어원"gene-" derives from the German Gen, originating from the Greek genos ("birth, race") or genea ("generation")Middle English: via Old French from Latin generalis, from genus, gener- ‘class, race, kind’. The noun primarily denotes a person having overall authority: the sense ‘army commander’ is an abbreviation of captain general, from..
Overview -- AWS Security Best Practices 이 게시글은 AWS 보안 best practices에 대한 구조화된 defense-in-depth 개요를 제공하여, 어떻게 보안 통제가 설계되고, 적용되며, 실제 클라우드 환경에서 운영되는지 다룬다. AWS 서비스를 나열하기보다, 핵심 영역 (신원 자격, 네트워크, 데이터 보호, 모니터링, 거버넌스, 애플리케이션 보안과 컴플라언스 ) 에 대한 보안 조치로 구성하여 각 계층이 어떻게 위험을 줄이고, 영향 범위를 제한하는지에 집중했다.1. Identity & Access Management (IAM) -- Control Plane Security핵심 원칙IAM user, role에 대해 최소 권한의 원칙을 강제한다.네트워크 기반 신뢰보다..