전체 글 127

인텔리제이 에러 해결 - Package 'java.lang' is declared in module 'java.base', which is not in the module graph

Package 'java.lang' is declared in module 'java.base', which is not in the module graph IntelliJ 에서 String 이나 기본적인 있는 클래스 파일 참조가 안되고 위와 같은 에러가 발생했을 때 intellij 조치법 1. IntelliJ의 File -> Repair IDE 선택 2. 오른쪽 아래 진행과정에서 Rescan Project Indexes 3. 오른쪽 아래 진행과정에서 Reopen Project 로 intellij 재시작

Spring Boot 환경에서 Quartz Scheduler 사용하기

공부하게 된 이유 배치서버 작업 경험 중 배치서버가 이미 다 구현 된 상태이기 때문에 배치서버에 사용되는 Quartz 라이브러리를 잘 알지 못 해도 문제가 없었던 적이 있다. 배치작업 기능을 추가하는데 있어서 비지니스 로직을 추가하면 되는 상황이었다. 그렇지만 면접 준비를 하면서 작업 했던 환경에 대해서 설명을 요구할 수 있다고 생각해서 Quartz 라이브러리에 대해서 공부 해보기로 했다. 보통 대용량 데이터에 대한 작업을 순차적으로 처리하는데 사용되는 spring batch와 정해진 시간에 지정된 횟수만큼 반복적으로 특정 작업을 실행시키는 스케줄러 라이브러리인 quartz를 같이 사용한다고 한다. 그러나 spring boot 환경에서 spring batch 없이 quartz만 사용하여 batch ser..

spring 기본 요약 (사용 이유, 객체지향, IOC/DI/container, 빈 등록, 의존관계 주입, 스코프 등)

배경 레거시 소스를 파악하거나 프로젝트를 새로 만들 떄 spring에 대한 개념이 부족하면 어려움이 있다고 판단해서 spring에 대해서 공부하기로 하였습니다. 아래는 inflearn에서 김영한 spring 강의를 듣고 추가로 검색하면서 정리한 내용입니다. 목록 [이론] 스프링은 여러 뜻으로 사용됩니다. 스프링을 사용하는 이유는? 객체지향이란? 객체지향에서 다형성이란? 객체 지향 설계의 5가지 원칙 ( SOLID ) IoC, DI 그리고 컨테이너 싱글톤 패턴 컴포넌트 스캔과 의존관계 자동 주입 자동 빈 등록, 수동 빈 등록의 올바른 실무 운영 기준 의존관계 옵션처리 주입 대상이 되는 빈이 2개 이상이라면? 주입 대상이 되는 빈들을 모두 받고 싶을 때 (List, map) 빈 생명주기에 따른 콜백 기능 빈..

SOLID 원칙 적용

SOLID 원칙 적용 안된 예시 클라이언트 객체가 추상화된 인터페이스뿐만 아니라 구현 클래스도 의존하고 있는 상황. -> DIP 위반, SRP 위반 기능 추가시 클라이언트에서 구현클래스 사용부분을 새로운 구현 클래스로 갈아 끼워야 해서 클라이언트 객체도 수정해야함. -> OCP 위반 OrderServiceImpl.java에서 FixDiscountPolicy 부분을 주석처리하고 RateDisCountPolicy 구현체를 사용하도록 수정해야함 // DiscountPolicy disCountPolicy = new FixDiscountPolicy(); DiscountPolicy disCountPolicy = new RateDiscountPolicy(); SOLID 원칙 적용 예시 클라이언트 객체에 있던 구현클래..

AWS 공부중

[AWS] 목표 - 클라우드 서비스에 대한 이해 - AWS 인프라 구축 - EC2에 애플리케이션 배포 클라우드 컴퓨팅 Cloud Computing이란 컴퓨터 자원을 인터넷을 통해서 이용할 수 있는 서비스입니다. IAAS PAAS SAAS 참고 클라우드 컴퓨팅의 개요, 장단점, 서비스 모델, 활용 사례 및 발전 방향 (tistory.com) [AWS] 1.AWS란? (tistory.com) AMI EC2 Management console, CLI,SDK ECS, EKS 서버리스 컴퓨팅 - AWS Lamda Amazon S3 Amazon S3 Glacier - 저장소 Amazon EBS(Elastic Block Store) - 인스턴스용 영구 블록 스토리지, 스냅샷 기능, 암호화 사용 기능 Amazon Da..

intellij 셋팅

gradle보다 intellij로 하는게 속도가 더 빠름(미래에는 gradle이 더 빨라질 수도? ) gradle - Build and run using : Intellij IDEA gradle - Run and tests using : Intellij IDEA 콘솔 한글 깨짐, 테스트 코드 @DisplayName 한글 깨짐 1. File > Setting > File Encodings UTF-8로 수정 2. C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.3\bin idea.exe.vmoptions, idea64.exe.vmoptions 맨 아래 줄에 추가 -Dfile.encoding=UTF-8 3. help > Edit Custom..

spring-AOP

AOP 기본 형태 [Spring] AOP란? 용어 정리, 사용 방법 (tistory.com) @Aspect public class 어노테이션 이름 { @Around("execution(어노테이션 적용 대상 표현식)") //@Around("@annotation(TestAnnotation)") pivate Object 메서드 이름 (ProceedingJoinPoint joinPoint) throws Throwable { Object joinPoint = joinPoint.proceed(); return joinPoint } } 1) Target : 핵심 기능을 담고 있는 모듈로 부가기능의 대상을 의미 2) Aspect : 공통적으로 정의될 기능을 의미 @Aspect 어노테이션 - 공통 기능 메서드가 있는 클..

spring-@Resource, @Autowired, @Inject, 주입 방법(필드,생성자,setter)

참고) https://velog.io/@sungmo738/Resource-Autowired-Inject-%EC%B0%A8%EC%9D%B4 @Resource, @Autowired, @Inject 차이 의존 객체 자동 주입(Automatic Dependency Injection)은 스프링 설정파일에서 혹은 태그로 의존 객체 대상을 명시하지 않아도 스프링 컨테이너가 자동적으로 의존 대상 객체를 찾아 해당 객체에 필요한 velog.io https://devmg.tistory.com/143 Spring @Autowired, @Resource, @Inject의 어노테이션 차이 @Autowired, @Resource,@Inject은 모두 의존관계를 자동으로 연결해주는 기능을 가진 어노테이션이지만 조금씩 차이가 있다...