All

    Spring Framework와 Spring Boot의 차이

    이번 포스팅에서는 Spring Framework와 Spring Boot의 차이에 대해 알아보겠습니다. 💡 Spring Framework가 뭐야? Spring Framework는 자바 플랫폼을 위한 오픈소스로 공개된 애플리케이션 프레임워크입니다. 동적인 웹 사이트를 개발하는데 필요한 여러 가지 서비스를 제공하는데 그중 특징적인 것 3가지만 정리하겠습니다. 1. 제어의 역전 (IoC, Inversion of Control) 일반적으로 개발자가 필요한 객체를 생성하고 해제하는 등 관리하는 방법이 아닌, 객체를 선언해놓기만 하면 (애노테이션을 이용하면 간단하게 가능합니다) 스프링 컨테이너가 자동으로 객체를 생성해주고 객체의 라이프 사이클을 관리해줍니다. 쉽게 말하면, 제어권이 개발자에게 있는게 아닌, 스프링 컨..

    @Component에 대해 (@Bean)

    @Component에 대해 (@Bean)

    Spring 으로 개발을 할 때 @Bean과 @Component의 차이를 명확하게 알고 사용한 게 아니었다는 걸 알고 정리를 하고자 오랜만에 글을 작성합니다. 먼저 @Bean과 @Component의 차이를 다루고, @Component에 대한 Spring 공식문서를 읽으며 정리하고 마무리하겠습니다. 두 애노테이션 모두 Spring Context에 해당 객체를 빈(Bean)으로 등록하기 위해 사용한다는 점은 공통점입니다. 차이점은 1. 용도와 2. 제한이 있습니다. 1. 용도 개발자가 통제하지 못하는 외부 라이브러리를 가지고 와서 빈으로 등록하려고 할 때, @Bean을 사용할 수 있습니다. 반면, 개발자가 직접 구현한 클래스를 빈으로 등록하려 할 때, 보통 @Component를 붙입니다. 결국, 둘다 스프링..

    @RequestBody 붙였어??

    @RequestBody 붙였어??

    준비 해당 포스팅의 제목이 이렇게 붙여진 이유는... 내가 그런 실수를 저질렀기 때문이다. ㅠㅠ 그래서 나의 바보짓을 공개적인 곳에 올리면서 제대로 기억할 겸 포스팅한다. @RequestBody 애노테이션은 한마디로 HttpRequestBody를 Java객체로 매핑해주는 애노테이션이다. 덕분에 API 요청으로 전송받은 JSON 데이터를 (우리가 따로 조작하지 않고도) 객체로 변환해서 받을 수 있게 된다. '@RequestBody'가 뭐지? 애노테이션 이름이 말해주는 그대로, 요청(Request)의 Body를 연결해주는 역할을 한다. 웹 요청의 body에는 json 형태로 데이터가 전달되는데, 컨트롤러 메서드의 매개변수 앞에 애노테이션 @RequestBody를 붙이면 해당 객체가 웹 요청의 body와 매핑..

    [MySQL, 윈도우] root 계정 비밀번호 재설정

    [MySQL, 윈도우] root 계정 비밀번호 재설정

    이번 포스팅에서는 윈도우에서 MySQL의 비밀번호 재설정하는 방법을 알아보겠습니다. 전체적인 순서는 아래와 같습니다. 1. MySQL 서비스 중지 2. 인증없이 접속할 수 있도록 재시작 (-skip-grant-tables 모드) 3. root 계정 접속 및 비밀 번호를 null로 설정 4. root로 비번 없이 접속 후 비밀번호 변경 (기존 모드 종료) 5. MySQL 서비스 시작 1. MySQL 서비스 중지 관리자 권한으로 명령 프롬프트(cmd)에 접속해야합니다. 아래 명령으로 작동 중인 서비스를 중지합니다. net stop MySQL80 2. 인증없이 접속할 수 있도록 재시작 (-skip-grant-tables 모드) 본인 PC에서 Data 경로를 확인해야합니다. 필자는 C:\\ProgramData\..

    [JPA] 쿼리 생성하는 메서드명의 keyword를 체크하자.

    [JPA] 쿼리 생성하는 메서드명의 keyword를 체크하자.

    에러 발생한 에러는 다음과 같습니다. Caused by: java.lang.IllegalStateException: Operator SIMPLE_PROPERTY on imageId requires a scalar argument, found class {클래스명} in method {메서드명}({메서드의 인자 path}). failed to creqte query ~~ 라고 하며 위와 같이 문제되는 메서드를 친절히 알려주는데, 해당 메서드가 쿼리를 만들어내지 못한다는 의미로 해석할 수 있습니다. 바로 아래 deleteAllByImageId() 메서드가 문제입니다. @Repository public interface ImageRepository extends JpaRepository { // 생략 void..

    [HackerRank] SQL 문제

    [HackerRank] SQL 문제

    The STATION table is described as follows: 문제 1. weather-observation-station-3 link Query a list of CITY names from STATION for cities that have an even ID number. Print the results in any order, but exclude duplicates from the answer. where LAT_N is the northern latitude and LONG_W is the western longitude. 풀이 중복되지 않는 결과를 output하기 위해서는 SELECT 뒤에 DISTINCT를 붙입니다. SELECT DISTINCT CITY FROM STATION..