유저 프로필을 수정할 경우 본인 확인을 위해 먼저 현재 비밀번호를 입력받아서 체크하도록 구현했다.그리고 정보를 수정한다. 이 때 동일한 비밀번호로는 수정할 수 없도록 제한하기 위해 코드를 짜던 중 문제가 발생했다.현재 비밀번호 입력새 비밀번호 입력코드RequestDTO
Spring Boot에서는 @Valid를 사용하여 입력 데이터를 검증할 수 있다. DTO 클래스에 유효성 검증 조건을 선언하면, 컨트롤러에서 요청 데이터를 자동으로 검증한다.DTO@Valid로 유효성 검사를 수행하면, 검증 실패 시 Spring이 MethodArgume
SQL에서 데이터에서 날짜를 비교해야되는 문제가 있었다. 전날보다 온도가 더 오른 목록을 출력하는 문제였음. MySQL에서 날짜 차이를 구하기 위해 여러가지 방법이 있는데 정리해서 작성해 보려고 한다.먼저 기준 날짜에 입력된 기간만큼 더하거나 빼는 함수이다.결과 : 새
JPA는 Java Persistence API의 약자로, 자바 어플리케이션에서 데이터베이스와 상호작용하기 위한 표준이다.ORM 기술을 기반으로 동작하며, 자바 객체와 데이터베이스 테이블 간의 매핑을 간단히 처리할 수 있도록 도와준다.데이터베이스 테이블과 자바 객체를 매
일정을 수정하는 API를 만들고 Postman에서 테스트 했을 때 수정이 잘 되었다고 응답을 받았지만 다시 조회 API를 호출하니 수정이 제대로 반영되어 있지 않는 문제가 발생했다.일정 생성일정 수정일정 조회DB에 반영이 안되었으니 레포지토리 쪽 코드에 문제가 있을거라
웹 브라우저에 저장되는 데이터서버가 클라이언트의 상태를 기억하도록 도와준다.로그인 상태 유지 등에 활용된다.보안에 취약하다.민감한 정보를 저장하지 않아야한다.사용자 임의 수정이 가능하다.서버에서 중요한 정보를 보관하며 로그인을 유지하는 방법SessionId를 탈취하여도
Java 어플리케이션에서 입력 값을 검증하는 작업은 데이터 무결성을 보장하고 예상치 못한 오류를 방지하는데 매우 중요하다 ! @Valid와 @Validated는 둘 다 Java 어플리케이션에서 입력 값을 검증할 때 사용하는 어노테이션인데 오늘은 배운 내용을 복습하며 둘
이번에 일정관리 앱 프로젝트를 진행하면서 롬복에서 제공하는 편리한 기능을 사용했다.그 중에 생성자를 만들어주는 @AllArgsConstructor 와 Getter를 생성 하는 @Getter를 가장 많이 사용하지 않았나 싶다.하지만 현재 상황에서는 @AllArgsCons
Javadoc을 이용해 주석을 달아보면 좋을 것 같다는 피드백을 많이 받아서 이참에 블로그에 정리해 보려고한다.자바 코드에서 부가 설명이 필요할 때 사용함. 소스코드를 처음 보는 다른 개발자가 코드를 이해하기 더 수월하게 도와준다.JDK가 설치 되어있다면 사용할 수 있
SQL 쿼리를 작성하다보면 같은 구문이더라도 세미콜론의 유무의 따라 조회되는 값이 다르고 심지어 실행이 안되는 경우도 있었다. 이 부분에 궁금증이 생겨서 알아보았다.SQL에서 세미콜론(;)의 사용은 일반적으로 쿼리 구문의 끝을 나타내고, 여러 쿼리를 한 번에 실행할 때
자바 언어를 사용하여 DB와 상호 작용하기 위한 자바 표준 인터페이스로 데이터베이스 관리 시스템(DBMS)과 통신하여 데이터를 CRUD 할 수 있게 해준다.JDBC 의 구조JDBC의 주요 특징표준 API대부분의 RDBMS에 대한 드라이버가 제공되어 여러 종류의 DB에
SQL 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/59413오늘 SQL 문제를 풀다가 테이블도 하나이고 시간대별로 몇 개의 데이터가 있는지 뽑아내는 문제라 간단하다고 생각했다. 하지만 돌아오
Spring으로 API만들고 실제로 데이터를 저장하기 위해서는 DB가 필요하다. IntelliJ 스프링 프로젝트에서 MySQL을 연동하고 테이블을 생성하는 과정을 정리 해보려한다.먼저 MySQL을 사용하려면 라이브러리를 추가해줘야한다. build.gradle의 depe
날짜 데이터를 저장하기 위해서 LocalDateTime 타입 변수를 선언하고 생성일과 수정일을 넣어주기로 했다. DB없이 테스트 할 때는 문제가 없었지만 DB를 연동하고 저장할 때 문제가 발생했다.ResultSet의 getDate() 메서드는 java.sql.Date
SQL 문제를 풀고 다른 분들의 풀이를 보다가 알게된 날짜 필터링문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/144856기존에 썼던 방식또 다른 방식뭔가 조금 더 직관적이고 깔끔하고 가독성
Lombok 라이브러리에서 제공하는 기능 중 하나로, 클래스에 이 어노테이션을 추가하면 자동으로 Logger 객체를 생성해 주어 코드에서 직접 Logger 인스턴스를 생성할 필요없이 간편하게 로깅을 사용할 수 있게 한다.View가 있는 경우 사용한다. 즉, Templa
이번에 일정관리 앱 프로젝트를 시작하면서 첫 단계로 API 명세서와 ERD를 작성해보았다.우선 API 명세서는 API가 어떤 용도로 만들어졌는지, 어떤 요청 방식을 사용하는지 등을 설명하는 설명서라고 이해하면 될 것 같다. 제 3자가 이용할 때 이해하기 쉽게 디테일하게
HTTP는 클라이언트와 서버의 통신뿐만 아니라, 서버와 서버간의 데이터 통신에도 사용된다.큰 그림으로 보자면 이 정도일까클라이언트 -> 요청 -> 서버서버 -> 응답 -> 클라이언트클라이언트는 서버로 요청을 보내고 서버는 요청에 대한 결과를 응답해준다.서버는 클라이언트
https://school.programmers.co.kr/learn/courses/30/lessons/77487공간을 2개이상 등록한 '헤비 유저'를 조회하는 sql을 짜는 문제이다.WHERE절 안에서 서브쿼리를 작성해 해결하였다.IN은 무엇인지 ? 조회하고