링크 : https://www.acmicpc.net/problem/1167 사용 언어 : JAVA 문제 설명 짧은 하소연 🥲 더보기 이 문제도 정말..^^ 어이없는 실수로 근 이틀을 고민했었다. 정석대로 짠 것 같은데 왜 안되지? 다른 사람의 소스코드를 참고해봐도 내 코드랑 다른 게 없었다. 심지어 그 사람은 Scanner 쓰고 통과했는데 난 BufferedReader 썼는데도 안됐다ㅋㅋㅋ 그래서 뭐가 다른거지... 하고 코드 한줄씩 바꾸면서 계속 돌려봄 ㅋㅋㅋ 내가 이 문제 골2에서 골1로 올려버리겠단 마음으로 함. 근데 나중에서야 내 문제를 알게 되었고 내가 멍청이라는 걸 깨달았다. 내 생각 초기 생각 플로이드 와샬 처음에는 든 생각은 플로이드 와샬(Floyd Warshall)이었다. 골드 2라 안될..
상속 관계 매핑 전략 상속 관계 매핑이란 객체의 상속 구조와 DB의 슈퍼-서브타입 관계(아이템-영화/책/앨범 관계)를 매핑하는 것. 객체는 상속관계가 존재하지만 대부분의 RDB는 상속 관계가 없다. 이것을 슈퍼-서브타입 관계라는 모델링 기법으로 나타내 주는 것. 슈퍼-서브타입 자세히 DB모델링 - 관계 (슈퍼-서브타입) 논리 모델 → 물리 모델 구현 세가지 @Inheritance(strategy=InheritanceType.XXX) stategy 설정 JOINED SINGLE_TABLE(=default) : 단일 테이블 전략 TABLE_PER_CLASS @DiscriminatorColumn(name="DTYPE") 부모 클래스에 선언. 하위 클래스를 구분하는 용도의 컬럼을 생성함. (DTYPE 컬럼에 영..
연관 관계 정의 규칙 1. 방향 (단방향, 양방향) DB 테이블은 외래 키 하나로 양 쪽 테이블 조인이 가능하기 때문에 단방향, 양방향 나눌 필요가 없다. 그러나 객체는 참조용 필드가 있는 객체만 다른 객체를 참조할 수 있다. 그래서 두 객체 사이에 하나의 객체만 참조용 필드를 갖고 있으면 단방향, 두 객체 모두가 각각 참조용 필드를 갖고 참조하면 양방향 관계라고 한다. 무조건적인 양방향 매핑은 복잡성을 증가시키고 유지 보수도 어렵게 만들기 때문에 기본적으로 단방향 매핑을 사용하되 역방향 객체 탐색이 반드시 필요한 경우에 추가하는 것이 바람직하다. 고객(Member) 객체와 주문(Order) 객체가 있을 때, 고객이 주문한 내역을 모두 확인하기 위해서는 고객 객체에 주문을 참조할 수 있는 필드가 필요하다..
Junit5란? Patform: JVM에서 테스트 프레임 워크를 실행시키기 위한 기반. TestEngine API 제공 Jupiter: JUnit5를 지원하는 TestEngine API 구현체 Vintage: Junit4와 3을 지원하는 TestEngin 구현체 단위테스트란? 응용 프로그램에서 테스트 가능한 가장 작은 소프트웨어를 실행하여 예상대로 동작하는지 확인하는 테스트이다. Junit4와 Junit5의 차이점 JUnit4는 하나의 Jar파일로 dependency가 추가되어, Junit이 참조하는 다른 라이브러리가 있는 형태인데 JUnit5부터는 그 자체로 여러 모듈화가 된다. 어노테이션 @Test: 테스트 메서드임 @BeforeAll: 해당 클래스에 위치한 모든 테스트 메서드 실행 전에 딱 한 번 ..
MySql 1. Public key retrieval is not allowed [Mysql] Public key retrieval is not allowed 에러 해결 해결 ⇒ 접속 url 설정 useSSL=true OR allowPublicKeyRetrieval=true로 맞춘다 jdbc:mysql://localhost:3306/test_db?useSSL=false&allowPublicKeyRetrieval=true MongoDB 0. connect ECONNREFUSED 127.0.0.1:27017 brew services start mongodb-community@4.2 실행은 되는데 mongod 실행시 에러가 발생했다. 1. NonExistentPath: Data directiory /data/..
https://github.com/callicoder/spring-boot-react-oauth2-social-login-demo 의 프로젝트를 참고하여 소셜로그인 과정을 정리해보았다. GitHub - callicoder/spring-boot-react-oauth2-social-login-demo: Spring Boot React OAuth2 Social Login with Google, Facebook, and Spring Boot React OAuth2 Social Login with Google, Facebook, and Github - GitHub - callicoder/spring-boot-react-oauth2-social-login-demo: Spring Boot React OAuth2 So..
링크 : https://www.acmicpc.net/problem/2981 사용 언어 : JAVA 내 생각 대체 왜 그랬는지는 모르겠는데 골드 4라 쉽겠지 생각했다. 근데 아무리 생각해도 어떻게 해야하는지 감도 안오고,, 혹시나 제출해봐도 계속 틀리고 시간초과나고ㅋㅋㅋ 결국 멘탈 터져서 나중에는 출력에 println 써서 0퍼 컷 당하고 그랬다ㅎㅎ;; 처음에 쉽다고 얕봐서 더 멘탈이 나간 듯 하다. 결국 패배를 인정하고 구글링했다. 그리고 내 기초 지식이 부실했음을 깨닫고 컴공의 기본 of 기본인 유클리드 호제에 대해 다시 공부하였고, 까먹지 않기 위해 울면서 포스팅을 쓴다 ㅠㅠ 초기 생각 사실 맨 처음에도 유클리드 호제 같긴 했는데 당최 어떻게 써먹어야하는질 몰라서 그냥 냅다 풀었다. for (extr..
유클리드 호제법(-互除法, Euclidean algorithm) 2개의 자연수 또는 정식(整式, 유리식)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법: 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘 유클리드 호제법은 A와 B의 최대공약수를 A를 B로 나눈 나머지 값을 활용하여 구하는 방식이다. 그 내용은 다음과 같다. A와 B의 최대공약수를 (A, B)라 표기할 때, (A, B) = (B, A%B) 이다. 유클리드 호제법은 위의 과정을 나누는 수가 0이 되어 더이상 나눌 수 없을 때 까지 반복한다. 수식으로 표현하면 이렇게 된다. (A, B) = (B, A%B) = (A%B, B%(A%B)) = (B%(A%B), (A%B)%{B%(A%B)}) = ... 예시를 함께 보자. 78..