네이버 기술 블로그를 보다가 typesciprt 6.0 이 javascript의 마지막 버전이고, 7.0부터는 Go로 작성된 컴파일러 기반으로 작동할것이라는 사실을 알게되었다.
[출처: https://d2.naver.com/news/6428522 }
Go 에 대해서 간단하게 알아보쟈
구글에서 검색하니까 최상단에 프로그래머스가 떴다.
https://school.programmers.co.kr/learn/courses/13/13-30%EB%B6%84-go
30분 Go
Go의 기본 문법 가이드라인을 제공하는 짧은 온라인 튜토리얼. 문법 특징에 대한 설명과, 예제 코드가 주어진다. 코드를 수정해보며 문법에 익숙해지는 것이 중요!
school.programmers.co.kr
젤 기본인 helloword! 부터 시작한다.

차근차근 공부해보자 ~!~!
사실 클러드가 넘 잘짜줘서 개발언어를 공부하는게 의미가 있나 싶기도 하지만....................일단 간단기초 한번 배워본다.......
문제 설명에 있다 싶이 이미 다른 프로그래밍 언어를 알고 있는 개발자 대상으로 짜여진 수업이기 때문에 비교적 매우 간단하게 이루어져있다.
그중에서 개인적으로 추가 이해가 필요한 부분에 관해서만 아래에 정리해두었다.
참고 : 클러드 ~~~~
# 리시버 타입
리시버(Receiver) 란?
: 함수가 어떤 타입에 소속되는지 알려주는 것
일반함수와 비교하기
// 일반 함수
func 짖기() {
fmt.Println("왈왈!")
}
// 리시버 있음 (Dog)
func (d Dog) 짖기() {
fmt.Pringln("왈왈!")
}
리시버 문법 구조
func (d Dog) 짖기() { ... }
↑ ↑
│ └── 타입 (어디에 소속될지)
└───── 변수명 (함수 안에서 자기 자신을 부를 이름)
리시버 사용 예시
// 1. 타입 정의
type Dog struct {
Name String
Ag int
}
// 2. 리시버로 메서드 연결
func (d Dog) 짖기() {
fmt.Println(d.Name, ": 왈왈!") // d로 자기 자신에 접근
}
func (d Dog) 나이말하기() {
fmt.Println(d.Name, "는", d.Age, "살입니다")
}
// 3. 사용
func main() {
myDog:= Dog{Name: "멍멍이", Age: 3}
myDog.짖기() // 멍멍이 : 왈왈!
myDog.나이말하기() // 멍멍이 는 3 살입니다
}
리시버의 2가지 종류
1) 값 리시버 - 복사본을 받음
func (d Dog) 이름바꾸기(새이름 string) {
d.Name = 새이름 // 복사본을 바꾸는 것 (원본은 그대로)
}
myDog := Dog{Name: "멍멍이"}
myDog.이름바꾸기("코코")
fmt.Println(myDog.Name) // 멍멍이 <- 안 바뀜 !!
2) 포인터 리시버 - 원본을 받음
func (d *Dog) 이름바꾸기(새이름 string){
// *가 붙으면 포인터 리시버 (원본에 접근)
d.Name = 새이름 // 원본을 바꿈
}
myDog := Dog{Name: "멍멍이"}
myDog.이름바꾸기("코코")
fmt.Println(myDog.Name) // 코코 <- 바뀜 !!