일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- go
- gitops
- Logrus
- 디자인패턴
- 시스템 설계
- 대규모 시스템 설계
- golang
- AWS Infra
- GoF 디자인패턴
- 클래스 관계
- Kubernetes
- image resizing
- UnBuffered channel
- Helm V3
- goroutine
- tenneling
- notification system
- Lambda@Edge
- Live Template
- argocd
- 컴포지트패턴
- Bastion Server
- AWS
- 윈도우키보드
- System Design
- GoF
- Golines
- 알림 시스템
- Buffered channel
- Infra
- Today
- Total
목록Information Technology (295)
Fall in IT.
안녕하세요. 오늘은 이진탐색 알고리즘에 대해서 알아보도록 하겠습니다. 이진탐색 알고리즘(Binary Search Algorithm) 1회 비교를 거칠때마다 탐색 범위가 대략 절반으로 줄어들기 때문에 이진탐색이라고 불린다. 배열의 값들이 정렬되어 있을때만 사용이 가능합니다. function solution(element, some_list) { let firstIndex = 0; let lastIndex = some_list.length - 1; while(firstIndex
2진수와 16진수 컴퓨터는 모든 데이터와 명령을 2진수(0 or 1)로 처리한다. 반도체 기억소자가 켜져 있는 상태 즉, on / off 만 있을 수 있기 때문이다. 0 또는 1의 한 자리 2진 수 정보를 저장할 수 있는 단위를 Bit라고 한다. 1비트의 저장 공간으로는 두 가지 기호 밖에 나타내지 못하고, 8비트 즉, 1바이트로 나타낼 수 있는 기호는 2의 8승(256)개를 나타낼 수 있다. 컴퓨터가 사용하는 2진수로 값을 표현하면 자릿수가 읽고 쓰기가 불편하다. 그래서 컴퓨터의 값을 표현할 때는 16진수를 많이 쓴다. 인코딩과 디코딩 사람들이 쓰는 문자를 컴퓨터에 저장하기 위해서는 2진수로 변환해야 한다. 이를 인코딩(encoding)이라고 한다. 반대로, 인코딩한 2진수를 사람이 읽기위해 문자로 되..
안녕하세요. ORM을 사용하게 되면 raw query를 전혀 사용하지 않을 수 있지만, 간혹 사용해야 하는 상황이 발생하기도 합니다. 오늘은 Nodejs의 ORM인 Sequelize에서 raw query 사용하는 방법에 대해서 알아보도록 하겠습니다. Dynamic SQL을 사용한 나쁜 예 let query = ` SELECT * FROM user LEFT JOIN team ON user.team_id = team.id WHERE user.id = ${userId} `; let user: User = await sequelize.query( query, { replacements: {personId: person.id}, type: Sequelize.QueryTypes.SELECT, raw: true })..
A Table과 B Table의 속성이 완전히 같을 경우 INSERT INTO SELECT .* FROM A Table과 B Table의 속성이 일부 같을 경우 INSERT INTO ("복사할 필드1", "필드2", "필드3") SELECT .필드1, .필드2, .필드3 FROM ※ 와 자리에는 테이블명을 적어주시면 됩니다. 모두 즐거운 코딩하세요~
최근 웹개발을 할때는 Angular, React, Vue 이 세 가지 프레임워크를 많이 이용합니다. 때로는, Typescript도 함께 사용하기도 하는데요, 이때 인터넷 익스플로러(IE)에서는 웹사이트가 동작하지 않는 경우가 종종 발생합니다. 에러를 확인해보면 Symbol is undefined 또는 Symbol이 정의되지 않았습니다. 라고 나오게 됩니다. 해당 문제는 babel-polyfill을 추가하면 해결할 수 있습니다. 해결방법 babel-polyfill 설치 $ npm install babel-polyfill 웹사이트의 엔트리 파일 위치에 babel-polyfill을 추가 (index.js 또는 index.ts 등) import 'babel-polyfill' 참조 https://www.npmjs..
설정 Visual Studio Code를 실행합니다. Cmd + Shidft + P 단축키를 누릅니다. "shell" 이라고 입력합니다. 셀 명령: Path에 code 명령 설치를 선택합니다. 실행 명령어 code명령어를 사용하여 실행합니다. $ code
safari에서 new Date() 사용할때 주의할점 Date 객체는 자바스크립트에서 많이 사용되는데요, 주의해야할 사항이 있습니다. String 타입의 날짜를("2019-03-15") Date 객체에 담아서 사용할때, 크롬과 사파리가 다르게 동작합니다. "yyyy-mm-dd"의 형태로 입력받을 경우 Safari와 Chrome 모두 정상동작하지만, "yyyy-m-dd"의 형태로 입력받을 경우 Safari에서는 error, Chrome에서는 정상동작하게 됩니다. let date = new Date("2019-03-15"); let date = new Date("2019-3-15"); // safari error!
HTML의 select 태그 사용시 기본값을 설정하는 방법 예제 ``` 선택해주세요. 아빠 엄마 ``` 참조 https://stackoverflow.com/questions/3518002/how-can-i-set-the-default-value-for-an-html-select-element How can I set the default value for an ..
안녕하세요. 오늘은 웹 작업을 할때 발생하는 Target container is not a DOM element 에러에 대해서 알아보겠습니다. 리액트를 사용할때, (리액트를 사용하지 않을때도 발생할 수 있습니다.) UInvariant Violation: Target container is not a DOM element 가 발생하는 이유는 DOM(Document Object Model 즉, HTML)이 렌더링 되기 전에 DOM element를 참조할 경우에 발생합니다. 예제코드 아래 예제 코드처럼 javascript 파일을 head에서 불러올 경우 하단에 있는 body 엘리먼트가 읽혀지지 않은 상태에서 javascript 파일이 호출되어 DOM element를 참조할 경우 에러가 발생하게 됩니다. 해결 ..
안녕하세요. 오늘은 공유기(Router)의 개념에 대해서 간단히 알아보도록 하겠습니다. 공유기란? 하나의 공인 IP를 사용하여 여러개의 기기가 인터넷을 사용하기위해 사용되는 네트워크 기기입니다. 아파트 또는 학교에서 많이 사용되며 라우터라고도 불립니다. 공유기를 사용하는 이유는? 통신사와 회선 계약을 하면 인터넷 케이블(공인 IP가 할당 된)을 하나 받습니다. 이때 여러개의 기기를 사용하려면 통신사와 계약을 여러번 해서 많은 수의 케이블을 할당 받아야하는데 이럴 경우 돈이 많이 들게 됩니다. 이때, 공유기를 사용하면 하나의 공인 IP를 사용하여 다수의 기기를 연결할 수 있어 경제적입니다. 필수 개념 # 1. WAN (Wide Area Network) 통신사에게 전달받은 케이블을 WAN에 연결합니다. 공인..