일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- TagLibraryValidator
- IT 좀 아는 사람
- 회의실 배정
- 지연로딩
- 구름톤 트레이닝
- 코드트리
- 구름톤
- 행복한 수열의 개수
- 공부 기록
- 백준 #1010 #다리놓기
- 최장 공통 부분수열
- 동적 계획법
- 공부하기 싫어 #그래도 해야해
- 코딩테스트
- eager
- til
- 금 채굴하기
- JPA
- 즉시로딩
- 코딩테스트실력진단
- Today I Learned
- 구름톤 챌린지
- 백준
- spring
- 1005 #ACM craft #백준
- 1931번
- 멀록 조명등
- 코드트리 챌린지
- @EntityGraph
- 완전탐색
- Today
- Total
목록Study (38)
화분
멀티스레딩을 공부하면서 스레드에 대한 코어 할당과 스레드의 yield() 메서드에 대한 궁금증이 생겨서 직접 여러가지 코드를 작성해보고 Gemini를 통해 알아낸 것들을 정리하고자 글을 썼다. 우선 yield()를 공부하기 위해 '이것이 자바다(개정판)'의 멀티스레드 파트에 적힌 예시 코드와 이것에 궁금한 점들을 해결하고자 추가적인 코드를 작성해가며 실험해보았다. 먼저 yield() 란? CPU 코어를 할당 받아 작업을 처리하던 스레드가 일을 안할때 해당 CPU 코어, 즉 코어를 할당 받은 커널 스레드를 다른 프로세스 내 스레드에게 양보하여 CPU의 효율을 끌어올리기 위한 메서드라고 생각하면 된다. WorkThread.java : Thread를 상속 받은 WorkThread 이다. 아래와 같이 if문의 ..
@EntityGraph 를 사용하게 된 이유 우선 다음과 같은 목적으로 쿼리를 짜는 과정에서 다양한 고민을 하였다. Team 엔터티와 Team에 지원하는 다수의 Appicant 엔터티가 존재한다. Team 엔터티와 Applicant 관련 연관관계 매핑시 Loading Strategy은 FetchType.LAZY로 설정하였다. 커서 페이징 방식으로 10개의 Team엔터티(게시글에 해당)를 거기에 속한 Applicant엔터티들과 함께 꺼내오려 한다. 최근 등록일자를 기준으로 내림차순으로 쿼리를 짜려한다. 위와 같은 문제를 해결하기 위해 쿼리를 짜기 전에 JpaRepository를 상속받아서 메서드명을 통해 데이터베이스에서 원하는 데이터를 꺼내오려 했다. @Repository public interface M..
WebSocketHandler란? 웹소켓 메시지와 수명 주기 이벤트를 위한 핸들러입니다. 이 인터페이스의 구현은 예외를 로컬에서 처리하는 것이 좋습니다. 예외를 로컬에서 처리하는 것이 좋으며, 그렇지 않은 경우 기본적으로 예외를 버블 처리합니다. 예외가 기록되고 세션이 다음과 같이 닫힙니다. SERVER_ERROR(1011) 전략은 다음과 같이 제공됩니다. ExceptionWebSocketHandlerDecorator ExceptionWebSocketHandlerDecorator에 의해 제공되며, 사용자 정의하거나 다음을 장식하여 대체할 수 있습니다. 다른 데코레이터로 웹소켓 핸들러를 장식하여 사용자 정의하거나 대체할 수 있습니다. public interface WebSocketHandler { /** ..
problem: 상위 댓글 객체를 저장하는 변수에 @JoinColumn 설정 시 기본키인 id를 지정해줄 때 오류가 발생하였다. solve: @JoinColumn을 아래와 같이 수정하고 다시 서버를 실행시켰더니 정상적으로 테이블을 생성하고 동작하였다. @JoinColumn(name = "parent_comment_id", referencedColumnName = "comment_id", columnDefinition = "bigint default null", insertable = false, updatable = false, foreignKey = @ForeignKey(name = "fk_parent_comment_id"))
문제 : java 17 버전을 사용하는데 gradle 5.x대 버전은 호환이 안된다는 IntelliJ의 경고 메세지가 떴다. 해결 : Compatibility Matrix (gradle.org) 에 들어가서 각 버전에 맞는 gradle 버전을 확인한 후 업데이트 하면 된다. 업데이트 하는 방법은... 1.터미널 창에서 ./gradlew wrapper --gradle-version 7.5(자신에게 맞는 버전)을 입력해서 업그레이드 하거나 2.gradle -> wrapper -> gradle-wrapper.properties 에서 distributionUrl 에 적힌 버전을 정정해준다.
문제점 : application.properties 를 다음과 같이 설정하고 build.gradle에 MySQL 의존성을 추가하는 것까지 완료하였으나 'chek'이란 데이터베이스가 존재하지 않는다는 오류가 발생한다. 해결 : MySQL에서 스키마를 생성해줘야 한다. 위의 'New Model'을 클릭해서 DB source URL 끝에 적은 데이터베이스 이름('chek')을 가진 스키마를 생성해주면 정상적으로 작동한다.
2448번: 별 찍기 - 11 (acmicpc.net) 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 이 문제는 유명한 별찍기 문제의 심화버전 중 하나이다. 수학적인 규칙이 존재하고 그걸 발견해서 구현하면 됐지만, 나 같은 경우 클래스를 활용해서 풀고 싶어졌다. 그래서 아래와 같은 코드를 짜고 설마 돌아가진 않겠지? 생각하며 돌렸는데... import java.util.*; import java.io.*; public class Main{ public static void main(String[] args) throws IOException{ Scanner s..
어제 하루 동안은 거의 알고리즘 문제 하나 푸는데 시간을 거의 다 쏟아부은거 같다. 다른 공부나 해야 할 일들도 조금 한거 같지만. 1. 1931번: 회의실 배정 (acmicpc.net) 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 위 문제는 활동 선택 문제( activity selection problem )에 관한 것이다. 일정 시간동안 최대한 많은 활동을 선택하는 문제인데, 이 문제를 풀려면 그리디 접근법으로 풀어야 한다. 종료 시간이 빠를수록 최대한 많은 활동을 선택할 수 있다는 글로벌한 원칙이 적용된다. 그래서 우선 종료시간이 빠른 순으로 정렬을 하고, 종료 시간이 같다면 시작시간이 빠른 활동을 우선적으로 접근할..