본문 바로가기

전체 글

(45)
🤯 Caused by: java.lang.UnsupportedClassVersionError ❗️ 문제점 Intellij에서 자바 버전의 불일치로 인하여 문제가 발생했다. 아래 글에서 제시하는 해결방안으로 자바 버전도 변경해봤는데 결과는 같았다. 🛠 NoSuchFieldException: $jacocoAccess (java 버전 문제) 현재 프로젝트에서 git push를 하면 모든 테스트를 돌리는데, 아래와 같은 에러 메시지가 나왔다. 구글에 검색해봤더니 나와 같은 오류가 발생했던 사람을 발견했다. 버전을 변경했더니 해결됐다 hyojaedev.tistory.com 🤩 해결 방법 Command + 쉼표(,) 또는 Preferences Build, Execution, Deployment Build Tools Gradle Gradle JVM 나에게 맞는 버전을 선택
😤 Error: Your CLT does not support macOS 11 ❗️ 문제점 brew install gradle 명령어로 gradle을 설치하려고 했는데 아래와 같은 에러 메시지를 발견했다. 현재 나의 CLT가 옛날 버전이거나 수정되어서 현재 macOS 버전을 지원하지 않았다. 그래서 CLT를 업데이트 하거나 삭제해야 한다고 한다. Error: Your CLT does not support macOS 11. It is either outdated or was modified. Please update your CLT or delete it if no updates are available. Update them from Software Update in System Preferences or run: 🤩 해결 방법 sudo rm -rf /Library/Develope..
👨🏻‍💻 2020 WOOWACON(우아한테크콘서트) 📌 SESSION 01: 배달의 민족 마이크로서비스 여행기(김영한) 매년 주문 수가 평균 3배 이상 증가할 정도로 빠르게 성장하고 있다. 2015 하루 주문수 5만 이하 MS SQL + PHP,ASP 대부분 루비DB(MS SQL) 스터어드 프로시저 방식 사용 하나의 루비DB를 사용했기 때문에 장애 시 전체 서비스에 장애가 발생했다. 2016 하루 주문수 10만 돌파 PHP에서 Java로 변경 마이크로서비스 도전 시작 (결제 서비스) 결제, 주문중계 독립 IDC에서 AWS 클라우드 인프라로 이전 시작 치킨 디도스 선착순 결제 할인 이벤트 (7천 원 할인) 프론트 서버 -> 주문 -> 결제 많은 트래픽으로 인해 프론트 서버가 죽어버렸다. IDC에서 하루 만에 AWS로 이전 (장비 100대 증설) 하지만 주문..
✨ Clean Code 3장: 함수 🗣 서론 함수가 읽기 쉽고 이해하기 쉬우려면 어떻게 해야 할까?, 의도를 분명히 표현하려면?, 처음 읽는 사람이 프로그램 내부를 직관적으로 파악하기 위해선? 이와 같은 질문에 답변하기 위해 몇 가지 방법을 소개하고자 한다. 📌 작게 만들어라 함수를 만드는 규칙은 첫째도 작게, 둘째도 작아야 한다. 켄트 백의 코드를 보면 모든 함수가 2~4줄 정도라고 한다. 그렇다면 작게 만들어야 하는 이유는 무엇일까? 이에 대한 근거를 명확히 제시하기는 어렵다. 함수가 크면 그 만큼 많은 일을 하고 있는 것이 아닐까? 블록과 들여쓰기 중첩 구조가 생길만큼 함수는 커지면 안된다. 들여쓰기 수준은 1단이나 2단을 넘어서면 안된다고 책에서 소개한다. 하지만 극단적으로 1단을 유지하는 연습을 하는 것이 좋겠다. 📌 한 가지만 ..
😅 Kafka: Producer 메시지 전송 오류 vi ./config/server.properties //주석 제거 후, 아래와 같이 수정 advertised.listeners = PLAINTEXT://localhost:9092 kafka LEADER_NOT_AVAILABLE 에러 kafka LEADER_NOT_AVAILABLE 에러 발생 시 메세지를 생성할때 LEADER_NOT_AVAILABLE 에러가 발생하면서 안될 경우 ex) WARN Error while fetching metadata with correlation id 0 : {topic_name=LEADER_NOT_AVAILABLE} (org.apache.afka.clients.Ne 17billion.github.io
🗑 Kafka: topic 삭제하기 ❗️ 문제점 topic을 제거했는데 아래 명령어로 조회하면 marked for deletion 메시지만 나오고 완전히 제거되지 않는 문제가 생겼습니다. 해당 글은 topic을 완전히 제거하기 위한 방법에 알아보고자 합니다. ./bin/kafka-topics.sh --list --zookeeper host:port 🤩 해결 방법 (1) ./config/server_properties에서 설정 delete.topic.enable = true (2) Kafka 재시작 (3) zookeeper-shell 접근 ./zookeeper-shell.sh localhost:2181 (4) 제거해야 할 toptic 조회 ls /brokers/topics (5) 해당 topic 제거 rmr /brokers/topics/{t..
✨ Clean Code 2장: 의미 있는 이름 📌 의미를 분명히 밝혀라 좋은 이름을 지으려면 시간이 걸리지만, 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 변수, 함수, 클래스 이름은 존재 이유, 수행 기능, 사용 방법에 대해 답할 수 있어야 한다. 주석이 필요하다면 의도를 분명히 드러내지 못했다는 의미이다. 의도가 드러난다면 코드 이해와 변경이 용이해진다. 📌 그릇된 정보를 피하라 코드의 의미를 흐릴 수 있기 때문에 그릇된 단서를 남겨서는 안 된다. ex) accountList -> List는 프로그래머에게 특수한 의미이다. 유사한 개념은 유사한 표기법을 사용한다. (일관성이 떨어지는 표기법은 그릇된 정보) 📌 의미 있게 구분하라 컴파일러를 통과할지라도 연속된 숫자를 덧붙이거나 불용어를 추가하는 방식은 적절하지 못하다. 불용어는 중복이다. (변수..
✨ Clean Code 1장: 깨끗한 코드 😡 나쁜 코드로 인한 문제점 출시에 바빠 코드를 짜다보면, 기능을 추가할수록 코드는 엉망이 되어간다. 결국엔 감당하지 못하는 수준에 이른다. 나쁜 코드는 개발 속도를 크게 떨어뜨린다. (프로젝트 초기에는 번개처럼 나가다가 결국 굼벵이처럼 기어간다) 팀 생산성은 떨어진다. 르블랑의 법칙 - 나중은 결코 오지 않는다. 즉, 나중에 손보겠다고 생각한 코드는 결코 오지 않는다는 의미이다. 👨🏻‍💻 프로그래머들의 책임 좋은 코드를 사수하는 일은 프로그래머의 책임이다. 관리자가 일정과 요구사항을 강력하게 밀어붙이는 것도 그들의 책임이기 때문이다. 가장 좋은 방법은 언제나 코드를 깨끗하게 유지하는 습관을 가져야 한다. 🛀🏻 깨끗한 코드란? 그림을 그리는 행위와 비슷하다. (빈 캔퍼스를 우아한 작품으로 바꿔가는 화가와..