본문 바로가기
반응형

분류 전체보기157

[개발상식] ipconfig ifconfig 보는법(서브넷마스크, 브로드캐스팅, 게이트웨이, ip주소) 이번 게시글에서는 ipconfig, ifconfig 등의 명령어에서 나오는 ip주소 서브넷마스크, 게이트웨이 브로드캐스팅에 대해 정리합니다. 아래는 제 윈도우, 맥북, 스마트폰(와이파이)의 IP주소입니다. 1. ip주소란? ip주소는 인터넷에 있는 컴퓨터들의 고유한 주소로 컴퓨터를 식별하기 위해 사용합니다. (컴퓨터에 랜카드, 와이파이 동글 같은 인터페이스가 있어야 인터넷 통신을 할 수 있습니다) 아이피는 8bit씩 4자리, 총32bit로 이루어져 있습니다. ipconfig, ifconfig 등을 입력했을떄 172.xx.xxx.xxx, 192.168.xxx.xxx, 10.xxx.xxx.xxx(8자리의 2진수 4묶음을 10진수로 바꾸어 표기) 등이 IP주소입니다. ip는 0.0.0.0 ~ 255.255.2.. 2022. 3. 18.
[개발상식] 라우팅 테이블이란 이번 게시글에서는 라우팅 테이블에 대해 정리합니다. 라우팅 테이블은 IDC환경은 물론 클라우드에서 퍼블릭 서브넷, 프라이빗 서브넷 인터넷게이트웨이 나트게이트웨이를 이해하는데도 꼭 필요한 내용입니다. 1. 라우팅 테이블이란 위키백과에는 다음과 같이 정리되어 있습니다. 라우팅 테이블은 컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시키는 목적으로 사용된다. 라우팅 프로토콜의 가장 중요한 목적이 바로 이러한 라우팅 테이블의 구성이다. 우리가 네트워크 요청을 하면 수많은 라우터를 거쳐 목적지로 이동하게 되는데 라우팅 테이블은 라우터에게 네트워크 패킷의 목적지의 정보를 알려주는 기능을 합니다. IPv4 경로에서 '내가 가고자 하는 목적지 ip'와 '네트워크 마스크'와 AND 연산을.. 2022. 3. 18.
[golang] 고루틴 사용시 주의점(오버플로우 방지, 고루틴풀, 고루틴큐) 이번 게시글에서는 고루틴 사용시 주의점에 대해서 정리합니다. 억지 예제를 만든 느낌이만.. 고루틴이 무한정 증가하는걸 막고싶은경우 활용할만한 예제입니다. 1. 예제 package main import ( "fmt" "math/rand" "time" ) func main() { doSomething() } func doSomething() { for { data := getDataFromServer() analyzeAndSaveData(data) time.Sleep(time.Millisecond * 1000) } } // server는 난수 x개를 생성해서 내려줍니다. func getDataFromServer() []int { var data []int loopCnt := rand.Intn(300) for.. 2022. 3. 8.
[golang] golang 포인터 예제 이번 게시글에서는 golang의 포인터에 대해 정리합니다. 1. 포인터의 사용 package main import "fmt" func main() { test1() test2() test3() test4() } func test1() { var value int getTest1Value(value) // 콜스택은 독립적인 공간(네임스페이스)를 갖습니다. // 메서드 내부에서 값을 바꿔주더라도 해당 공간에 새로 만든 stack 변수 값만 바뀝니다. // 내부에서 변수에서 무슨짓을하든 외부에서의 값은 바뀌지 않습니다. fmt.Println("test1 값:", value) // output 0 } func getTest1Value(a int) { // 콜스택에 a라는 새로운 stack 변수에 값을 변경 a .. 2022. 3. 2.
[golang] decorate 패턴을 사용하여 timer 구축하기(golang 시간 차이 구하기) 이번 게시글에서는 golang에서 decorator 패턴을 사용하여 timer를 구축하는 방법에 대해 정리합니다. 1. 시간차이 구하기 package main import ( "fmt" "time" ) func main() { startTime := time.Now() for i := 0; i < 10; i++ { fmt.Println("test") } // Sub 는 time 구조체로 생성된 객체에서 접근할 수 있습니다. // 현재시간을 측정하여 이전시간과의 차이를 직접 계산하는 방법입니다. endTime := time.Now() sub := endTime.Sub(startTime) fmt.Println(sub) // Since 는 현재시간 객체를 만들지 않아도 시간차이를 구할 수 있습니다. // st.. 2022. 2. 28.
[golang] vue와 golang echo framework 연동하기 이번 게시글에서는 golang echo framework와 spa 프레임워크의 연동방법에 대해 정리합니다. 해당방법은 nginx, appach, IIS 등의 웹서버를 사용하지 않고 백엔드 애플리케이션에서 spa 프레임워크가 만들어준 하나의 html을 내려주는 방식입니다. 스케일 아웃에는 좋지 않고 랜더링 방식 자체는 웹서버가 아닌 애플리케이션까지 오는 ssr에 가깝지만, 하나의 바이너리, 하나의 컨테이너, 하나의 포트로 프론트엔드와 백엔드를 관리할 수 있다는 장점이 있습니다. 전체 소스코드는 아래 깃헙레포에서 확인하실 수 있습니다. https://github.com/jaeho310/golang-echo-vue GitHub - jaeho310/golang-echo-vue Contribute to jaeho.. 2022. 1. 24.
[golang] go context, go-cache를 활용한 캐시 서버 만들기 이번게시글에서는 go-context와 go-cache를 활용한 간단한 캐시서버를 구축하는 예제입니다. 소스코드는 github.com/jaeho310/proxy-tut 에서 확인할 수 있습니다. GitHub - jaeho310/proxy-tut Contribute to jaeho310/proxy-tut development by creating an account on GitHub. github.com 1. 캐시 서버의 기능 (1). 클라이언트에게 요청이 오면 캐시되었는지 확인한후, 캐시되어있다면 본서버로 요청을 보내지 않고 데이터를 내려줍니다. (2). 동일한 요청이 여러개 들어올 시(본서버에서 응답을 받기전이라 캐시되지 않은경우) 동일한 요청은 본서버에 한번만 보내고 나머지 요청은 블락시키고 응답을 받.. 2022. 1. 13.
[golang] golang profile 적용하기(viper 예제) 이번 게시글에서는 viper를 사용하여 go 애플리케이션 profile을 설정하는 방법에 대해 정리합니다. 1. profile이란? 애플리케이션을 개발하다 보면 애플리케이션의 설정을 유동적으로 관리 하는 경우가 있습니다. 예를 들면 로컬환경, 테스트용 베타서버, 운영서버는 DB, log setting 등이 다릅니다. 모든것을 환경변수로 관리하고 컨테이너 환경의 환경변수를 관리하는 파일을 따로 만드는 경우도 있지만 profile파일을 도입하면 보다 편리하게 설정을 관리할 수 있습니다. 2. 프로젝트 구조(https://github.com/jaeho310/golang-profile-viper) . |-- configuration | `-- config_model.go |-- go.mod |-- go.sum .. 2021. 12. 28.
[golang] go-redis, redis-mock 사용법 및 예제(suite 사용법) 이번 게시글에서는 go-redis 패키지를 사용하는 컴포넌트 구축 방법을 정리하고 유닛테스트(행위기반 테스트)와, 통합테스트(상태기반 테스트)방식의 테스트 코드 작성법(suite, mock사용)을 예제로 정리합니다. 1. redis란 key, value의 비정형 데이터를 저장해놓는 nosql입니다. RDB는 parser, 전처리기, 옵티마이저를 타고 디스크까지 접근하므로 느리지만 redis(remote dictionary server)는 서버의 메모리에서 동작하며 조회 정책을 기본적으로 해시테이블방식을 사용하므로(시간복잡도가 O(1)) 빠릅니다. 대신 정규화가 불가능해 RDB에 비해 확장에 불리합니다. 만료시간이 있는 데이터를 저장하거나, 확장될 여지가 없는 데이터셋을 저장할때 주로 사용됩니다. (red.. 2021. 12. 13.
반응형