본문 바로가기

ALL

(128)
3. Git 기초2 - 커밋 히스토리, 되돌리기 커밋 히스토리 조회 > git clone https://github.com/schacon/simplegit-progit > cd simplegit-prohit > git log commit ca82a6dff817ec66f44342007202690a93763949 (HEAD -> master, origin/master, origin/HEAD) Author: Scott Chacon Date: Mon Mar 17 21:52:11 2008 -0700 changed the verison number commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 Author: Scott Chacon Date: Sat Mar 15 16:40:33 2008 -0700 removed unneces..
2. Git 기초1 - 레포지토리, 라이프사이클 레포지토리 시작하기 Git는 레포지토리 단위로 버젼관리를 한다. 레포지토리는 2가지 방법으로 쓰기 시작할 수 있다. 첫번째는 로컬 디렉토리 하나를 Git 레포지토리로 설정하여 시작는 것이다. 두번째는 다른곳에 있는 Git 레포지토리를 가져와서 사용하는 것이다. > mkdir my_project > cd my_project > git init my_project라는 폴더를 만들고 해당 폴더로 이동한 후 git init 명령어를 사용하여 해당 폴더를 Git 레포지토리로 만들었다. > git clone https://github.com/libgit2/libgit2 > ls libgit2라는 외부 레포지토리를 가져오는 명령어이다. git clone 이후 libgit2 폴더가 생성된것을 확인할 수 있다. 레포지토..
1. 시작하기 버전관리 버전관리란 프로그램의의 상태변화를 버전으로 기록하면서 변화된 내용을 파악하고 필요할 때 특정 버전으로 되돌리는 것을 말한다. 그리고 이러한 버전관리를 지원하는 시스템을 버전관리시스템이라고 부른다. 버전관리 시스템은 로컬 버전 관리으로 시작하여 중앙집중식 버전 관리, 분산 버전 관리로 발달하였다. GIT의 역사 GIT는 가장 널리 사용하는 버전관리시스템이다. 과거 리눅스 커널 개발팀은 BitKeeper 이라는 상용 버전관리시스템을 사용하였으나, BitKeeper에서 무료 사용을 금지한 이후 리눅스 커널 개발팀은 자체적으로 사용할 버전관리시스템인 GIT를 개발하였다. GIt 시작하기 > sudo apt install git-all > git --version Ubuntu에서 git를 설치하려면 ap..
15. 도커 배포 프로세스: AWS ECS 활용2 다중 컨테이너 서비스 여기 2개의 컨테이너로 goals 서비스의 docker-compose 파일이 있다. 이 서비스는 backend와 mongodb 컨테이너가 각각 동작하면서 사용자로부터 정보를 입력받아서 저장하고 보여준다. 이렇게 다중 컨테이너로 동작하는 서비스를 ECS로 올려보고자 한다. // backend의 app.js 파일 ... mongoose.connect( `mongodb://${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD}@mongodb:27017/course-goals?authSource=admin`, { ... ECS로 컨테이너들을 올리기 전에 수정해야하는 부분이 있다. 위의 코드는 backend에서 mongodb에 접속하..
9-12) 일반적으로 통용되는 명명규칙을 따르라 철자규칙 자바는 명명규칙이 잘 정립되어있고 크게 철자규칙과 문법규칙 두 범주로 나눌 수 있다. 여기서 철자규칙은 패키지, 모듈, 클래스, 인터페이스, 메소드, 필드, 타입 변수의 명명 규칙을 다룬다. 패키지와 모듈 : 각 요소를 점(.)으로 구분하여 계측적으로 짓는다. 각 요소들은 대부분 알파벳 소문자로 이루어진다. 또 일반적으로 com.google.common과 같이 인터넷 도메인의 역순으로 시작한다. 클래스와 인터페이스 : 하나 이상의 단어로 이루어져있으며 각 단어는 대문자로 시작한다. 여러 단어가 합쳐진 경우 약자를 사용할 수 있는데, 이때도 약자의 시작만 대문자로 하는것이 일반적이다. ex) HttpUrl 메소드와 필드 : 첫글자를 소문자로 시작하는것만 빼면 클래스/인터페이스 명명 규칙과 같다. ..
9-11) 최적화는 신중히 하라 빠른 프로그램보다 좋은 프로그램을 작성하라 최적화를 할 때는 다음 두 규칙을 따르라. 첫 번째, 하지마라. 두 번째, (전문가 한정) 아직 하지 마라. 다시 말해, 완전히 명백하고 최적화되지 않은 해법을 찾을 때까지는 하지 마라. - M.A 잭슨 (Jackson75) 위의 격언은 최적화의 어두운 진실을 이야기해준다. 최적화는 섣불리 진행하면 오히려 안좋은 결과를 불러올 수 있다. 성능보다 중요한 것은 견고한 구조를 가진 좋은 프로그램을 작성하는 것이다. 프로그램의 구성요소들이 각각 독립된 책임을 가지고 동작해야 한다. 그러면 나머지 시스템에 영향을 주지 않고 각 요소를 다시 수정할 수 있을 것이다. 그렇다고 성능을 무시하라는 것은 아니다. 다만 지엽적인 구현상의 최적화에 신경쓰기 보다는 설계상의 성능에 ..
AWS: EC2(Elastic Compute Cloud) EC2(Elastic Compute Cloud) 과거에는 웹 서비스를 위해 물리적인 서버를 구매하고 그 안에서 서비스를 운영하였다. 물리적인 서버는 트래픽의 증가와 감소에 유연하게 대응할 수 없었고, 그 결과 고점의 트래픽을 기준으로 물리적인 서버를 운영할 수 밖에 없었다. 하지만 지금은 다수의 서비스들이 클라우드 서버를 사용한다. 클라우드 서버는 빠르게 가상 머신을 추가하거나 제거할 수 있어서 트래픽에따라 유연하게 대응할 수 있다. EC2는 AWS에서 제공하는 클라우드 머신 서비스이다. 사용자는 다양한 종류의 가상 머신을 사용할 수 있고 이에따라 비용이 발생 한다. EC2 인스턴스 생성 ec2-study라는 이름의 EC2 인스턴스를 생성하려고 한다. EC2 생성시에는 OS 유형, 인스턴스 타입, 키페어..
AWS: IAM(Identity and Access Managemen) IAM(Identity and Access Managemen) IAM은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 서비스이다. IAM을 사용하여 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어합니다. 리소스에 접근할 사용자(User), 그룹(Group), 역할(Role), 그리고 소스 접근 정책(Policy)를 생성하고 관리한다. 이들은 모두 루트 사용자(Root Account)로부터 관리된다. 루트 사용자는 기본적으로 생성되는 것으로 모든 AWS 리소스에 접근 권한이 있지만, 일상적인 접근은 IAM을 통해 생성한 사용자를 이용한다. 유저(User)와 그룹(Group) 유저는 조직의 사용자이며 그룹은 유저들을 묶은 단위이다. 유저는 반드시 그룹에 속해야하는 것은 아니고, 그룹은 다른 그..