RDS(Relational Database Service)란 무엇인가? AWS에서 제공하는 관계형데이터베이스 서비스 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있습니다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화하고, 비용 효율적이고 크기 조정 가능한 용량을 제공합니다. 사용자가 애플리케이션에 집중하여 애플리케이션에 필요한 빠른 성능, 고가용성, 보안 및 호환성을 제공할 수 있도록 지원해주는 서비스 입니다. 간단히 말하면 관계형 데이터베이스를 제공하는 AWS의 서비스이다. 유저가 사용하기 쉽도록 인프라 등을 자동화 시켜주고 유저들은 앤드포인트로 접속할 수 있는 데이터베이스를 제공받는다. RDS 데이터베이스 엔진 MySql P..
스프링 프레임워크의 특징 제어의 역행 (IoC) Inversion of Control 애플리케이션의 느슨한 결합을 도모. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어 필요에 따라 스프링에서 사용자의 코드를 호출한다. 팩토리 패턴을 사용하여 객체 간의 결합도를 줄여 가독성을 좋게 하고, 코드 중복을 최소화하며, 유지보수를 편하게 할 수 있습니다. 기존에 사용자가 모든 작업을 제어하던 것을 컨테이너에게 위임하여 객체의 생성부터 생명주기 등 모든 객체에 대한 제어권이 넘어 간 것을 IoC라고 합니다. BeanFactory BeanFactory 인터페이스는 IoC컨테이너의 기능을 정의하고 있는 인터페이스이며, Bean의 생성 및 의존성 주입, 생명주기(lifecycle) 관리 등의 기능을 제공한다. 클라..
Spring Mvc @Controller spring의 controller를 의미한다 controller를 사용하면 @RequestMapping등의 추가적인 어노테이션을 사용할 수 있게 된다. @RestController @Controller + @ResponseBody controller중 view로 응답하지 않는 컨트롤러를 의미한다. ( View가 아닌 객체 자체를 반환) HttpResponse로 바로 응답이 가능하다. (@ResponseBody의 역할을 자동적으로 해줌) @RequestMapping http request 라우팅 어노테이션. 요청 형식을 정의하지 않으면 default는 GET이다. @RequestMapping은 Class와 Method에 붙일 수 있고, @GetMapping, @Po..
1. 단위 테스트 vs 통합 테스트 차이 [ 단위 테스트(Unit Test) ] 단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 여기서 모듈은 애플리케이션에서 작동하는 하나의 기능 또는 메소드로 이해할 수 있다. 예를 들어 웹 애플리케이션에서 로그인 메소드에 대한 독립적인 테스트가 1개의 단위테스트가 될 수 있다. 즉, 단위 테스트는 애플리케이션을 구성하는 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트하는 것으로, "어떤 기능이 실행되면 어떤 결과가 나온다" 정도로 테스트를 진행한다. [ 통합 테스트(Integration Test) ] 통합 테스트(Integration Test)는 모듈을 통합하는 과정에서 모듈 간의 호환성을 확인하기 위해..
slf4j Simple Logging Facade for Java Logback, Log4j2와 같은 Logging Framework의 추상화 역할을 합니다. 추상화 로깅 라이브러리이기 때문에 단독으로는 사용할 수 없고 배포 시에 개발자가 로깅 프레임워크를 선택해서 연결해줘야 사용할 수 있습니다. 대부분의 자바 로깅 모듈은 slf4j의 브릿지를 이미 제공해주고 있어서 slf4j와 다른 프레임워크를 연결하기 위해 추가로 구현 작업이 필요없습니다. 이미 만들어진 API를 찾아 그냥 넣어 주기만 하면 됩니다. logback을 쓰고 싶으면 slf4j-api를, log4j2를 쓰고 싶다면 log4j-slf4j-impl과 log4j-api를 추가하면 됩니다. 즉 slf4j를 사용함으로써 하나의 라이브러리에 종속적일..
환경설정 단축키 Open 관련 단축키 Content IntelliJ macOS IntelliJ Windows Content VS Code macOS VS Code Windows 문제 자동 수정 ⌥ + Enter Key 파일 찾기 (Go to File) ⌘ + ⇧ + O Ctrl + Shift + N Ctrl + P 클래스 찾기 (Go to Class) ⌘ + O Ctrl + N 심볼 찾기 (Go to Symbol) ⌘ + ⌥ + O Ctrl + Alt + Shift + N 액션 찾기 (Find Action) ⌘ + ⇧ + A Ctrl + Shift + A Ctrl + Shift + P 현재 Editor 파일 탐색 창에서 보이기 (Select in) ⌥ + F1 ⇢ Enter Key 자동으로 추적됨 설정 ..
Enum class란? 우리가 흔히 상수를 정의할 때 final static string 과 같은 방식으로 상수를 정의를합니다. 하지만 이렇게 상수를 정의해서 코딩하는 경우 다양한 문제가 발생됩니다. 따라서 이러한 문제점들을 보완하기 위해 자바 1.5버전부터 새롭게 추가된 것이 바로 "Enum" 입니다. Enum은 열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미합니다. 기존에 상수를 정의하는 방법이였던 final static string 과 같이 문자열이나 숫자들을 나타내는 기본자료형의 값을 enum을 이용해서 같은 효과를 낼 수 있습니다. 상수(常數, constant)란 수식에서 변하지 않는 값을 뜻한다. 이것은 변하는 값 변수와 반대이다. Enum의 장점 Enum을 사용하면서 우리가 얻을 수 ..
객체지향 5대 원칙이란, SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙)을 말하며, 앞자를 따서 SOILD 원칙이라고 부른다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 소프트웨어를 만드는데 이 원칙들을 적용할 수 있다. SRP (Single Responsibility Principle): 단일 책임 원칙 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임만을 가져야 한다. 한 클래스는 하나의 책임만을 가져야 합니다. 이때 하나의 책임을 구분하는 기준은 변경입니다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것으로 볼 수 있습니다. 여기서 책임이란, '기능' 정도의 의미로 해..