일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- C언어
- OS
- vim-go
- go
- JUCE 튜토리얼
- 알고리즘
- Nebula
- 코딩
- 프로그래밍
- 운영체제
- gui
- C++ gui 라이브러리
- c++ heap
- tour of go
- a tour of go
- C++ gui
- C++ library
- JUCE library
- 연결리스트
- C++
- LOB
- 백준
- BOJ
- JUCE라이브러리
- Docker
- JUCE
- 자료구조
- 공룡책
- 리듬게임
- go channel
- Today
- Total
목록CafeM0ca (265)
CafeM0ca
2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 주석을 지우고 실행해보자. #include #include #include #include #define WHITE_TILE 0 #define BLUE_TILE 1 using namespace std; void print(const vector &v) { for(const auto& i : v) { for (const auto& j : i) { cout
고졸미필백수 나는 특성화고를 졸업했다. 본디 특성화고 졸업생은 졸업과 동시에 취업을 하기 마련이지만 개인적인 계획으로 인해 취업을 잠시 미뤘다. 나는 산업기능요원 대체복무 자격이 되어 산업체를 알아보고 있었다. 사회에서 보는 산업체의 인식은 공장이 대표적인 것 같다. IT도 포괄임금제에 풀야근 시키는 악덕기업이 많지만 그렇지 않은 기업도 있다. 아무튼 더 이상 나이와 시간, 미래 계획을 위해 취업을 미룰 순 없어서 3곳의 회사에 지원했고 결과는 아래와 같다. 합격 1 : 이 고등학교때 개인적으로 공부했던 것이 대부분 면접질문으로 나에겐 어렵지 않았다. 불합격 1 : 이 회사는 면접을 보면서 나의 CS 펀더먼탈을 더욱 튼튼이 해야하는 목표가 생겼다. 첫 질문부터 멘탈 터져서 울고 싶었다. 연락두절 1 : ..
이전 게시글에서 Go 서버 애플리케이션을 aws ec2에 도커로 배포했다. 이번 글에서는 구입한 도메인과 AWS주소를 연결하는 방법과 Docker 컨테이너간 통신에 대해 작성해본다. AWS와 DNS 초기 인스턴스를 살펴보면 퍼블릭 IPv4와 퍼블릭 IPv4 DNS가 눈에 보인다. 개발자는 해당 IP주소를 통해 서버를 접근할 수 있다. 탄력적 IP(Elastic IP) 주소가 눈에 띈다. 동적 클라우드 컴퓨팅을 위해 고안된 정적 IPv4 주소다. 일반 사용자는 저 주소를 통해 서버에 접근시키면 된다. 탄력적 IP는 네트워크 및 보안 > 탄력적 IP에서 탄력적 IP 주소를 할당하면 된다. 탄력적 IP를 할당받았으면 탄력적 IP 주소 연결을 통해 인스턴스를 연결해주면 끝난다. 이제 구입한 도메인과 탄력적 IP..
작은 서비스를 만들어서 이를 배포하는 경험을 작성한다. 이 글의 서버 애플리케이션의 소스코드 구조는 다음과 같다 github.com/jinykim0x80/42report_calender_server 42report_calender_server Dockerfile internal *.go main.go Dockerize 우리가 작성한 서버 애플리케이션 코드를 빌드하고 애플리케이션을 클라우드 서버에 구동시키면 배포가 끝난다. 자신의 로컬 PC와 클라우드의 환경이 다르므로 도커를 활용하고자 한다. 우선 golang이 깔려있는 컨테이너에서 소스코드를 빌드해야한다. 도커허브(https://hub.docker.com/)에서 golang을 검색하면 golang이 깔려있는 컨테이너 환경을 구축할 수 있다. FROM g..
패키지 네이밍은 어떻게 해야하나 Go로 첫 프로젝트를 진행하면서 여러 고민이 있다. 코딩컨벤션 디렉터리 구조 패키지 네이밍 동시성과 성능 마이크로서비스에서 서비스를 나누는 기준과 repository의 분리 등등.. 당장 생각나는 것만 적어도 5가지나 있다. 다행이 Go는 컨벤션 같은 가이드라인이 문서로 잘 되어 있어서 궁금증을 쉽게 해결할 수 있다. 패키지 이름은 단순하게 협업을 한다면 패키지를 봤을 때 최대한 직관적이고 단순하게 작명하는 것이 좋다. 이를 위해 Go에서는 Snake case와 Camel case 네이밍을 사용을 하지 않는다. example priority_queue computeServiceClient 다른 언어에선 바람직하지만 Go에선 그렇지 않다. 이름이 길면 신중하게 줄여라 str..
자세한건 이 블로그를 참조하자. 이런 분이 교사 하시면 모두가 점수가 높을 것이다. 이 글의 내용 전문은 다 아래 블로그에서 학습한 내용을 상기하기 위함이다. http://cloudrain21.com/streaming-data-pipeline-with-go-channel 위 블로그의 go 파트는 웬만하면 다 읽어보자. 파이프라인은 물이 흐르는 통로를 말하는데 컴퓨터에서는 물 대신 데이터가 흐르는 통로로 이해하면 된다. 물을 공급해주는 역할과 공급받은 물을 사용하는 역할이 있을 것이다. 이를 공급쪽은 Producer 혹은 Source라고 하며 사용하는 쪽은 Consumer 혹은 Sink라고 한다. (생산자 소비자 모델을 생각해보자) Fan-out, Fan-in Fan-out 여러 스트림이 있는 경우 다수의..
net/http로 라우팅 요청된 경로나 요청 방식에 따라 다른 핸들러로 요청을 라우팅하는 기능이 필요. go에서 ServeMux 인스턴스인 Default ServeMux 메서드에 의해 처리된다. ListenAdnServe 함수의 handler 매개 변수로 nil에 전달되면 DefaultServeMux 메서드가 사용됨. http.HandleFunc("/helloworld", helloWorldHandler) 패키지 함수를 호출하면 실제로는 간접적으로 http.DefaultServerMux.HanldeFunc(...)를 호출함. Go HTTP 서버에는 지정된 라우터가 없음 http.Handler 인터페이스를 구현한 객체가 Listen() 함수의 최상위 함수로 전달됨. 요청이 서버로 들어옴 핸들러의 Serve..
좋은 API 디자인하기 REST나 RPC 중 하나를 선택하는 것은 환경에 달려있다. 이미 사용하고 있는 방식이 있다면 그 방식으로 나가는게 좋다. RESTful API REpresentational State Transfer(표현적 상태 전송)의 약자로 컴포넌트간 상호작용의 확장성, 범용적인 인터페이스, 컴포넌트의 독립적인 배포를 강조하며 응답 지연시간 감소, 보안 강화, 레거시 시스템의 캡슐화를 위한 중간 컴포넌트 역시 강조한다. 이와 같은 원칙을 준수하는 API를 사용하면 RESTful이다. URI(Uniform Resource Identifiers:일관된 리소스 식별자) API에 접근하는 방법. URI와 URL의 차이점은 없다. URL은 네트워크 위치로 리소스를 식별하는 URI다. 리소스 전체를 기..
Docker 정리 도커의 컨테이너 개념은 프로세스 분리 및 애플리케이션 패키징 컨테이너 이미지는 코드, 런타임, 시스템 도구, 시스템 라이브러리, 설정 등 소프트웨어를 실행하는 데 필요한 모든 것을 포함하는 경량의 독립된 실행 가능한 패키지 도커의 핵심적인 부분(도커 엔진으로 하는 것) 오케스트레이션(orchestration) : 컨테이너 그룹 내 컴포넌트의 관리 및 조정 네트워크 스케쥴링 및 보안 기능을 갖춘 경량의 애플리케이션 런타임 도커의 이미지는 컨테이너의 변경할 수 없는 스냅샷을 말함. docker run --rm hello-world 위 명령은 이미지는 컨테이너가 되어 타입이나 인스턴스와 같은 것으로 간주됨. 타입은 동작을 구성하는 필드와 메서드를 정의한 것을 말함. 인스턴스는 이 타입의 원래..
7.1 윈도우와 리눅스가 multiple locking 매커니즘을 구현했는지 설명하시오. spinlock, mutex lock, semaphore, condition variable이 사용되는 상황을 설명하시오. 각각의 경우에 메커니즘이 왜 필요한지 설명하세요. multiple locking 매커니즘으로 spinlock,mutex lock, semaphore, condition variable을 제공한다. spinlock : 주로 바쁜 대기에 사용함. 구현이 편리. 바쁜대기가 sleep queue에 진입하는 것 보다 오버헤드가 낮음. mutex lock : 한 프로세스에서 여러 스레드가 리소스에 접근하는데 이 때 리소스를 잠그는데 유용하다. semaphore : 프로세스간 공유 리소스에 대해 접근할 때 ..