[Spring] spring core 직접 구현해보기 - (2)
·
spring
https://github.com/ksngh/spring_practice GitHub - ksngh/spring_practiceContribute to ksngh/spring_practice development by creating an account on GitHub.github.com위 링크에 실습으로 작성한 코드가 들어있습니다. STEP 1 요약STEP 1의 목적은 Spring Core를 배우기 전에 왜 이런 Core 레이어가 필요해지는지를 직접 코드로 확인하는 데 있었습니다.Spring을 사용하지 않고 순수 Java(POJO + reflection)만으로 객체를 자동으로 생성하고 운영하려는 코드를 작성했습니다.핵심 내용reflection을 사용해 클래스에 어떤 어노테이션이 붙어 있는지 직접 확인..
[Spring] spring-core 직접 구현해보기 - (1)
·
spring
https://github.com/ksngh/spring_practice GitHub - ksngh/spring_practiceContribute to ksngh/spring_practice development by creating an account on GitHub.github.com위 링크에 실습으로 작성한 코드가 들어있습니다. STEP 1 - POJO 기반 준비 레이어STEP 1의 목적은 Spring Core를 배우기 전에 왜 이런 Core 레이어가 필요한 지를 직접 경험해보는 데 있었습니다.이 단계에서는 Spring을 사용하지 않고 순수 Java(POJO + reflection)만으로 객체를 자동으로 생성하고 운영하려는 코드를 작성했습니다.그리고 그 과정에서 어디서부터 한계가 발생하는지를 단..
[Spring] spring-core 직접 구현해보기 - (0)
·
spring
Spring CoreSpring을 사용하다 보니 여러 질문들이 생기게 되었습니다.왜 Spring 프로젝트들은 이렇게 잘게 쪼개져 있을까?각 프로젝트는 정확히 어디까지 책임질까?Spring 소스 코드를 열어보니 복잡함을 많이 느꼈습니다.Spring에 대한 이해도가 낮았다고 느꼈고, 실제로 구현해보며 이해도를 높이고자 하였습니다.Spring의 목표Spring의 궁극적인 목표는 애플리케이션 코드를 최대한 순수하게 두고, 인프라·정책·환경·확장을 외부에서 입히는 것입니다. Spring이 수십 개의 프로젝트로 나뉘고, core부터 boot까지 층층이 쌓인 이유는 전부 이 목표를 위한 선택입니다.이 목표를 달성하려면, 프레임워크는 반드시 다음 능력을 가져야 합니다.애플리케이션 코드를 해석할 수 있어야 합니다메타데이..
성능 최적화 - 성능 저하 원인 찾기 (1)
·
spring
2025.04.03 - [데이터베이스] - 성능 최적화 - 병목 구조 튜닝하기 (2) 성능 최적화 - 병목 구조 튜닝하기 (2)https://featherdale.tistory.com/6 지난 포스팅지난 포스팅에서는 병목이 어디서 발생하는지 확인해 보았습니다.이번 글에서는 실제 실행된 PostgreSQL 쿼리를 기반으로 실행 계획을 분석하고,어떻게 성능featherdale.tistory.com2025.04.04 - [ELK] - 성능 최적화 - 모니터링 시스템 구축 (3) 성능 최적화 - 모니터링 시스템 구축 (3)지난 포스팅 :2025.03.31 - [spring] - 성능 최적화 - 성능 저하 원인 찾기 (1) 성능 최적화 - 성능 저하 원인 찾기 (1)느려진 성능 최적화 하기프로젝트를 살펴 보던 중..
[Spring] AOP의 개념 및 특징
·
spring
AOP란?Aspect-Oriented Programming (관점 지향 프로그래밍)AOP는 공통 기능을 분리해서 모듈화하고, 핵심 로직과 관심사를 분리하기 위한 프로그래밍 패러다임입니다.예시 코드public void transferMoney(Account from, Account to, int amount) { log.info("송금 시작"); // 공통 관심사 try { from.withdraw(amount); // 핵심 로직 to.deposit(amount); // 핵심 로직 } catch (Exception e) { log.error("에러 발생", e); // 공통 관심사 ..