본문 바로가기

전체 글

(59)
DIP(Dependency Inversion Principle) 안녕하세요! 이번 포스팅에서는 DIP에 대해 알아보도록 하겠습니다! DIP는 객체지향설계 5원칙(SOLID)에서 D에 해당하는 원칙이며, 아래와 같은 의미를 가지고 있습니다. 저수준 모듈이 고수준 모듈에 의존하게 되는 것 하지만 이 설명만 봐서는 도저히 무슨 소리인지 감이 잘 잡히지 않습니다. 그래서 DIP가 무엇인지, 왜 사용하는지, 어떻게 사용하는지에 대해 알아보도록 하겠습니다! 혹시 글을 읽으면서 잘못된 내용이 있으면 댓글로 알려주시면 감사하겠습니다! 🌳 계층 구조 아키텍처 보통 계층 구조는 위 사진과 같은 구조로 되어 있습니다. 표현 계층 : 사용자의 요청을 받아 응용 영역에 전달함과 동시에 처리 결과를 사용자에게 표시 응용 영역 : 사용자에게 제공해야 할 기능 구현 도메인 영역 : 도메인의 핵심..
[intelliJ] intelliJ Task와 Github 연동하기 문제 발생 Github에서 이슈를 따고 intelliJ에서 Task를 만들려고 했는데, Github와 intelliJ가 연동이 제대로 되지 않아서 Task가 보이지 않는 이슈가 발생했다. 해결 방법 command (윈도우의 경우에는 ctrl) + shift + a을 누른 후에, Tasks를 검색해주어서 들어가준다. Tasks - Servers에 들어가준 후, +버튼을 누르고 Github를 클릭해준다. Repository에 유저 이름과 레포지토리 이름을 순서대로 입력해준 후에, Create API Token로 토큰을 발급해준다. 그 후에 Test를 눌러 Connection이 제대로 되는지 확인한다. 정상적으로 Connection이 되었는지 확인하기 위해, 다시 Open Task에 들어가 준 후에 생성한 이..
[Spring Boot] H2를 사용하면서 자주 나오는 오류들 1. h2-console 404 not found (whitelabel error page) properties 설정에 h2-console 사용 여부를 설정하지 않았을 때 발생하는 에러이다. application.properties(또는 .yml)에 아래 설정을 추가한다. apllication.properties spring.h2.console.enabled=true 2. Database "mem:testdb" not found properties 설정에 datasource url을 설정하지 않았을 때 발생하는 에러이다. (다른 프로젝트는 설정해주지 않아도 잘 동작하는데 가끔 발생한다. 정확한 원인은 모르겠다 ㅜㅜ) apllication.properties spring.datasource.url=jdbc..
Spring Security Error Message 커스텀하기 안녕하세요! 이번 포스팅에서는 Spring Security에서 로그인에 실패했을 때 나오는 에러 메세지를 커스텀 해보도록 하겠습니다! 🤗 이번 포스팅에서 사용할 스프링 시큐리티가 적용된 프로젝트는 전 게시글에서 진행한 프로젝트입니다. 전체 코드는 Github에서 확인이 가능합니다. 💻 구현 1. Config 파일 작성하기 가장 먼저, Message 인코딩 설정을 위해 Config 파일을 작성해보겠습니다. SecurityMessageConfig.java /** * 메세지 관련 Config 파일 */ @Configuration public class SecurityMessageConfig { @Bean public MessageSource messageSource() { Locale.setDefault(Lo..
Spring Security로 로그인/회원가입 프로젝트 안녕하세요! 이번 포스팅에서는 Spring Security에 대해 알아보겠습니다. 🤗 Spring Security는 정말 자주 사용하는 기능이자 그만큼 중요하기 때문에 전체적인 내용을 복습할 겸 잊어버리지 않기 위해 포스팅에 기록해두려고 합니다. 전체 코드는 Github에서 확인이 가능합니다. ✍️ 개념 정리 1. Spring Security란? Spring Security란 보안 솔루션을 제공해주는 Spring 기반의 스프링 하위 프레임워크입니다. Spring Security에서 제공해주는 보안 솔루션을 사용하면 개발자가 보안 관련 로직을 짤 필요가 없어 굉장히 간편합니다. Spring Security를 이해하기 위해서는 인증과 권한에 대한 뜻을 알아야 합니다. 2. 인증과 권한 인증(Authentic..
IntelliJ Plugin 만들기(3) - 플러그인 추출하고 배포하기 안녕하세요! 이번 포스팅에서는 전 포스팅에서 만들었던 예제를 추출하고 배포해보도록 하겠습니다. 모든 코드는 Github에 올려두었습니다! 목차 IntelliJ Plugin 만들기(1) - 프로젝트 생성하기, pom.xml 살펴보기, Action 정의하기 IntelliJ Plugin 만들기(2) - Action 정의하기 & UI 만들기 IntelliJ Plugin 만들기(3) - 플러그인 추출하고 배포하기 플러그인 추출 1. build.gradle 버전, 그룹 변경 플러그인을 추출하기 전, 버전을 변경하기 위해 build.gradle에서 설정을 수정합니다. build.gradle ... group 'me.shinsunyoung' version '1.0' ... 첫 프로젝트이기 때문에 버전을 1.0으로 설정..
IntelliJ Plugin 만들기(2) - Action 정의하기 & UI 만들기 안녕하세요! 이번 포스팅에서는 내가 원하는대로 UI를 만들고 단축키를 눌렀을 때, UI가 나오게 하는 예제를 만들어보도록 하겠습니다. 모든 코드는 Github에 올려두었습니다! 목차 IntelliJ Plugin 만들기(1) - 프로젝트 생성하기, pom.xml 살펴보기, Action 정의하기 IntelliJ Plugin 만들기(2) - Action 정의하기 & UI 만들기 IntelliJ Plugin 만들기(3) - 플러그인 추출하고 배포하기 Action 정의 1. Action 정의하기 plugin.xml 저번 포스팅과 마찬가지로 Action을 먼저 정의해줍니다. xml 파일에 직접 action을 정의해도 되고, 전 포스팅에서 소개해 드린 Plugin Dev Kit을 이용해도 되지만, Plugin Dev..
IntelliJ Plugin 만들기(1) - Gradle 기반 프로젝트 생성하기, pom.xml 살펴보기, Action 정의하기(with Plugin DevKit) 안녕하세요! 이번 포스팅은 IntelliJ Plugin을 만드는 튜토리얼 시리즈입니다! 플러그인으로 있었으면 좋겠다고 생각해서 플러그인을 만들기 시작했는데, 한글로 된 자료도 부족하고 전체적으로 구글링도 힘들었던 기억이 있어서 조금이라도 도움이 되고자 간단한 튜토리얼을 작성했습니다! 저도 잘 모르기 때문에 잘못된 내용이 있으면 얼마든지 지적해주시면 감사하겠습니다 😸 모든 코드는 Github에 올려두었습니다! 목차 IntelliJ Plugin 만들기(1) - 프로젝트 생성하기, pom.xml 살펴보기, Action 정의하기 IntelliJ Plugin 만들기(2) - Action 정의하기 & UI 만들기 IntelliJ Plugin 만들기(3) - 플러그인 추출하고 배포하기 프로젝트 생성 1. 프로젝트 생..