목록Backend/스프링 (19)
개발 무지렁이

🌱 Spring의 설계 철학 : 개발자가 Spring Framework에 종속되지 않고 POJO 객체를 사용하여 애플리케이션을 개발할 수 있게 하는 것 🍩 POJO를 이용한 가볍고, 비침투적인 개발 🍩 DI와 인터페이스 지향을 통한 느슨한 결합도 (다른 구현체로 교체하기 쉽다.) 🍩 Aspect와 공통규약을 통한 선언적 프로그래밍 🍩 Aspect와 템플릿을 통한 상투적인 코드 축소 ❓선언적 프로그래밍 : 무엇을 달성해야 하는지에 대해 명시적 설명 어떻게 달성하는지에 대한 세부사항은 숨겨져 있다. 𐂂 POJO (Plain-Old Java Object) 특별한 제약이나 규칙을 따르지 않는 평범한 자바객체를 가리킨다. Spring Framework는 Spring에 특화된 클래스를 요구하지 않으며, 기본은 PO..

🦉 DataSource : 데이터베이스와 연결할 수 있는 정보가 들어있는 객체를 말한다. (⚠️ Spring이 DataSource를 주입해준다) 📜 SpringConfig.java @Configuration // Spring Bean으로 관리된다. public class SpringConfig { DataSource dataSource; @Autowired public SpringConfig(DataSource dataSource) { this.dataSource = dataSource; } @Bean public MemberService memberService() { return new MemberService(memberRepository()); } @Bean public MemberReposito..

𐂂 빌드툴 (Maven, Gradle) 필요한 라이브러리를 땡겨오고, + 버전설정 빌드된 라이브러리의 라이프사이클 및 의존관계를 관리해주는 툴을 말한다. 🗿 Artifact : 빌드되어 나온 결과물 𐁍 org.springframework.boot:spring-boot-starter 및 그 밖의 라이브러리 스프링부트(Spring boot) + 스프링코어(Spring core) + 로깅(logging) // spring boot. org.springframework.boot:spring-boot-starter-web - spring-boot-starter-tomcat 🐱 // 소스라이브러리에서 웹서버를 내장 - spring-webmvc // spring core. org.springframework:spri..

𐂂 H2 데이터베이스 관계형 데이터베이스 관리 시스템(DBMS) 중 하나로, 가볍고, 내장형으로 사용할 수 있는 데이터베이스 엔진이다. 개발 및 테스트 환경에 적합하며, 표준 SQL문법을 따른다. 🐘 build.gradle dependencies { .. (생략) implementation 'org.springframework.boot:spring-boot-starter-jdbc' // jdbc 드라이버 runtimeOnly 'com.h2database:h2' // H2데이터베이스가 제공하는 클라이언트 } 📮 application.properties spring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource...

𐂂 의존관계 하나의 클래스 내에서 다른 객체를 포함하고 있을 때, '이 클래스가 해당 객체에 의존한다'라고 표현할 수 있다. 𐁍 Dependency Injection(의존성 주입, DI) 이란 의존관계를 만들어 주기위해, 외부에서 객체를 생성해서 클래스 내에 주입하는 것을 의미한다. 즉, 외부(🪺Spring Container)에서 싱글톤으로(하나만 등록해서 공유) 객체를 생성해서 주입해주는 것을 말한다. WHY 싱글톤으로 객체를 생성하는 이유 Controller, Service, Repository에 있는 메서드를 호출하는 것이 목적이기 때문에, 굳이 여러개 만들 필요가 없다. 하나만 생성해서 공용으로 쓰면된다. 🪺Spring Container에 등록하면 딱 하나만 등록된다. ⚠️ 같은 Spring Be..

📌.트랜잭션(Transaction)이란? : 데이터의 조작이 일어나는 여러 작업 프로세스를 하나의 단위로 묶어 일관성있게 commit or rollback할 수 있게 하는 것을 말한다. 원자성 부여. (하나의 작업이라도 실패하면 모두 실패) ex. 💰 결제와 동시에 좌석할당 결제를 수행 + 결제내역 저장 + 구매내역 저장 Spring Framework Transaction 📌. Transaction 동작원리 Caller -> AOP Proxy -> Transaction Advisor(transaction 생성) -> Custom Advisor(s) -> Target Method -> Custom Advisor(s) -> Transaction Advisor(commit or rollback) -> AOP ..