안녕하세요! 이번에는 TypeScript Proejct를 배포를 위한 준비를 해보겠습니다! 먼저 간단하게 webpack-bundle-analyzer(웹팩 번들 에널라이저)에 대해 알아보겠습니다! Webpack을 사용하여 번들링되는 모듈을 분석해서 시각적으로 표현해주는 모듈입니다. 모듈이 차지하는 용량에 따라서 눈에 보이는 영역도 커지기 때문에 어떤 모듈이 얼만큼 용량을 차지하는지 쉡게 파악할 수 있습니다 밑에 그림 처럼요 ! Webpack 특성상 수십개들의 파일들을 단 하나의 js 파일로 압축해주는 역할을 맡고 있습니다. 이럴 때 용량 문제가 큰 이슈 사항인데요. 합쳤을 때 용량이 너무 크면 문제가 되겠죠? 지금은 app.js는무려 총 크기가 1.5MB를 차지하고 있습니다. (사실상 한국은 별 문제 없는..
| React Soket IO socket.io란 websocket기반으로 client와 server간 양방향 통신을 가능하게 해주는 모듈입니다. 기본적인 socket의 연결, 해제기능들을 자바스크립트로 가능하게 만든 모듈이라 생각하시면 편할 것 같습니다. 기본적인 socket의 실행흐름에 대해 알고 사용하는 것이 더 의미가 있을 것 같습니다. Soket IO 특징 단점 - 한 번 연결해 놓으면 전역적인 특징을 갖고 있기 때문에 리액트에서 하나의 components에 연결을 했다가 다른 compoentns에 연결을 하면 연결이 끊어져버린다. 해결 - 위와 같은 이슈를 해결하기 위해서 하나의 components 즉, common compoennts에 기능 구현을 하면 된다. ( 예전에는 HOC(High o..
오늘은 고언어(golang)의 고루틴(gorutine)에 대해 알아보겠습니다 ! | Goroutine 고루틴 - 타 언어의 쓰레드(Thread)와 비슷한 기능 - 생성 방법 매우 간단, 리소스를 매우 적게 사용한다. - 수 많은 고루틴 동시 생성 실행 가능 - 비동기적 함수 루틴 실행(매우 적은 용량 차이) -> 채널을 통한 통신 가능 - 공유 메모리 사용 시 정확한 동기화 코딩이 필요함. - 싱글 루틴에 비해 항상 빠른 처리 결과는 아니다. 멀티 쓰레드의 장점 및 단점 장점 - 응답성 향상 - 자원 공유를 효율적으로 활용 & 사용 - 작업이 분리되어 코드가 간결하다. 단점 - 구현하기 어려움 - Test & 디버깅이 어렵다. - 전체 프로세스의 side effect - 성능 저하, 동기화 코등 반드시 ..
| 고언어의 구조체란? - 구조체는 '하나 이상의 변수를 묶어서 새로운 자료형을 정의하는 Custom data type'입니다 - 필드들의 집하체이며 필드들의 컨테이너입니다. 헷갈리죠 ? 예를들어, "상품"이라는 정보를 저장한다고 생각해봅시다.상품중에서도 냉장고를 저장한다고 하면, 냉장고 품명,바코드번호 등이 있습니다.그래서 냉장고를 추가할 때 마다 냉장고의 정보를 선언하고 초기화하는 것이 아니라, '상품'이라는 구조체 안에 묶어서 저장합니다. 즉, '정보의 집합'입니다. 하지만, Go언어는 객체 지향을 따릅니다.java에서 객체지향은 class,상속 등의 개념이 존재하는데Go언어에서는 존재하지 않습니다. !!중요 객체지향의 class가 filed와 method를 함께 갖는 것과는 다르게 Go언어의 구조..
이번에는 Map에 대해 알아봅시다 ! 타 언어 ex) java 같은 경우에는 hash, linked ... 기타 등등 Map이 존재한다. 역시 Go 에서도 Map을 pakage에서 제공한다 ! 살펴보자 | MAP 특징 -Hashtable, 딕셔너리(파이썬), Key - Value 로 자료 저장 -레퍼런스 타입(참조 값 전달)이다. -비교 연사자 사용 불가능 ( 참조 Type 이므로) -참조 Type(key)로 사용 불가능, 값(Value)으로 모든 타입 사용가능하다. -make 함수 및 축약(리터럴)로 초기화 가능 -순서 없음 ( 주의 실행할 때 마다 값이 바뀝니다,) 문법 //기본 값 key : string(""), value : int (0) var map1 map[string]int = make(m..
| Go언어 정렬 Go언어에서는 기본적으로 정렬 메서드를 사용하려면 sort 를 import 하여 사용합니다. Int 정렬 sort.IntsAreSorted(slice2) : (int) 정렬 확인 return : boolean sort.Ints : int형 배열 정렬 package main import ( "fmt" "sort" ) func main() { sliceInt := []int{1, 2, 5, 4, 6, 3} //int형 정렬 (오름차순) fmt.Println(sort.IntsAreSorted(sliceInt)) sort.Ints(sliceInt) fmt.Println((sliceInt)) //string형 정렬 (오름차순) } 결과 String 정렬 sort.StringAreSorted(st..