[Spring] 커스텀 에러 만들기
·
SpringBoot
저는 현재 회사에서 WebFlux 를 활용한 PG 도메인 프로젝트를 진행하며, 커스텀 에러를 사용하고 있습니다.이번 글에서는 WebFlux 뿐만 아니라 MVC 환경에서도 적용 가능한 커스텀 에러 설계 및 사용 방법을 공유하고자 합니다. 중간에 WebFlux 문법이 등장할 수 있지만, 사용된 어노테이션은 MVC 환경에서도 적용 가능하니 참고해 주세요 ☺️🪴 들어가기 전커스텀 에러에 대해 소개하기 전에 이 글에서 다뤄질 에러 종류에 대해 정리하고 가겠습니다.이 글에서 언급하는 에러는 크게 HTTP 통신 에러와 애플리케이션 단계의 에러 두 가지로 나눌 수 있습니다.HTTP 통신 에러는 클라이언트가 직접적으로 받게 되는 에러로, 서버에서 응답한 HTTP 상태 코드와 메시지를 통해 전달됩니다.애플리케이션 단계의..
[Mongo] ObjectId 중복가능성
·
데이터베이스/Mongo
MongoDB를 사용하면서 ObjectId 타입을 접하게 되었습니다. 저는 ObejctId에 대해서 MongoDB의 Document를 식별하기 위해 사용되는 12바이트의 식별자라고만 인지하고 있었습니다.그런데 저희 팀의 사수님께서 'ObjectId가 생성될 때 프로세스 ID 값도 사용된다'는 말씀을 해주셨습니다.단순히 랜덤숫자와 생성날짜의 조합이 아닌 프로세스의 ID값이 생성될 때 영향을 미친다?  저는 ObjectId가 생성될 때 영향을 주는 다른 값들도 존재하는지, 그리고 존재한다면 어떤 것들이 있는지 궁금해져 이 글을 작성하게 되었습니다. 1. MongoDB와 BSON 먼저, MongoDB는 BSON을 사용하고 있습니다. 또한  NoSQL 데이터베이스로 문서 기반(Document-Oriented) ..
[Mongo] MongoDB 설치 및 간단한 테스트 진행 (+에러해결)
·
데이터베이스/Mongo
1️⃣ MongoDB 설치 및 DB 생성1. MongoDB Homebrew 추가brew tap mongodb/brew 2. brew 업데이트brew update 3. MongoDB 설치 진행brew install mongodb-community@7.0 4. MongoDB 서버 시작 명령어brew services start mongodb/brew/mongodb-community 5. MongoDB 서버 종료 명령어brew services stop mongodb/brew/mongodb-community 6. MongoDB Compass (GUI) 설치설치만 해두고 8 단계에서 DB 생성하겠습니다. https://www.mongodb.com/try/download/compass Try MongoDB Tools..
[Docker] Docker + mysql container 생성 + DBeaver 접속
·
데이터베이스/Docker
1. Docker 란도커란 컨테이너화된 애플리케이션을 만들고 실행하기 위한 오픈 소스 플랫폼입니다.쉽게 말해 애플리케이션을 실행하기 위한 특별한 환경인 컨테이너를 만들어주는 도구입니다. 이 컨테이너는 애플리케이션과 필요한 모든 것들을 함께 묶어서 이동하고 실행할 수 있도록 도와줍니다.이를 통해 애플리케이션을 더 쉽고 효율적으로 관리할 수 있습니다. 2. Docker 설치- macOS 유저https://docs.docker.com/desktop/install/mac-install/ Install Docker Desktop on MacInstall Docker for Mac to get started. This guide covers system requirements, where to download, a..
[error] No mapping found for HTTP request with URI 에러
·
공통
개발을 진행하던 도중에 No mapping found for HTTP request with URI 라는 에러가 발생하였습니다. 해당 에러를 해결한 방법을 기록하고자 합니다. 1. pom.xml 파일 확인 action *.do / url-pattern을 확인해봅시다. 2. 캐시 지우기 및 프로젝트 클린 저의 경우 이 방법으로 해결하였습니다. 캐시를 지우고(파일>캐시 무효화) 클린 후 재시작하였더니 해결되었습니다. 3. @RequestMapping 의 value 주소 오타 확인 오타가 있어서 url 요청 에러가 발생할 수 있습니다.해당 API 를 확인해는 것을 추천합니다.
[JAVA] 기본타입 과 Wrapper Class
·
JAVA
0    시작하기 앞서...  ' int 형으로 선언할 때와 Integer 로 선언할 때 무엇이 다를까! '어느날 문득! 매개변수에 변수를 선언하던 도중 이런 생각을 해보았다.    int, float, double, char, boolean 과 같은 것을 기본타입이라고 하고 Integer, Float, Double, Character, Boolean와 같은 것을 Wrapper Class 라고 합니다.     기본타입과 Wrapper Class 의 육안적으로 보이는 가장 큰 차이점은 Wrapper Class 가 대문자로 시작한다는 것입니다. 대문자를 사용하는 것에는 클래스가 있습니다. Integer, Float, Double, Character, Boolean 등 이러한 것들은 클래스 타입이라고 부를 수..
[Spring] Spring Bean 생성 주기 및 어노테이션 비교
·
SpringBoot
Spring Bean ?Spring Bean 스프링 컨테이너가 생성하고 관리하는 객체를 뜻한다.스프링 빈은 컨테이너에 등록되어 있으며, 필요한 경우 스프링 컨테이너가 해당 객체를 제공한다. Spring Bean  생성 주기 (1-8단계)@SpringBootApplication 으로 어플리케이션 기동 시  Component Scanner가 발동하게 되는데 Bean 생성 주기는 아래와 같다.   1. @Configuration2. @Controller3. @Component4. @Repository5. @Service6. @Bean 이 순서대로 Bean 을 등록한다. 이후에는  7. @Autowired 어노테이션으로 의존성 주입을 하고 8. @PostConstruct 생성자가 위의 모든 일들이 이루어지고 난..
[공통] 네트워크 프레임워크 정의와 종류 (비동기, 동기)
·
공통
0. 시작하기 전 채팅 서비스를 구현하기 위해 네트워크 프레임워크인 Netty 를 사용해야 했다. 네트워크 프레임워크에 대해 무지한 상태이기 때문에 Netty 학습을 들어가기 전 네트워크 프레임워크에 대해 짧게 학습하고자 한다. 순서는 아래와 같다. 1. 동기 vs. 비동기 2. 블로킹 vs. 논블로킹 3. 네트워크 프레임워크 4. 이벤트 기반 네트워크 프레임워크 5. 네트워크 프레임워크 vs. 이벤트 기반 네트워크 프레임워크 1. 동기 vs. 비동기 동기 (Synchronous) 순서대로 실행되는 것을 의미 한 작업이 시작되면 그 작업이 끝날 때까지 다른 작업이 실행되지 않음 한 작업이 끝나야 다음 작업이 실행됨 비동기 (Asynchronous) 작업이 동시에 실행됨 한 작업이 실행되는 동안 다른 작업..