
jvm 기반 언어 빌드 자동화 tool 다른 선택지로는 maven, ant 정도가 있다. (이거 두개는 xml 기반이라 점점 안쓰는 추세) 편한 의존성 버전 관리 간단한 명령어 한개만 치면 효율적으로(캐싱), 언제나 같은 결과물을 보장하며 deployable unit을 만들어줌 (jar 파일) gradle build 테스트, lint 체크 등 부가적 기능도 제공 gradle test gradle check 사용하는 이유 jdk안에 javac 라는 컴파일러가 들어있기는 하지만 빌드 자동화 툴 없이 쓴다면... 작성한 .java 파일 => .class 파일로 컴파일 => 여러개의 .class 파일 및 dependency 파일 모아서 .jar 파일 생성 이렇게 수동으로 해야함 너무 복잡하고 중복되는 커맨드가 ..

jvm 기반 언어를 위한 jdk, sdk 설치 및 버전관리 도와주는 툴. 다른 언어의 비슷한 것으로는... 루비 rbenv, rvm (old) 노드 nvm python venv 설치 방법 curl -s "https://get.sdkman.io" | bash .zshrc 파일에 추가 export SDKMAN_DIR="$HOME/.sdkman" [[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh" 버전 확인 sdk version 주요 명령어 현재 설치되어 있는 현황 확인 sdk current sdk current 특정 버전 사용하기 / default로 지정하기 sdk use scala 3.3.1 sdk defa..

챗지피티한테 물어봤던 golang 모듈에 관한 내용을 정리해두기. Go 모듈 시스템 - Go 1.11 버전에서 실험적인 기능으로 도입되었고, Go 1.13 버전에서는 공식적인 기능으로 채택 (모듈 시스템 이전) - $GOPATH 환경변수로 go 패키지를 관리하던 방식. (프로젝트 마다 다른 버전을 사용하기 어렵고, 버전 관리가 어렵다) - go get 명령어로 패키지 설치하고 $GOPATH/src 에 저장됨 (go 모듈 시스템) - 프로젝트 마다 go.mod 파일로 관리하는 방식 - go mod tidy 하면 프로젝트에서 사용중인 모듈만 $GOPATH/pkg/mod 디렉토리에 저장됨 환경변수 GO111MODULE => 모듈 시스템 사용 설정 on : 모듈 시스템 강제 활성화 off : 모듈 시스템 강제 ..

DIY devops 따라하기 시리즈! 훌륭한 유튜브 채널들과 (techworld with nana, That Devops Guy) 가끔 책을 참고해서 만들어 볼 것이다. 목표는 - 회의시간에 하는 인프라 얘기 알아들을 수 있을 정도가 되기 - 간단한 인프라 관련 업무가 주어졌을 때 어디를 더 공부하면 되는지 아는 수준 되기 - 그리고 나중에 오랜만에 다시 봤을때도 금방 파악할 수 있게 최대한 쉽고 간결하게 정리하기! (추가중) k8s tutorial (추가예정) docker tutorial aws 웨비나 정리

공식문서 : Scope functions 영역함수란? kotlin 표준 라이브러리가 제공하는 객체의 컨텍스트 안에서 코드 블럭을 실행할 목적으로 만든 함수. 구분 기준 (1) 객체 참조 방식 (블럭문 안에서) => this에 바인딩 (this 키워드 생략가능) vs lambda argument로 전달받기 (implicit default name인 it으로 쓰거나 custom name도 가능) (2) 리턴 값 => 람다식 결과 값 (계산된 값이 없으면 Unit 이든가) vs 객체 (체이닝 가능) + 확장함수 여부 => with는 다른 함수들처럼 (객체).apply { block } 이렇게 쓰지 않고 with(객체) {block} 이렇게 context 객체를 람다식에 argument로 전달한다. 그래서 종류..

commit, branch, HEAD git의 내부구조는 C의 포인터와 연결리스트 개념과 아주 비슷한 듯 하다. (1) 각 커밋 개체는 내부 포인터로 해당 작업 시점의 스냅샷 (트리구조로 이루어짐) 과 부모 커밋을 가리킨다. 연결리스트로 연결된 링크를 통해 차례로 이전 커밋에 도달할 수 있고, 도달한 커밋을 통해 해당 작업 시점으로 인덱스와 워킹 디렉토리를 돌려 놓을 수 있게 된다. (2) 브랜치는 포인터! (커밋을 가리키는 포인터) Git의 브랜치는 커밋 사이를 가볍게 이동할 수 있는 어떤 포인터 같은 것이다. 기본적으로 Git은 master 브랜치를 만든다. 처음 커밋하면 이 master 브랜치가 생성된 커밋을 가리킨다. 이후 커밋을 만들면 master 브랜치는 자동으로 가장 마지막 커밋을 가리킨다...

git이 뭔가? Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. - git 공식 사이트 프로젝트에서 (1) 버전 관리, (2) 백업, (3) 협업등의 기능을 할 수 있도록 도와주는 분산 버전 관리 시스템 중 하나이다. 2005년에 리눅스 커널 개발자 리누스 토르발스가 리눅스 소스 코드 관리를 위해 다른 개발자들과 함께 개발했다고 한다. git이 가장 대표적으로 널리 쓰이는 버전 관리 시스템이지만 이런 대체재도 있다. git 기본구조 시작하는 방법 2가지 1. 로컬저장소만 먼저 ..