분류 전체보기 290

스프링 부트 테스트 코드에서 @Value가 작동하지 않는 문제 해결법

문제상황실제 서버를 작동시켰을 때에는 잘 작동하던 @Value가, 테스트 코드를 돌릴 때에는 작동하지 않는 문제가 발생했다!문제가 발생한 코드는 다음과 같다. Account.java(테스트의 대상이 되는 코드)package 내 프로젝트의 패키지 경로;import lombok.AccessLevel;import lombok.Builder;import lombok.Getter;import lombok.NoArgsConstructor;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.core.env.E..

#11723 : 집합

풀이방법 사용된 것: 구현 2023.09.20 실제로 Set을 선언하여 구현하면 시간초과가 발생한다. 이번에는 1차원 Boolean 배열을 사용하여 해결하였다. 후에 비트마스크를 사용해서도 시도해보겠다. 코드 Java(2023.09.20) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.HashSet; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ // TODO..

#18110 : solved.ac

풀이방법 사용된 것: 수학 구현 정렬 2023.09.20 의견의 개수 N이 0이라면, 0을 출력하고 프로그램을 종료한다. 의견의 개수 N이 1 이상이라면, 다음을 수행한다. N의 0.15배를 계산하여 이를 반올림한다. 이 결과를 M이라 하자. 모든 의견을 오름차순으로 정렬한 배열에서, 인덱스 M부터 N-M-1까지를 더한 후, 그 값을 2M으로 나눈 후 반올림한다. 코드 Java(2023.09.20) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] ar..

입력값의 제공 횟수가 정해져있지 않을 때의 해결법 (백준 기준)

백준 문제를 풀다 보면, 입력값의 제공 횟수가 정해져있지 않은 문제가 자주 등장한다. 예를 들면 다음 문제와 같다. https://www.acmicpc.net/problem/4436 4436번: 엘프의 검 중간계에 살고있는 엘프 종족은 특정 숫자를 다른 숫자보다 중요하다고 믿는다. 따라서, 그들은 금속 n만큼을 이용해서 칼을 만들 때, 두께를 다음과 같은 규칙을 지키는 k로 한다면, 엄청나게 www.acmicpc.net 본 문제에서는 한 줄에 하나씩 입력값이 주어진다. 단, 총 몇 줄의 입력값이 주어지는지는 정해져있지 않다. 따라서 계속해서 반복문을 돌리며 입력을 받다가, 입력값이 null이 되는 순간 작동을 종료해야 한다. 예를 들면 다음과 같이 하면 된다. import java.io.BufferedR..

#5358 : Football Team

풀이방법 2023.09.05 주어진 문자열에서, i는 e로 바꾸고 e는 i로 바꾸고 I는 E로 바꾸고 E는 I로 바꾸어 출력하는 문제이다. 조건문을 사용하여 문자열의 모든 문자를 확인한 후, i, e, I, E에 해당하는 문자가 발견될 경우 변경하면 된다. 코드 Java(2023.09.05) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub BufferedReader br = new Buf..

8장 프록시와 연관관계 관리

주요 내용 요약 프록시: 프록시란 무엇인가? 어떻게 작동하고 사용하는가? 즉시 로딩과 지연 로딩: 즉시 로딩과 지연 로딩은 무엇인가? 각각 어느 상황에 사용해야 알맞은가? 이를 언제 판단하는 것이 좋은가? 컬렉션 래퍼는 무엇인가? 영속성 전이: 영속성 전이란 무엇인가? 종류는 어떠한가? 고아 객체: 고아 객체란 무엇인가? JPA가 고아 객체를 자동으로 삭제하게 하려면 어떻게 해야 하는가? 프록시 한 마디로 정리하자면, 실제 클래스를 상속 받아 만들어진 가짜 객체이다. 여러 데이터 A와 B가 서로 연관관계를 가질 때, A를 조회할 때마다 이에 연결된 B 데이터까지 무조건 함께 조회할 필요가 있을까? 그렇게 하면 어플리케이션의 효율이 떨어질 위험이 있다. 이럴 때, 연관된 객체의 조회를 미루어두기 위해 사용..

Spring Security (멋쟁이사자처럼 영상강의) 실습 기록

팀 프로젝트에서 회원가입,로그인 파트를 맡게 되었다. 이를 위해 Spring Security를 배워야 해서 구글링을 하다가, 다음의 플레이리스트를 발견했다. https://www.youtube.com/playlist?list=PLAdQRRy4vtQTJawYfraUTUf6rCfWFYqKj 멋쟁이 사자처럼 백엔드 www.youtube.com 우리 팀 프로젝트와 버전 차이가 크지 않아 나에게 딱 맞는 강의였다. 강의의 내용도 좋았다. 이 게시글은 이 플레이리스트의 40번 강의부터 52번 강의까지를 들으며 진행한 실습 내용 기록이다. 프로젝트 생성 Spring Initializr (https://start.spring.io/) 를 이용하여 다음과 같은 프로젝트를 생성하였다. 일부러 강의가 아닌 우리 팀 프로젝트..

CD/CI 세션 개념정리

CD/CI란 CI: Continuous Integration, 지속적인 코드 통합 CD: Continuous Delevery/Deploy, 지속적이고 자동화된 배포 CD/CI의 과정 CI는 개발 과정에 관여하는 것이고, CD는 배포 과정에 관여하는 것이다. 그 모습을 간단하게 설명하면 다음과 같다. CI의 모습은 이렇다. 개발자가 코드의 변경사항을 PUSH하면, 바뀐 버전의 코드를 빌드해보고 문제가 있는지 테스트가 수행된다. 발견된 문제를 개발자가 고치고 나면, 다시 빌드와 테스트를 한다. CD는 말 그대로 배포를 자동화하는 것이다. 개발자가 코드를 PUSH하면, CD/CI 툴 프로그램이 지정된 저장소에 코드 파일을, 지정된 배포 주체에게는 배포 요청을 보낸다. 이때 배포 주체가 저장소에 접근할 수 있도..

기타 공부 2023.06.04

개요

이 카테고리는 김영한의 저서 '자바 ORM 표준 JPA 프로그래밍'을 읽고 노트정리를 남기는 카테고리이다. 한 장마다 하나의 게시글을 작성한다. https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=62681446 자바 ORM 표준 JPA 프로그래밍 에이콘 오픈 소스 프로그래밍 시리즈. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다. www.aladin.co.kr

MySQL&스프링 부트 - DB에 생성날짜가 null로 들어갈 때

https://github.com/Efub3-InternToyTeam2/Backend GitHub - Efub3-InternToyTeam2/Backend: 2023년 1학기 EFUB 프론트-백 인턴 합동 토이프로젝트(트위터 클론코 2023년 1학기 EFUB 프론트-백 인턴 합동 토이프로젝트(트위터 클론코딩)의 백엔드 리포지토리 - GitHub - Efub3-InternToyTeam2/Backend: 2023년 1학기 EFUB 프론트-백 인턴 합동 토이프로젝트(트위터 클론코딩)의 github.com 위의 리포지토리에 있는 EFUB 인턴 합동 토이프로젝트를 개발하다가, 저번에 했던 실수를 또 다시 저질러서 다시는 잊지 않고자 메모한다. 나는 BaseTimeEntity를 사용해 생성 및 수정 날짜를 관리하는 ..