본문 바로가기

전체 글67

로컬&카프카 브로커 연동 확인 에러 상황 로컬 컴퓨터에서 카프카 브로커와 연동이 되는지 확인하기 위해서 bin/kafka-broker-api-versions.sh --bootstrap-server [카프카가 설치된 ip주소]:9092 명령으로 카프카 브로커 정보를 요청하자 [kafka-run-class.sh](http://kafka-run-class.sh): line 315: exec : java: not found에러가 났다. 해결 1. 자바 설치 자바를 설치해주자 에러가 나지 않았다. 당연히 내 컴퓨터에는 자바가 설치되어 있지만, Ubuntu 가상머신에는 깔지 않았나보다. 그렇지만 응답이 오지 않는다. 2. 인바운드 규칙 편집 9092 포트에 대해서 인바운드 규칙을 Anywhere IP6로 바꿔주자마자 아래 이미지처럼 바로 응답이 왔다.. 2022. 7. 30.
카프카 브로커 실행 중 error='Cannot allocate memory' 상황 bin/kafka-server-start.sh -daemon config/server.properties 명령어를 쳤는데 카프카 브로커가 실행되지 않았다. -daemon 옵션을 빼고 카프카를 실행시키니 아래와 같은 로그가 떴다. OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000.. 2022. 7. 30.
탄력적 ip 설정과 요금 문제 상황 AWS EC2 인스턴스에 카프카를 설치하고, 서버가 해킹될 위험이 있으니 평소에는 인스턴스를 중지시켜 놓고 실습할 때에만 인스턴스를 시작시키도록 할 생각이었다. 매번 다른 ip로 접속하는 것이 귀찮아서 탄력적 ip 설정을 했다. 이렇게 해두면 서버를 재시작하더라도 같은 IP주소로 접속할 수 있다. https://any-ting.tistory.com/71 을 참고해서 탄력적 ip를 설정했는데 막줄의 한마디가 걸린다.탄력적 ip를 생성하고 사용하지 않으면 요금이 발생한다는 게 무슨 말이지? 결론 탄력적 ip 주소는 세 가지 조건이 충족되어야 비용이 발생하지 않는다. 탄력적 ip 주소가 ec2 인스턴스에 연결되어 있다. → 이건 충족 탄력적 ip 주소가 연결된 인스턴스가 실행 중이다. → 해킹 위험을 방.. 2022. 7. 21.
재시작/세션이 종료될 때 환경변수 유지하기 🤔상황 카프카 브로커의 힙 메모리 사이즈를 환경변수로 지정해주던 도중, export 명령어를 사용하면 인스턴스가 재시작하거나 세션이 종료될 때 초기화되기 때문에 ~/.bashrc에 환경변수를 설정해준다고 한다. bashrc에 환경변수를 설정해두면 설정을 계속 쓸 수 있는 건가? 😮조사 bash는 리눅스에서 가장 널리 사용되는 쉘(사용자가 커널에 명령을 내릴 수 있도록 하는 프로그램)이다. ~/.bashrc는 bash의 설정 파일들 중의 하나로, 별칭들과 bash가 수행될 때 실행되는 함수를 제어하는 지역적인 시스템 설정과 관련된 파일이다. 따라서 ~/.bashrc에 환경변수를 저장해두면 bash가 수행될 때 여기에서 변수를 가져오는 것이다. 2022. 7. 21.
팀원들의 상황 고려해서 계획 짜기 짧은 스터디 방학이 끝나고, 스터디 진행 방향을 바꿨다. 지금까지 계속 문제만 풀어왔으니 그래프, 트리, 동적계획법의 개념을 복습하고 예제를 풀기로 했다. 문제 상황 스터디를 시작하기에 앞서 소소한 문제가 있었는데 팀원 5명 중 2분이 취업을 한 것이었다. (축하해요!) 취준생 3명, 직장인 2명의 스케줄은 당연히 다르고 취준생들은 알고리즘에 집중해야 할 시기였기 때문에 고민이 많았다. 해결방법 취준생 3명이 참고 도서(Do It 알고리즘 자바편)의 소단원 하나씩을 맡아 일주일에 한번, 스터디에서 발표를 하기로 했다. 풀어올 문제는 각 단원의 대표 문제 하나씩-일주일에 총 3개-으로 정했다. 3문제 정도면 회사 생활과 병행할 수 있을 것이고, 취준생들은 발표 준비 하면서 겸사겸사 공부를 더 해오는 것이다.. 2022. 7. 20.
알고리즘 스터디 경험 회고 🔥Why? 프로젝트 기간 중에는 바쁜 일정 때문에 알고리즘을 매일 꾸준히 공부하기 힘들었다. 꾸준하게 알고리즘을 푸는 습관을 기르기 위해 스터디를 만들었었다. 🤔이슈와 해결 방법 팀원이 출석에 빠지는 문제 스터디 다음 일정과 풀어올 문제를 스터디 단톡방에 공지로 설정했다. 스터디 모임날은 오늘 스터디가 있다는 것을 팀원들에게 상기시켜 주었습니다. 경고→강퇴 시스템을 도입했다. 팀원들끼리 회의를 거쳐서 문제를 하나도 풀어오지 못하거나, 사정이 없는데도 스터디 모임에 빠지면 경고를 주도록 했다. 경고가 5회 이상 쌓이면 스터디에서 강퇴시키기로 했다. 다소 과격한 방법이었지만 모두가 문제를 풀 수밖에 없도록 하는 시스템을 도입하는 것이 중요하다고 생각했다. 사실 이건 성공하지는 못했다. 다들 바쁜 일정 속에서.. 2022. 6. 22.
로그데이터에 대한 조사 로그 데이터: 컴퓨터에 접속한 기록, 특정 행동을 한 경우 남는 데이터 서비스 로그: 서비스가 운영되기 위해 필요한 데이터 유저 행동 로그: 유저가 앱/웹에서 어떤 행동을 하는지 나타내는 데이터 좋은 로그란 무엇인가? 로그의 정의 로그란 이벤트에 대한 기록을 의미한다. 로그에 포함될 각각의 데이터를 항목이라고 한다. 좋은 로그란? 필요한 정보가 있다. 일관성이 있다. 믿을 수 있다. → 말은 간단하지만 현실에서는 수많은 문제가 발생한다. 필요한 정보가 없거나, 의미를 추측하기 힘든 이름이거나 이름이 가지는 의미가 다른 콘텐츠의 이름과 충돌하는 경우, 값에 여러 데이터가 함께 포함되어 있어서 특정 데이터를 얻기 위해 매번 가공 처리를 해야 하기도 한다. 따라서 로그 품질을 관리하려는 노력이 필요하다. 좋은.. 2022. 6. 17.
하둡 사용에 대한 의문 🤔의문점 기존의 스프링 프로젝트에서 데이터베이스가 맡던 역할을 하둡이 맡는 거라고 생각했는데 알아보면 알아볼수록 백엔드 서버에서 하둡으로 바로 데이터를 보내는 게 아닌 것 같다. 스터디에서 카프카 발표를 들으니까 백엔드 서버에서 카프카로 데이터를 보내도록 하고, 카프카에서 하둡에 저장 요청을 보내는 식이 될 것 같은데, 이러면 테스트 환경에서는 오히려 시간이 더 들지 않을지 의문이 들었다. 아예 RDB를 하나 두고 거기에 데이터를 저장하도록 한 다음 사용자 분석을 위한 데이터만 하둡에 저장하도록 해야 하는 걸까? 내가 이해한 것이 맞는지 고민이 된다. 현업에서는 어떻게 사용하는지 궁금하다. 유저 정보는 기본 DB에 보내고 SNS 글은 카프카+하둡에도 저장하는 구조를 생각 중인데 이게 맞을지. 일반적으로 .. 2022. 6. 17.
알고리즘 스터디 시작 네이버 인턴십에 지원했는데 코딩테스트에서 막혔다. 문제를 풀면서 제일 걸림돌이 되었던 건, 의외로 문제 난이도보다는 시험을 본다는 압박감과 프로그래머스 IDE가 도무지 적응이 안 된다는 점이었다. 그래서 팀원들을 모집해 알고리즘 스터디를 만들었다. 목표는 1. 꾸준히 알고리즘 문제 풀어보기 2. 다양한 유형의 문제를 풀어보기 3. 프로그래머스 환경 적응하기 세 가지로 잡고 1차 목표를 프로그래머스 코딩테스트 고득점 키트를 한 번 빠르게 풀어보는 걸로 정했다. 책임감을 가지고 열심히 해보자! 2022. 1. 17.
[Git] Merge Request가 상위 브랜치에서 하위 브랜치로 병합된다? 문제 상황 git flow를 연습하기 위해 front, backend 브랜치를 만들고 그 브랜치 하위에 팀원들의 이름으로 된 브랜치를 만들고 각자 같은 파일을 수정함으로써 병합을 했는데 충돌이 일어나는 상황을 일부러 만들어보았다. 그런데 깃랩에서 merge하려고 하니 merge frontend into 팀원브랜치 라는 내용의 커밋 메시지가 떴다. 팀원들은 이 상황을 frontend가 팀원의 브랜치로 병합되는 것으로 받아들이고 멘붕에 빠졌다. 노력 다른 팀 팀원에게 질문함 해결 frontend가 팀원의 브랜치로 병합되는 것이 아니라 팀원이 에러를 해결해야 하므로 팀원의 브랜치로 커밋되는 것이었다. 충돌을 해결하고 커밋하고 나면 제대로 frontend로 병합된다. 2022. 1. 17.