일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 언어
- channel
- 영화
- Golang
- Python
- c++
- 리뷰
- C
- windows
- File
- FOR
- bitcoin
- tcp
- JavaScript
- range
- json
- http
- Callback
- go언어
- Close
- package
- 책
- install
- Linux
- Sync
- write
- API
- mutex
- go
- window
- Today
- Total
목록전체 글 (203)
Code Habit
- HTTP 인터넷으로 데이터를 주고 받는 일종의 규약으로 주로 HTML 문서를 주고 받는 데에 쓰인다. 요청/응답 프로토콜로 서버는 클라이언트의 요청에 대한 응답을 처리하지만 연결을 유지하지는 않는다. TCP를 사용하고 80번 포트를 사용한다. - WebSocket WebSocket은 HTTP 통신과 다르게 한번 연결을 하면 연결을 유지하는 특징을 지닌다. 하여 서버는 단순 요청에 대한 응답만 제공하는 것이 아니라 필요하면 직접 연결된 클라이언트와 통신할 수 있다. 클라이언트 구분이 가능하며 실시간 양방향 통신에 사용할 수 있다. - WebSocket 설치 npm i ws - WebSocket 사용 : server.js const WebSocket = require('ws'); const ws = ne..
MVP를 사용하면 쉽고 빠르게 웹사이트를 심플한 디자인으로 만들 수 있다. MVP는 태그에 class나 id같은 특성을 추가하지 않아도 자동으로 스타일을 적용해 주어 테스트 페이지 제작 등 빠르게 디자인을 입히고 싶을 때 유용하게 사용할 수 있다. MVP는 따로 프레임워크등을 추가할 필요도 없고 따로 공부할 필요도 없다. 단지 MVP.css를 우리 페이지에 연결만 해주면 모든 스타일이 자동으로 완성된다. MVP는 무료 라이센스이며 CDN을 제공한다. ( "https://unpkg.com/mvp.css" ) - mvp.css 사용 link(rel="stylesheet", href="https://unpkg.com/mvp.css") 우리가 만든 페이지에 위 사용 예처럼 mvp.css파일만 링크 걸면 페이지 ..

express란 NodeJS를 사용하여 서버를 쉽게 구성할 수 있게 만든 프레임워크다. - express 설치 npm i express - express 사용 const express = require('express') const app = express() app.get('/', (req, res)=>{ res.send("Welcome !"); }) app.listen(3000, ()=>{ console.log("server is listening 3000"); }) app.get()으로 GET 요청을 정의한다. req는 요청을, res는 응답을 의미한다. 위 코드에서는 res를 통해 "Welcome !"이라는 문자를 전송한다. app.listen()에서 서버를 여는 포트를 지정하고 열렸을 때 콜백함..
babel은 작성 완료된 JavaScript 코드를 다른 버전의 JavaScript 코드로 번역할 수 있는 JavaScript 컴파일러이다. 최신버전의 JavaScript 코드는 브라우저가 이해하지 못하기 때문에 babel이 브라우저가 이해할 수 있는 문법으로 변환해 준다. babel을 사용하면 최신 문법을 사용할 수 있는 장점이 있다. - babel 설치 npm i @babel/core @babel/cli @babel/node @babel/preset-env -D @babel/core : babel 코어 패키지로 babel을 사용하는데 필수로 필요하다. @babel/cli : babel을 터미널에서 커맨드로 사용하는데 필요한 패키지이다. @babel/node : Node.js 커맨드 라인에서 사용하는 ..

nodemon은 소스 코드를 수정할 때마다 코드의 변화를 감지해서 자동으로 서버 프로그램을 재시작해 주는 도구다. 이를 사용하면 소스 코드를 수정할 때마다 서버를 재실행 해야 하는 수고로움을 덜 수 있다. - nodemon 설치 npm i nodemon -g -g옵션을 주어 글로벌 설치한다. 다음 명령어를 통해 실행한다. nodemon --watch src/server.js 터미널에서 실행하면 아래와 같은 메시지가 나온다. 소스 코드 수정 후 ctrl+s 로 저장하면 아래와 같은 메시지가 나오며 서버가 자동으로 재시작 된다.

Go언어는 "net/http" 패키지를 통해 편리하게 HTTP서버를 만들 수 있다. func ListenAndServe(addr string, handler Handler) error : 웹 서버를 시작한다. func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) : 경로별로 요청을 처리할 핸들러 함수 등록 type Employee struct { No int Age int Name string } func MakeWebHandler() http.Handler { mux := http.NewServeMux() mux.HandleFunc("/Employee", EmployeeHandler) return mux } func Employ..
해당 원칙은 상위 타입의 객체를 하위 타입의 객체로 치환해도 동작에 문제가 없어야 한다는 것을 정의한다. 자식 클래스 언제나 자신의 부모클래스를 교체할 수 있어야 하고 한 객체를 다른 객체가 파생하더라도 그 기본 로직은 변경 되어서는 안된다. 리스포크 치환 원칙은 부모 객체와 이를 상속한 자식 객체가 있을 때 부모 객체를 호출하는 동작에서 자식 객체가 부모 객체를 완전히 대체할 수 있다는 원칙이다. type T interface { SomeThing() } type S struct { } func (s *S) SomeThing() { fmt.Println("type S의 Something") } type U struct { } func (u *U) SomeThing() { fmt.Println("type..
컨텍스트(context)는 context 패키지에서 제공하는 기능으로 작업을 지시할 때 작업 가능 시간, 작업 취소 등의 조건을 지시할 수 있는 작업 명세서 역할을 합니다. 새로운 고루틴으로 작업을 시작할 때 일정 시간 동안만 작업을 지시하거나 외부에서 작업을 취소할 때 사용한다. 또한 작업 설정에 관한 데이터를 전달할 수도 있다. var wg sync.WaitGroup func main() { wg.Add(1) ctx, cancel := context.WithCancel(context.Background()) // 컨텍스트 생성 go PrintEverySecond(ctx) time.Sleep(5 * time.Second) cancel() // 취소 wg.Wait() } func PrintEverySec..