전체 글

다양한 경험을 기록해요
· Life
3문제, 3시간이 주어졌다. 현대오토에버의 코딩테스트를 여러 번 봤지만 항상 1, 2번은 평범한 난이도다. 프로그래머스 레벨 2 정도의 문제로 1, 2번은 쉽게 풀었는데, 마지막 3번 문제에서 시간 초과가 발생하는 문제의 최적화를 어떻게 할지 고민하다가 못 풀고, 그대로 코드를 제출했다 ㅠㅠ.. 3번은 못 풀어서 레벨 측정도 못하겠네 ㅋㅋㅋ 언제 올솔할 수 있을까.. 풀진 못했지만 복기하면서 풀이 방법을 생각해야겠다. 요즘 내일배움캠프의 마지막 프로젝트를 준비하느라 블로그나 코테 등 다른 것들에 잘 신경쓰지 못했는데 프로젝트가 마무리되고 있으니까 슬슬 다른 것들도 신경쓰자.
개요 NGrinder Controller를 실행할 때, 아래와 같은 오류가 발생했다. local IP address인 '218.38.137.27'에 접근할 수 없다고 한다. 모르는 IP라서 찾아보니 218.38.137.*은 SKB에서 제공하는 IP였다. 현재 ISP로 SKB와 SKB의 DNS 서버를 사용하는데 관련이 있다고 생각했다. Caused by: org.ngrinder.common.exception.NGrinderRuntimeException: Can not check available ports because given local IP address '218.38.137.27' is unreachable. Please check the `/etc/hosts` file..
프로그래머스의 레벨 2 문제 혼자 놀기의 달인 문제 요구 조건 상자 안에 들어있는 카드 번호가 순서대로 담긴 배열 cards가 매개변수로 주어질 때, 얻을 수 있는 최고 점수를 구해서 return 하도록 solution 함수를 완성해야 한다. 풀이 생각 과정 전제 조건 문제의 제한 사항이 널널했기 때문에 간단하게 생각하여 풀 수 있었다. 과정 그룹을 분리하고 길이가 가장 긴 그룹 2개를 곱한게 최고 점수 그룹을 분리하기 위해서 방문했던 것들을 기록해야함 방문한 것들을 제외하고 순회해야함 방문한 것은 방문했다고 체크, 더이상 방문할 곳이 없으면 그룹 길이 저장 def solution(cards): visit = [False] * len(cards) group = [] for i in range(len(ca..
계속 업데이트 합니다~ NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요. RDBMS: 장점: 엄격한 스키마로 데이터 무결성 보장, ACID 트랜잭션을 완전히 지원, 복잡한 쿼리와 조인 연산 가능. 단점: 수평 확장이 어렵고, 대용량 데이터 처리 시 성능 저하 가능성이 있음. NoSQL: 장점: 유연한 스키마로 다양한 데이터 유형 저장 용이, 수평 확장성이 뛰어나 대규모 분산 시스템에 적합, 빠른 읽기/쓰기 속도 제공. 단점: 전통적인 ACID 트랜잭션 지원이 제한적, 데이터 일관성 모델이 RDBMS보다 약함 mvc 패턴에 대해서 설명해주세요. 모델 컨트롤러가 호출을 하면 DB와 연동하여 사용자의 입출력 데이터를 다루는 일과 같은 데이터와 연관된 비즈니스 로직을 처리하는 역할..
· Tool/Java
N+1 문제를 해결하기 위해 Fetch join을 사용하다 보면 한 엔티티에서 여러 리스트를 Fetch join하는 경우가 있다. 이때 MultipleBagFetchException이 발생할 수 있다. (Bag은 JPA에서 만들어둔 중복을 허용하고 순서가 없는 컬렉션이고, 영속성 컨텍스트에 등록할 때 List를 Bag으로 포장한다고 생각하자) 아무튼 실제 SQL에서는 여러 테이블을 Fetch join하는 쿼리를 작성할 수 있는데 JPA는 왜 예외를 던질까? 간단히 말하자면 쿼리 성능에 악영향을 끼치는 카테시안 곱이 발생했음을 경고하기 위해서다. 친절한 JPA ㅋㅋㅋ.. 대응 방법 여러가지 방법이 있겠지만 공부한 내용만 나열한다. 하나의 컬렉션만 Fetch Join하기: 한 쿼리에서 여러 컬렉션을 FETC..
문제 상황 Board, Column, Card 엔티티가 각각 1:N, 1:N 관계일 때, Board와 관련된 Column, Card를 모두 조회하려고 했다. (단, Column은 Column의 weight 필드를 기준으로 정렬해서 조회하고, Card는 Card의 weight 필드를 기준으로 정렬해서 조회한다.) 이때, 단순히 조회하면 N+1 문제가 발생해서 Board와 연관된 Column N개, Column과 관련된 Card M개를 조회하면서 N*M번 불필요한 쿼리를 수행하게 된다. 생각 처음엔 한 번에 column과 card를 fetch join 하려고 했었는데, MultipleBagFetchException: cannot simultaneously fetch multiple bags 예외를 만났다. ..
도_유
대도유서관