분류 전체보기 244

[사이드 프로젝트] 서평 및 독서 모임 서비스

이번에 김영한님의 QueryDSL, JPA, Spring basic을 모두 수강한 기념으로 갑자기 생각난 아이디어로 사이드 프로젝트를 진행해 보려고 한다. 아마 계속 사이드 프로젝트에 대해 포스팅할거지만 현재 노션을 이용해 프로젝트를 진행해 보려고 하기 때문에 포스팅 속도가 느릴 수 있을 것 같다. 일단 오늘은 대략적인 개요를 만들어 봤다. 서평 및 독서 모임 서비스(가칭 책고라) 서비스 기획 배경 보통 혼자 책을 읽고 끝내는 경우가 많다. 그러나 학교 수업 중 독서 토론 수업에서 각자 책을 읽고 생각을 나누는 과정에서 내가 생각하지 못한 굉장히 다양하고 재미있는 생각들이 있다는 것을 알았다. 이후 독서 모임을 찾던 중에 “독서” 보단 “모임”에 치중되어 있다는 생각이 들었다. 그래서 마치 게임 매칭처럼..

카테고리 없음 2024.03.26

[내가 지은 시] 지하철 창문

지하철 창문 비가 추적추적 내리는 날 지하철을 타고 출근하는 난 창문을 통해 세상을 본다 달리는 지하철 창문에는 날카로운 칼자국이 하나 둘 그어진다 지하철이 멈추자 칼자국이 눈물로 변한다 오래묵은 사람들은 내리고 새로운 사람들이 들어온다 달리는 지하철 창문에는 다시 날카로운 칼자국이 하나 둘 그어진다 잔인한 세상 보지 말라며 창문을 흐린다 세상이 흐려진다 그 잔인한 세상이 궁금해 작은 글씨를 새겨 틈새로 세상을 다시 본다 2024-03-26 지하철 타면서 든 생각이다. 나에 대한 고민할 시간도 주지 않는다. 고민하면 도태, 일단 고르면 빠져나올 수 없는 늪. 정말 극단적인 세상이다. 누군가는 아니라고 할 수 있겠지만 지금까지 내가 겪어온 세상은 그런 것 같다. 그런데 계속 세상에 기대를 건다. "어딘가에..

나의 일기 2024.03.26

[백준 7569] 토마토 문제 풀이(JAVA)

문제는 다음 링크를 통해 볼 수 있다 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 문제 풀이 이번 문제는 dfs문제이다 익은 토마토가 있는 위치에서 위, 아래, 왼쪽, 오른쪽, 앞, 뒤중 익지 않은 토마토를 찾아 익은 토마토로 바꿔주면 되는 문제이다. 간단한 순서는 다음과 같다. 현재 익은 토마토의 위치를 큐에 모두 저장한다 큐의 사이즈를 저장한다 큐에서 익은 토마토 위치 하나를 꺼내고 해당 위치로부터 익힐 수 있는 토마토의 위치를 큐에 넣고 익은 토마토로 변경한다. 3번을 2에서 ..

백준 2024.01.26

[JAVA] 백준 22871 징검다리 건너기(이분 탐색)

문제는 다음 링크를 통해 볼 수 있다 22871번: 징검다리 건너기 (large) $N$개의 돌이 일렬로 나열 되어 있다. $N$개의 돌에는 왼쪽부터 차례대로 수 $A_{1} A_{2} ... A_{i} ... A_{N}$로 부여되어 있다. 가장 왼쪽에 있는 돌에서 출발하여 가장 오른쪽에 있는 돌로 건너가려고 www.acmicpc.net 문제 풀이 이번 문제를 풀기 위해 이분 탐색과 스택을 같이 사용했다. 아이디어는 다음과 같다 먼저 이분 탐색은 최소 힘을 탐색하는데 사용된다. 배열이 다음과 같이 주어졌을 때 이분 탐색은 다음과 같은 방법으로 수행된다. mid를 수정해 나가면서 어떤 값이 가장 최소 값인지 탐색하는 것이다. 그러면 mid가 최소값인지 판별하는 방법은 뭘까? 직접 경우에 수를 따져보는 것이..

백준 2024.01.11

[Spring Security] permitAll() 적용 안되는 문제

문제 상황 이번에 프로젝트를 진행하며넛 스프링 시큐리티를 이용하여 로그인을 하는 기능을 구현할 일이 있었다. 진행 과정 중에 permitAll()을 이용해서 접근 권한을 설정하는 부분에서 계속 무한히 login 페이지로 리다이렉팅하는 문제가 생겼다. 문제가 생긴 코드는 다음과 같다. package com.tutormatching.dotommorow.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; ..

Java/Spring 2024.01.10

[더 파이널스] 더 파이널스 실행 무반응 해결 방법

최근 나온 게임인 더 파이널스가 궁금해서 플레이하려던 중 무반응 현상을 겪었다. 이에 대해 필자의 해결책을 공유하려고 한다. 먼저 증상은 스팀에서 게임 실행을 하면 정상적으로 실행이 되다가 이후에 게임 실행만 된 상태로 반응이 없다. 필자는 파수 프로그램을 삭제하고 문제가 해결되었다. 파수 프로그램은 교보 문고 ebook 리더기를 설치하면서 따라온 drm 프로그램으로 불법적인 복제를 막기 위한 프로그램이다. 그러면 어떻게 삭제하는지 알아보자. 먼저 window + R 키를 누르고 창이 뜨면 control을 입력한다. 그러면 제어판이 나오는데 여기서 프로그램 및 기능을 클릭한다. 프로그램 및 기능에 들어가서 f키를 누르면 f로 시작되는 프로그램들이 나오는데 여기서 fasoo라고 적혀있는 프로그램을 지우면 ..

카테고리 없음 2023.12.10

[Spring] 스프링 부트 3.x에서 querydsl 사용하기(Intellij)

원래 2.7버전을 사용하다 최근에 start.spring.io에서 3.x버전만 지원하는 형태로 바뀌었다. 그러면서 querydsl에 대한 설정도 맞춰 변경을 해야 하는데 3.x버전에 대해 여러 정보들 중에 작동한 설정만 가져왔다. 먼저 gradle에 다음과 같은 코드를 추가해 준다. //querydsl implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.anno..

Java/Spring 2023.12.01

테스트 코드에서 로그를 찍어보자!

junit을 이용해 테스트 코드를 작성하다보면 log를 사용하여 어떤 결과가 나오는지 뽑아보고 싶을 때가 있다. 이때 사용할 수 있는 어노테이션으로 @Slf4j가 있는데 소스 코드에서는 스프링 부트 사용시 그냥 사용이 가능한데 테스트 코드에서 해당 어노테이션을 사용하려면 다음과 같이 설정해야 한다. 먼저 gradle 파일의 dependencies에 아래 설정을 추가한다. testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' 이후 테스트 코드에서 @Slf4j를 추가한다.

Java/Spring 2023.12.01

Modular 연산에 대해 알아보자!

나머지 연산(Modular) 이번에는 모듈러 연산에 대해 알아보려고 합니다. 모듈러 연산은 어떤 정수 a가 주어졌을 때 이를 0이 아닌 정수 b로 나눈 나머지를 구하는 연산입니다. 기호로는 mod를 사용합니다. 예를 들어 10을 3으로 나눈 나머지가 알고 싶다면 10 mod 3 = 1과 같은 방식으로 표현합니다. 이 나머지 연산은 코딩 문제를 풀면서 결과값이 커지는 걸 방지하기 위해 많이 사용하는데 나머지 연산에는 재미있는 규칙이 숨어 있습니다. 나머지 연산의 분배 법칙 나머지 연산에는 3가지 연산에 대해 분배 법칙이 존재합니다. (A + B) mod p = ((A mod p) + (B mod p)) mod p (A - B) mod p = ( (A mod p) - (B mod p)) mod p (A * ..

알고리즘 2023.11.27

[Spring] getParameter 메소드

파일 처리와 관련된 공부를 하다가 getParameter 메소드에 대한 궁금증이 생겼다. 먼저 필자가 알고 있던 내용은 다음과 같다. getParameter 메소드는 Http 요청이 왔을 때, parameter의 값을 얻을 수 있는 메소드이다. 파라미터는 get 요청에서는 www.example.com?name=limecoding에서 서 name=limecoding에 해당하고 post 요청에서는 body안에 name=limecoding을 말한다. request.getParameter(파라미터 이름)과 같은 형식으로 사용할 수 있다. 그런데 파일 전송을 하다보면 multipart-formdata를 사용하는데 이때 형식은 다음과 같은 형태이다. 바디 부분을 보면 ------WebKitFormBoundary와 ..

Java/Spring 2023.11.14