Learn From Failure

고정 헤더 영역

글 제목

메뉴 레이어

Learn From Failure

메뉴 리스트

  • tag
  • 분류 전체보기 (112)
    • Algorithm (91)
    • NestJS (2)
    • Java (6)
    • Spring (8)
    • AWS (1)
    • DBMS (2)

검색 레이어

Learn From Failure

검색 영역

컨텐츠 검색

Spring

  • 헥사고날 아키텍처란

    2025.03.10 by aeongiii

  • [프로젝트 노트]동시성 이슈를 해결하는 여러가지 방법

    2024.12.16 by aeongiii

  • TestSuiteExecutionException: Could not execute test class 해결방법

    2024.12.12 by aeongiii

  • Bean 수동 등록, Bean 주입 우선순위 - @Qualifier와 @Primary

    2024.12.10 by aeongiii

  • ✍🏻IoC(제어의 역전), DI(의존성 주입)

    2024.12.04 by aeongiii

  • Spring Bean

    2024.12.01 by aeongiii

  • Spring 웹 개발 기본 원리

    2024.11.30 by aeongiii

  • 🔧Intellij - spring run 아이콘 비활성화

    2024.11.22 by aeongiii

헥사고날 아키텍처란

헥사고날 아키텍처는 비즈니스 로직을 중심으로 두고, Port와 Adapter를 통해 외부 시스템과 연결하는 구조이다.이 구조는 아래와 같은 특징이 있다. 특징 1. 외부 기술 스택(UI, DB, 프레임워크 등)에 종속되지 않고 비즈니스 로직을 보호한다.특징 2. 같은 비즈니스 로직을 다양한 인터페이스로 접근할 수 있어 애플리케이션을 유연하게 구성할 수 있다.특징 3. 외부 의존성을 쉽게 Mocking 할 수 있어 테스트가 용이하다. 요소 (1) 도메인(Domain)헥사고날 아키텍처의 중심에는 핵심 비즈니스 로직이 있다.이 영역은 외부 시스템과 철저히 분리되며, 주요 Entity, Domain Service, Use Case 등이 포함된다.1. 비즈니스 규칙을 표현하는 코드만 존재하며, 외부 요소(UI, ..

Spring 2025. 3. 10. 18:33

[프로젝트 노트]동시성 이슈를 해결하는 여러가지 방법

1. 동시성 이슈1.1 동시성여러 작업이 동시에 실행되는 상황을 말한다.예를 들어, 수많은 사용자가 동시에 웹 애플리케이션에 접속해 데이터를 수정하거나 읽을 경우를 말한다.1.2 동시성 이슈여러 트랜잭션이 동시에 같은 데이터를 수정하거나 읽을 경우, 데이터의 일관성과 정합성이 깨질 수 있는 상황을 말한다.Ex)은행 계좌 이체 - 두 사용자가 동시에 같은 계좌에서 출금하려고 할 때 금액이 올바르게 차감되지 않는다면?재고 관리 - 재고가 1개 남은 상황에서 두 사용자가 동시에 주문을 넣는다면?2. 동시성 이슈 유형 2.1 Dirty Read (더티 리드)한 트랜잭션이 아직 커밋되지 않은 데이터를 읽어오는 경우A 트랜잭션이 데이터를 수정했다가 롤백했지만, B 트랜잭션이 수정된 값을 미리 읽은 상황2.2 Non..

Spring 2024. 12. 16. 14:50

TestSuiteExecutionException: Could not execute test class 해결방법

테스트코드를 작성하고 실행해봤는데 전혀 실행이 안 됐다.report 확인한 결과 테스트파일 자체를 찾지 못했다. 알고보니 설정을 간단히 변경하면 해결 가능했다.  인텔리제이 Settings > Build, Execution, Deployment > Build tools > Gradle > Run tests using 을 IntelliJ IDEA로 바꿔주면 된다!

Spring 2024. 12. 12. 16:42

Bean 수동 등록, Bean 주입 우선순위 - @Qualifier와 @Primary

1. Bean 자동 등록@Component를 사용하면 @ComponentScan에 의해 자동으로 Bean에 등록된다.일반적으로 @Component를 사용하여 자동으로 등록하는 것이 좋다.프로젝트의 규모가 커지면 등록할 Bean이 매우 많아지기 때문이다.특히, 비즈니스 로직 관련 클래스는 @Controller, @Service 와 같은 애너테이션을 사용해야 개발생산성에 유리하다.  2. Bean 수동 등록기술적인 문제나 공통적인 관심사를 처리할 때 사용한다.비즈니스 로직보다는 Bean의 수가 적기 때문에 수동으로 등록할 만 하다.기술 지원 Bean : 비즈니스 로직을 지원하는 부가적, 공통적 기능Ex) 공통 로그 처리수동등록 방법Bean으로 등록하고자 하는 객체를 반환하는 메서드를 선언하고 @Bean 붙이..

Spring 2024. 12. 10. 22:07

✍🏻IoC(제어의 역전), DI(의존성 주입)

1. IoC (제어의 역전, Inversion of Control)프로그램의 제어 흐름을 구현된 객체가 직접 관리하는 것이 아니라 외부에서 관리하는 것.기존 프로그램에서는 클라이언트 구현 객체가 직접 서버 구현 객체를 생성/연결/실행했다면, Config 클래스에서 필요한 객체를 생성 후 클라이언트에 주입하는 방식으로 변경하는 것이다.프로그램 제어 흐름에 대한 권한을 담당하는 외부 클래스가 따로 있는 것. 2. 프레임워크, 라이브러리프레임워크 : 내가 작성한 코드를 제어하고, 대신 실행한다.Ex) JUnit라이브러리 : 내가 작성한 코드가 직접 제어의 흐름을 담당한다. 3. DI (의존관계 주입, Dependency Injection)의존성 : 객체를 생성 및 사용함에 있어 의존 관계가 있는 경우. “이 ..

Spring 2024. 12. 4. 20:14

Spring Bean

1. 컴포넌트 스캔과 자동 의존관계 설정 (자동 등록)1) 컴포넌트 스캔@Controller, @Service, @Repository와 같은 애너테이션은 모두 @Component 애너테이션을 포함한다.@Component 애너테이션이 있으면 컴포넌트 스캔에 의해 스프링 빈으로 자동 등록된다.실제로 @Controller에 대한 설명을 보면 @Component 애너테이션이 달려 있는 것을 확인할 수 있다.스프링 빈으로 등록될 때 기본적으로 싱글톤 방식으로 등록된다. (같은 스프링 빈이면 인스턴스 하나만 등록해서 공유함)2) 자동 의존관계 설정Controller에서 Service를, Service에서 Repository를 사용하려면 의존관계가 필요하다.생성자에 @Autowired가 있으면 스프링이 연관된 객체를..

Spring 2024. 12. 1. 21:37

Spring 웹 개발 기본 원리

웹 브라우저에서 http://localhost:8080/hello-spring.html 호출할 경우→ 내장 톰캣 서버를 거쳐 스프링부트로 들어온다.→ (1) 컨트롤러에서 찾는다. hello-spring이라는 컨트롤러가 있는가? ⇒ mvc방식 또는 api 방식→ (2) resources 폴더에서 찾는다. hello-spring.html 파일이 있는가? ⇒ 정적 컨텐츠 방식   1. 정적 컨텐츠파일을 그대로 내려준다.http://localhost:8080/hello-spring.html 2. MVC와 템플릿 엔진템플릿 엔진을 모델, 뷰, 컨트롤러 방식으로 쪼갠다.@RequestParam이 붙어있다.name을 받아서 model에 저장한다. model(name:spring)return값인 “hello-templ..

Spring 2024. 11. 30. 20:58

🔧Intellij - spring run 아이콘 비활성화

Spring Boot 프로젝트를 인텔리제이에서 실행하려고 시도했으나, 아래 문제들이 발생했다.문제상황과 해결과정을 적어보려고 한다. 문제상황1. Gradle 빌드 오류 및 Classpath 문제Gradle 빌드와 IntelliJ 의 설정 불일치로 인해 애플리케이션이 실행되지 않았다.// 오류 메시지Main class name has not been configured and it could not be resolved from classpath. 2. Main Class 탐지 실패Edit Configuration > Spring Boot > JmErpApplication 설정에서 Main Class를 찾지 못하는 오류 발생.// 오류메시지Error: Could not find or load main cl..

Spring 2024. 11. 22. 22:53

추가 정보

인기글

최신글

페이징

이전
1
다음
TISTORY
Learn From Failure © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바