반응형

전체 글

Github: https://github.com/Moojun
반응형
코딩 테스트/프로그래머스

프로그래머스 [PCCP 기출문제] 2번 / 석유 시추 (Python, BFS)

문제 출처: 석유 시추 처음 풀이(정확성 테스트 모두 통과, 효율성 테스트 모두 미통과) BFS로 시도함 from collections import deque dx = [1, 0, -1, 0] dy = [0, 1, 0, -1] def bfs(y, m, n, graph, visited): queue = deque() count = 0 for x in range(m): if graph[x][y] == 1 and visited[x][y] == 0: # y값은 고정, x값만 증가시킨다. queue.append([x, y]) visited[x][y] = 1 # 방문 처리 count += 1 while queue: x2, y2 = queue.popleft() for k in range(4): nx = x2 + dx..

프로그래밍 도서/클린 코드(로버트 마틴)

Clean Code] 7장 오류 처리

로버트 마틴의 클린 코드 7장 오류 처리 정리 참고 블로그 7장 오류 처리 ▷ 서론 깨끗한 코드를 다루는 책에 오류 처리를 논하는 장이 있어 이상하게 여길지도 모른다. 하지만 깨끗한 코드와 오류 처리는 확실히 연관성이 있다. 오류 처리는 중요하다. 하지만 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드로 부르기 어렵다. ▷ 오류 코드보다 예외를 사용하라! 3장 p57 "오류 코드보다 예외를 사용하라" 에서 한 번 다룬 내용이다. 아래 코드에서 getHandle(DEV1), record.getStatus()를 비교하는 로직을 보면 else일 때 에러 메세지를 log로 출력한다. 하지만 이 경우 호출 즉시 오류를 확인해야 하기 때문에 잊어버리기 쉬운 단계이다. public class..

프로그래밍 도서/클린 코드(로버트 마틴)

Clean Code] 4장: 주석

로버트 마틴의 클린 코드 4장 주석 정리 4장 주석 ▷ 서론 나쁜 코드에 주석을 달지 마라. 새로 짜라. 우리는 코드를 의도로 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. 즉, 주석은 언제나 실패를 의미한다. 코드는 변화하고 진화하지만, 주석은 이를 따라가지 못한다. 필자의 경우 주석을 체계적으로 관리하는 대신 코드를 깔끔하고 표현력을 강화하는 방향으로, 그래서 애초에 주석이 필요 없는 방향으로 에너지를 쏟겠다고 함. ▷ 주석은 나쁜 코드를 보완하지 못한다 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가, 복잡하고 어수선하며 주석이 많이 달린 코드보다 훨씬 좋다. 자신이 저지른 난장판을 주석으로 설명하려 애쓰는 ..

멘질멘질] 2023 졸업 프로젝트

Spring Boot] STOMP 프로토콜

1. STOMP 프로토콜과 POST 요청 동시에 테스트 챗봇 대화에서, 클라이언트가 POST 요청을 서버로 보내면, MongoDB에 저장된 채팅 메시지 내역을 STOMP 프로토콜로 클라이언트에게 전달한다. 이 과정에서, 아래 코드의 결과로 전달되는 messageResponse 객체의 payload를 확인하고자 하였으나, 아래와 같이 (truncated)로 log가 잘리는 것을 확인할 수 있다. simpMessagingTemplate.convertAndSend("/queue/chat/room/" + roomDto.getRoomId(), messageResponse); 더보기 2023-09-01 21:28:46.240 TRACE 34120 --- [tboundChannel-7] s.w.s.s.t.s.WebS..

MacOS

MacOS] JDK 설치 및 관리

MacOS에서 Java를 설치하는 방법은 2가지가 존재한다. Oracle 공식 홈페이지에서, JDK를 다운로드 brew를 사용한 download 이 중, 개인적으로는 1번으로 설치하는 것이 더 낫다고 생각함. 이유는 아래에서. 1. 현재 설치된 자바 내역 확인 아래 명령어를 사용하여 확인 가능 현재 내 맥에는 11, 14, 17 버전이 설치되어 있다. /usr/libexec/java_home -V 2. brew를 사용하지 않고 Oracle에서 직접 파일을 다운받는게 더 낫다고 생각하는 이유 매우 개인적인 의견임 brew install openjdk@17 명령을 통해 java 17을 설치하였는데, 설치 이후 아래처럼 심볼릭 링크를 등록하라는 내용이 뜬다. 이럴 바에야 차라리 그냥 Oracle에서 직접 설치..

프로그래밍 도서/클린 코드(로버트 마틴)

Clean Code] 3장: 함수

로버트 마틴의 클린 코드(Clean Code) 3장 요약 3장 함수 ▷ 작게 만들어라 명확한 근거는 없지만, 저자의 경험담에 의하면 함수를 작게 만드는 것이 좋다고 한다. 함수를 만드는 첫째 규칙은 '작게', 두 번째 규칙은 '더 작게'. 함수는 100줄을 넘어서는 절대로 안 되고, 20줄도 긴 편이다. 각 함수가 명백하게 이야기 하나를 표현하도록 작게 줄여야 한다. 이는 곧 if / else 문, while 문 등에 들어가는 블록은 한 줄이어야 한다는 의미다. 대개 블록에서 함수를 호출하고, 그렇게 되면 바깥을 감싸는 함수가 작아져서 코드 이해가 쉬워진다. ▷ 한 가지만 해라 함수는 한 가지를 해야한다. 그 한 가지를 잘 해야한다. 그 한 가지만을 해야 한다. 한 가지 일이라는 표현이 조금 애매하다. ..

나른한 찰리
Moojun's Storage