golang32 golang에서 HandlerFunc란? golang의 기본 패키지들을 이용하여 웹프로그래밍을 공부하던 도중 햇갈리는 부분이 있어서 정리하려고 한다. 바로 코드를 보면서 이해해보자. 위 코드는 golang을 이용한 웹프로그래밍의 hello world이다. 코드에서 보다시피 localhost:8080/hello 주소로 들어가면 hello world가 찍혀있는 걸 볼 수 있다. http.HandleFunc 함수의 경우 두번째 인자로 func(http.ResponseWriter, *http.Request) 형태로 이루어져 있는 함수를 받는다. 이 점을 기억해두면서 아래 코드들을 계속 보자. 차이점이 보이는가? http.HandleFunc 대신 http.Handle 함수를 사용하였고 이것도 실행된다는 것을 명확히 보여주기 위해 hello world 대.. 2020. 10. 19. golang에서 slice VS linkedlist 이번 포스팅에서는 golang에서 기본적으로 제공하는 기능인 slice와 자료구조의 기본인 linkedlist를 비교해보겠다. 아 참고로 linkedlist는 자기 앞 노드를 기억할 수 있는 double linkedlist를 기준으로 한다. 첫번째로 slice와 linkedlist에서의 맨 앞과 맨 끝 삭제를 비교해보자. 예전 포스팅에서 golang에서 slicing을 하면 새로운 복사본을 얻는게 아니라 단지 slicing한 범위를 포인팅하는 것이라고 했다. (이것 때문에 slicing한 slice의 값을 바꾸면 원본 slice도 값이 바뀌게 된다.) 즉, slice에서의 첫번째 항목 삭제는 아래그림과 같다. 원본 slice는 검은 화살표처럼 맨 처음과 맨 끝을 가리키지만 slicing을 이용하면 그 초.. 2020. 5. 22. golang에서의 slicing golang에서는 파이썬처럼 리스트 슬라이싱 기능을 지원하는데 오늘은 슬라이싱을 할 때의 주의점을 알아보자 파이썬을 써보았다면 익숙할 슬라이싱이다. 근데 여기서 질문을 던져보겠다. 리스트 b는 리스트 a와 아무 연관이 없는 리스트일까? 정답은 연관이 있다이다. 아래 그림을 보자 b[0]을 11로 바꾸니 리스트a의 3번째인덱스도 바뀌어버렸다. (참고로 슬라이싱의 원조?인 파이썬에서는 golang과는 다르게 슬라이싱한 리스트의 값을 변경해도 원본 리스트의 값이 변경되지 않는다.) 이게 무엇을 의미할까? 즉, golang에서 슬라이싱이란 원본 리스트를 슬라이싱한 범위만 가리키고 있다는 뜻이다. 뭔소린지 글로는 이해가 안갈 것이다. 아래 그림을 보면 이해가 잘될테니 아래 그림을 보자 이러한 이유로 golang에.. 2020. 5. 18. golang에서의 문자열 처리 파이썬에서는 문자열처리가 상당히 편한데 golang에서의 문자열처리는 파이썬에 비해 직관적이지 않고 조금 당황스러울 수 있어서 한번 정리해보려고한다. 바로 시작해보자 hello world를 변수 s에 넣고 하나씩 출력해봤다. (참고로 golang은 type이 있는 언어지만 :=를 통해서 알아서 타입지정을 해준다. (이 부분이 궁금하면 구글링을 해보자) 여튼 그래서 s는 지금 문자열이 들어가있는 상태이다. 그래서 출력 결과는? 딱봐도 아스키코드가 나온듯하다. 그럼 어떻게 알파벳을 출력할까? 답은 간단하다. string함수를 쓰면 된다. 그럼 오늘의 키 포인트인 한글은 어떻게 처리할까? 뭔가 이상하게 나온다. 왜 그럴까? Go는 utf-8을 기반으로 한다. (참고로 go만든 사람중에 한명이 utf-8을 만들.. 2020. 5. 13. 이전 1 ··· 5 6 7 8 다음