분류 전체보기 56

[Section1] 파이썬 변수 사용

학습 환경1. 맥북 에어 M1 (MacBookAir M1)2. OS 버전: Sonoma 14.6.13. PyCharm 및 Python 3.13.1 [udemy] Python 부트캠프 : 100개의 프로젝트로 Python 개발 완전 정복을 통해 학습하고 있습니다.Printprint("Hello World!")# 결과Hello World! - ""는 기본적으로 문자열의 시작과 끝을 나타냄.   컴퓨터에게 "" 사이에 있는 것들은 코드가 아니라는 것을 알리는 것.   만약 "을 종료하지 않으면 에러가 발생하게 됨.  print("Hello world!\nHello World!\nHello World!")# 결과Hello World!Hello World!Hello World! - 개행문자 "\n"을 사용하여 문..

Language/Python 2025.01.08

Golang (Go언어) Go로 만드는 웹 (4)

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. ✓ 테스트 코드 실행하기- 기존에 테스트하던 파일에 새로운 TestFoo라는 코드를 새로 만듦.func TestFooHandler_WithoutJson(t *testing.T) { assert := assert.New(t) res := httptest.NewRecorder() req := httptest.NewRequest("GET", "/foo", nil) mux := NewHttpHandler() mux.ServeHTTP(res, req) assert.Equal(http.StatusOK, res.Code)} - 위 코드 내용을 저장하고 터미널에 'go test'를 입력하면, FAIL이 되는 것을 확인할 수 있음.  → 이유는 ma..

Language/Golang 2025.01.08

Golang (Go언어) Go로 만드는 웹 (3)

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. 테스트 환경 구성- 기존에 사용했던 디렉터리에서 새로운 디렉터리를 만들고 새 파일을 만들어 아래와 같이 수정함.//main.gopackage mainimport ( "Users//Web/myapp" "net/http")func main() { http.ListenAndServe(":3000", myapp.NewHttpHandler())} //app.go (New File)package myappimport ( "encoding/json" "fmt" "net/http" "time")type User struct { FirstName string `json:"First_name"` LastName string `json:"L..

Language/Golang 2025.01.07

Golang (Go언어) Go로 만드는 웹 (2)

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. HTTP 동작 원리웹 브라우저에 도메인(ex. https://www.google.com) 을 입력한 뒤  엔터를 누르면,웹 브라우저는 도메인 네임 시스템(DNS)에 해당 도메인에 해당하는 IP 주소를 요청함. 만약, IP주소의 목적지가 컴퓨터라면 포트 번호는 수신한 데이터를 놓을 컴퓨터 내 창구와 같음.IP주소는 컴퓨터 자체를, 포트번호는 해당 컴퓨터 내 데이터를 수신할 수 있는 창구를 의미함.* 컴퓨터 포트는 0 ~ 65535번 포트를 가지고 있음. 포트 없이 https://www.google.com 을 입력하면, 기본 포트 번호로 요청을 전송함.- http는 80, https는 443즉, https://www.google.com은..

Language/Golang 2025.01.03

Golang (Go언어) Go로 만드는 웹 (1)

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다.  ✓ Visual Studio Code를 사용하였고, 기존에 사용하던 디렉터리가 아닌 새 디렉터리를 만듦. HTTP 웹 서버 만들기- Go 언어에서는 net/http 패키지를 사용하여 손쉽게 웹 서버를 만들 수 있음.package mainimport ( "fmt" "net/http")func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello World") }) http.ListenAndServe(":3000", nil)} - HandleFunc은 핸들러를 등록하고, 경로에 해당하는 요청이 들어왔을 때 어떤 것..

Language/Golang 2025.01.02

Golang (Go언어) 제네릭 프로그래밍(Generic Programming) 3/3

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. 제네릭 타입- 타입을 파라미터를 이용해서 여러 타입에 동작하는 새로운 타입을 만들 수 있음.type Node[T any] struct { val T next *Node[T]} - Node 구조체는 타입 파라미터를 사용해서 val 필드 타입이 어떤 타입이든 가능하도록 정의함. package mainimport "fmt"type Node[T any] struct { val T next *Node[T]}func NewNode[T any](v T) *Node[T] { // T타입의 val 필드값을 갖는 객체 생성 return &Node[T]{val: v}}func (n *Node[T]) Push(v T) *Node[T] { // No..

Language/Golang 2025.01.01

Golang (Go언어) 제네릭 프로그래밍(Generic Programming) 2/3

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. 인터페이스(Interface)와 타입 제한자 차이- 하나의 Interface가 있고, String() 메서드를 가지고 있으면 이는 string 타입들을 다 해당 Interface로 사용될 수 있음.tpye Stringer interface { String() string} - 타입 제한은, 동일하게 interface라고 사용하지만 틸드(~)를 사용하여 정의된 타입들 중 하나가 가능함.tpye Integer interface { ~int8 | ~int16 | ~int32 | int64 | ~int} → 같은 키워드인 인터페이스를 동일하게 사용하였지만, 둘 다 타입을 제한하는 목적으로 사용한다고 볼 수 있음.- 인터페이스는 해당 조건에 ..

Language/Golang 2025.01.01

Golang (Go언어) 제네릭 프로그래밍(Generic Programming) 1/3

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. 제네릭 프로그래밍(Generic Programming)- Go 1.18 버전에 추가된 기능으로 타입 파라미터를 통해 하나의 함수나 타입이 여러 타입에 대응해 동작하도록 하는 기법- 자바, C#, C++ 같은 언어에서는 이미 제공되던 기능임. package mainimport "fmt"func min(a, b int) int { if a  → a,b는 출력이 가능하나 c,d는 아래 결과로 보면 int16 타입을 int로 변환할 수 없어서 사용할 수 없다고 나옴.- min은 int 타입인데, c,d는 int16 타입으로 서로 타입이 다르며, Go는 이를 변환시켜주지 않음(최강 타입 언어).   = 변환하고 싶다면 Println부분에서 i..

Language/Golang 2024.12.27

Golang (Go언어) 채널과 컨텍스트(Channel & Context)

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. 채널(Channel)- 고루틴끼리 메시지를 전달할 수 있는 메시지 큐(FIFO).- Thread Safe Queue라고도 하며, 멀티스레드 환경에서 Lcok 없이 사용할 수 있음.- 메시지 큐에 메시지들은 차례대로 쌓이게 되고 메시지를 읽을 때 맨 처음 온 메시지부터 차례대로 읽게됨. * 채널 인스턴스 생성- 채널을 사용하기 위해서는 먼저 채널 인스턴스를 만들어야 함.var message chan string = make(chan string) - 슬라이스, 맵 등과 같이 make() 함수로 만들 수 있고, 채널 타입은 채널(Channel)을 의미하는 Chan과 메시지 타입을 합쳐서 표현- chan string은 string 타입 메..

Language/Golang 2024.12.11

Golang (Go언어) Go루틴

Tucker의 Go 언어 프로그래밍 책과 유튜브를 통해 학습 중입니다. 스레드(Thread)- 프로세스 안의 세부 작업 단위- 프로세스는 스레드를 한 개 이상 가지고 있음.- 스레드가 하나면 싱글 스레드 프로세스, 여럿이면 멀티 스레드 프로세스라고 함. → 초기 컴퓨터에서 사용한 천공카드 다발을 스레드라고 부를 수 있고, 명령어가 적힌 종이 다발을 CPU가 한 줄씩 읽어서 수행하는게 컴퓨터     CPU 코어는 한 번에 하나의 명령어 다발 = 스레드를 수행할 수 있음.- 원래 CPU 코어는 한 번에 한 명령어 밖에 수행할 수 없음- 스레드가 CPU 코어를 빠르게 교대로 점유하면 동시에 모든 스레드가 실행되는 것 처럼 보임. * 컨텍스트 스위칭(Context Switching) 비용- CPU 코어가 여러 ..

Language/Golang 2024.12.07