잡다한 시리즈 20

그놈의 Kafka는 대체 뭘 하는 놈일까

Kafka... Message Queue... Active MQ.... MSA 구조의 시스템을 다루다보면 꼭 등장하는 친구이다. 그 중 현업에서 쓰고 있는 Kafka에 대해 정리해보기로 한다. Kafka는 따지고보면 설명할 내용이 굉장히 많기 때문에, 이 포스트에서는 가장 상위의 개념만을 다루기로 하고 세부적인 매커니즘은 다른 포스트에서 다루기로 한다. Kafka란 무엇인가?카프카는 MQ(Message Queue)의 한 종류이다. 단, 다음의 특징으로 인해 실시간으로 많은 데이터를 처리해야 하거나, 장애가 없어야 하는 시스템에서 많이 채택된다.1. 높은 처리량 & 손 쉬운 스케일링2. HA3. 단순 메세지 전달 기능을 넘어, 데이터 저장소의 역할을 함 그렇다면 근본적으로 왜 카프카, 아니 왜 MQ를 쓰는..

Apple Silicon 위에서 minikube 실행시키기

이전에 오라클 DB를 M1에서 어떻게든 사용하려고 용쓰다가 설치한 docker desktop을 이용해서, k8s minikube를 실행할 수 있음을 알게 되어 그 방법을 공유한다. 이 포스팅의 결말은 애플 실리콘칩 위에서 minikube start 명령어를 통해 자동으로 docker 내에 k8s 클러스터를 구성해서, 로컬에서 kubectl get pods 와 같은 명령어를 마음껏  실행할 수 있는 환경을 얻게 된다.1. Docker Desktop 설치하기라떼 취준할때까지만 해도 M1 나온지 얼마 안됐을 시기라 공식 애플 실리콘칩 지원 프로그램이 별로 없었는데, 이제는 도커도 있네..Docker 공식 사이트에 들어가면 메인에 있는 Download Docker Desktop에 마우스 호버를 하면, 애플 실리..

TDD를 배우고 경험해보며 쌓아가는 이야기

요즘 회사에서 갑자기! Java 언어를 쓰고 있고 갑자기! SpringBoot 개발을 하고 있고 갑자기! TDD 기반의 개발을 하고 있다. 세가지 모두 학교다니면서 개발하던 내내 접하지 않았던 것들이라,, 근 2개월동안 스트레스도 많이 받고 우울해했다. 그래도 나름의 고난의 시간을 겪고 나니 하나둘씩 이해하고 있고, 아직은 팀원들의 코드를 복붙해서 재생산할 뿐이지만 적응해 가고 있다. 그래서 오랜만에 올리는 포스트로는 현재 우리 플젝에서 TDD를 어떻게 써 나가고 있는지,내가 프로젝트에 적응해가면서 어떤 점을 느꼈는지를 서술할 생각이다. 또한 현재 하고 있는 고민도 함께! 언제나 그랬듯이 이는 미래에 모든것을 까먹을 나를 위한 기록이다. TDD 적용 현황 현재 우리 프로젝트는 변화를 거듭하며 (아직도) ..

[Java] 테스트 코드 생성하고 돌리기

그렇다. 나는야 자바 테스트코드 돌리는것도 익숙하지 않은 자바 쌩초보 ^-^ 그래도 오늘 하나 배웠따 주말에 누워서 유튜브 보지 않고 성장했음에 만족. 기록해본다. Java Main/Test Java의 src 구조는 main과 test로 나뉜다 main에는 요구사항들을 구현한 모든 소스들이 들어가있고, test에는 main에서 구현한 애들을 시험해보기 위한 테스트코드들만이 들어가 있다. Java Test 코드 구조 test코드의 경우, 영한님이 말씀하시길 given-when-then 구조로 나누면 좋다고 하셨다. package hello.core.member; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; publi..

[Git] core.autocrlf, IntelliJ Line Separators Warnings

스프링 공부를 미루고 미루다가 발등에 불이 떨어진 지금 시점, 부랴부랴 인프런 강의 들으면서 git commit도 오랜만에 해보려고 했다. 근데 이게 웬걸, 커밋을 날렸더니 워닝이 뜨네! 얘는 무엇인고 하니.. CRLF line seperators 란? CRLF는 new line으로 바꾸는 방법의 조합을 의미한다. CRLF = CR(Carrige Return, \r) + LF(Line Feed, \n) 얘네는 과거 타자기가 있었을 시절부터 사용되었던 용어들로, 타자기를 연상해서 이해하면 쉽다. CR (Carrige Return, \r) 커서를 줄 바꿈 없이 해당 line의 가장 앞으로 갖다놓는것을 의미한다. 타자기에서 한 줄을 올리지 않고 그대로 입력만 맨 앞으로 다시 갖다놓는 것이다. LF (Line ..

Apple M1 macOS Gradle 설치하기

Gradle이라는 빌드 자동화 툴을 처음으로 설치해보게 되었다. 그렇게 나름 개발을 조금 해왔다고 생각했는데도 자동화 툴 조차 사용 안해봤다니.. 괜찮아 지금이라도 사용해봄을 다행으로 느끼며 차근차근 해보자. Gradle이 완전 처음이라 먼저 공식 docs를 보면서 얘가 뭐하는 애인지, 어떻게 설치해야 하는지 등을 파악해보기로 했다. 공식 docs는 이 링크를 따라가면 된다. 현재 Gradle에는 4, 5, 6, 7 버전을 이용할 수 있었는데 조금 찾아보니 너무 아래 버전은 Spring Boot를 이용할때 오류가 난다는 글이 몇가지 있었다. 따라서 나는 버전 7를 기준으로 알아보고, 설치할 것이다. Gradle 이란 무엇인가? https://docs.gradle.org/7.3.1/userguide/wha..

Apple M1 macOS Oracle Java 17 또는 OpenJDK 설치하기

목차 JDK? JRE? JVM? Java JVM JRE JDK JDK 종류 OracleJDK OpenJDK JDK 설치 OracleJDK 설치하기 OracleJDK Uninstall AdoptOpenJDK 설치 가능한가? Azul Zulu 설치하기 Azul Zulu Uninstall 며칠전인지 몇주전인지부터 맥북이 주인아 몬터레이 새로 나왔다!!!!! 깔아줘라!!!!!! 나는 준비 됐어 너만 준비되면 돼 준비됐니?!@?!@?!@! 를 끊임없이 외쳤다. 귀찮고.. 이래저래 충돌날꺼 생각하면 싫어서 안하려고 했는데 오랜만에 본격적으로 개발 환경 세팅하기 전에 올려놔야 개발중에 충돌하는 불상사를 막을 수 있지 않을까 싶어 그냥 올렸다. 몬터레이 예아. 이제 오랜만에 자바... 개발을 해보려고 했는데 맥북 사고..

[Ubuntu] Ubuntu에서 Anaconda 설치 후 terminal 앞에 (base)가 붙었을 때

conda를 깔고 나서 conda init을 installation 끝부분에 우리가 해줄까? 라고 물어보길래 냅다 yes를 눌렀다. 알아서 알잘딱깔센으로 해줘 제발. 해주긴 했는데 conda init을 하고 나서는 terminal을 다시 열라길래 다시 열어봤다. 그런데 웬걸, terminal 앞에 갑자기 (base)가 붙은 것이다. 이게 뭔가 했더니, conda가 activate 되어 있으면 어떤 환경에서 activate 되어 있는지를 알려 주는 것이라고 한다. 내가 가지고 있는 conda 환경은 conda info --envs 를 통해 알아볼 수 있다. 그럼 다음과 같이 * 가 붙어 있는 것이 현재 activate된 conda 환경이다. conda를 끄고 싶으면 conda deactivate 를 통해 ..

잡다한 시리즈 2021.07.01

[Ubuntu] Ubuntu 20.04 LTS에서 Pytorch GPU 설치하기

tensorflow gpu 설치하려고 설치다가 CUDA 설치부터 안돼서 빡쳐서 던졌는데 잘 되는 것이 있어서 정리해 보려고 한다. 근데 뭐가 됐든 Pytroch GPU도 똑같이 CUDA 설치해야 함... 그래도 되니까... 다행으로 여기며.. 미래의 나를 위해 정리한다. 일단 결과적으로는 이렇게 잘 깔렸다. 그럼 방법을 까먹기 전에 되짚어보면서 정리하도록 하자. 우선 내 환경은 Ubuntu 20.04 LTS 이다. 앞으로 최신 설치는 거르도록 NVIDIA 드라이버 설치 `nvidia-smi` 명령어를 입력했을 때, 다음과 같은 화면이 나온다면 NVIDIA 드라이버가 이미 설치되어 있는 것이다. 만약, 드라이버가 설치되어 있지 않다면 Ubuntu 18.04 CUDA + PyTorch 설치에서 드라이버 설치..

잡다한 시리즈 2021.07.01

[Ubuntu] VSCode Python Linter 오류 해결하기 - Unable to import torch pylint(import-error)

Ubuntu 20.04 LTS, Anaconda3를 이용하여 pytorch를 깐 상태이다. vscode에는 Python Linter가 설치되어 있다. pytorch가 깔려 있는 conda 환경을 activate 시키고 vscode에 들어와도 다음과 같은 오류가 난다. Unable to import 'torch'pylint(import-error) 이건 vscode python linter가 torch가 깔려 있지 않은 환경을 참조하고 있어서 그렇다. 나는 pytorch를 conda 환경에서 깔아 놓았기 때문에, vscode의 linter를 정상적으로 이용하기 위해서는 conda의 python 환경을 linter와 연결해 놓아야 한다. conda pytorch가 activate 되어 있는 상황에서, whi..

잡다한 시리즈 2021.07.01
반응형