728x90 반응형 전체 글40 golang sync.Map range (Iteration) golang 에서는 반복문을 이용하여 array, slice, map 을 손쉽게 iteration을 수행할 수 있도록 for range을 제공하고 있다.for fruitsName, price := range fruitsPrice { fmt.Println("과일 이름:", fruitsName, "-> 가격", price)} 하지만 Thread Safety 한 sync.Map 은 for range를 이용하여 Iteration을 수행할 수 없고, sync.Map 에 구현되어있는 Range를 구현하여 Iteration을 수행할 수 있다.func (m *Map) Range(f func(key, value any) bool) sync.Map 의 Range에서 제공하는 key, value 은 모두 any 타입 입니.. 2024. 10. 11. RFC 2119 ‐ Key words for use in RFCs to Indicate Requirement Levels (번역 , to Korean) 본 글은 RFC2119 내용을 DeepL을 이용하여 번역한 내용입니다.Key words for use in RFCs to Indicate Requirement LevelsRFC에서 요구 수준을 나타내는 데 사용되는 키워드https://datatracker.ietf.org/doc/html/rfc2119#section-8Network Working Group S. BradnerRequest for Comments: 2119 Harvard UniversityBCP: 14 March 1997Cate.. 2024. 1. 29. golang slice elements copy (copy(), append(), for ... range) golang에서 slice는 특정 배열의 위치를 가르키는 pointer를 가지는 reference 타입의 구조체이다. 그렇기 때문에 대입 연산자 ('=') 를 사용하여 Copy를 하면 값(Elements) 가 Copy가 되는 것이 아니라 reference type의 구조체가 Copy되는 것이다. 즉, 아래 그림과 같이 SliceA를 대입 연산자를 통해 SliceB에 복사한 경우 같은 배열을 가르키는 pointer를 가지는 reference type의 구조체가 만들어져, SliceA에서 배열의 값을 변경하는 경우 SliceB 도 같은 배열을 가르키고 있기 때문에 SliceB 가르키는 값 역시 변경되는 것이다. 이 경우 의도하였다면 큰 문제가 되지 않겠지만, 대부분 이런 경우는 논리적 오류를 일으킬 가.. 2024. 1. 14. 두 자리 수 덧셈 연습 (받아 올림) 갑자기 아이가 암산만 하려고 하고 단순 덧셈 문제를 틀리기 시작해서 다시 연습 겸 만들어 보았습니다. 2자리 수 덧셈 연습 시트 공유드려요. 사진으로 클릭해서 출력하셔도 되고 맨 아래 내리시면 pdf 파일 첨부해 두었으니 해당 파일 받으셔서 출력하셔도 됩니다. 2024. 1. 1. Hadoop Study Session #3-1 하둡 (Hadoop) 개요 본 포스팅은 제가 2013년 네이버 하둡스터디 카페에 포스팅했던 공개 강의 글입니다. This is a public lecture that I posted on Hadoop Study Cafe of Naver in 2013. 이전 세션에서는 클라우드 컴퓨팅과 빅데이터, 구글 시스템 소프트웨어에 대해서 알아보았습니다. 아래 링크를 통해 이전 세션 글을 보고 오시면 더욱더 많은 도움이 될 것 같습니다. 2023.12.22 - [hadoop study] - Hadoop Study Session #2 구글 시스템 소프트웨어 (Google System Software) Hadoop Study Session #2 구글 시스템 소프트웨어 (Google System Software) 본 포스팅은 제가 2013년 네이버.. 2023. 12. 24. golang map Go Map Introduction Golang 에서 map은 Hash table을 기반으로 구현되어있다. 이에 빠른 검색, 추가, 삭제를 특징으로 한다. Hash Table 기본적으로 Hash Collision이 없다는 전재하에 Olog1의 매우 빠른 검색 속도를 제공한다. Go에서 구현한 Map에 대한 설명, 그리고 Hash Table에 대한 상세한 설명은 아래 블로그를 추천하니 상세히 읽어보면 많은 도움이 될 것이다. Go Map Hash Table 구현 설명 - https://blog.frec.kr/golang/go-hashtable-0/ Hash Table 설명 - https://mangkyu.tistory.com/102 Go에서 제공하는 map은 Hash Table을 구현한 타입으로 소개하고 .. 2023. 12. 24. Ubuntu Upgrade, Update 가 느린 경우 ubuntu 기본 mirror 서버의 상태가 느린경우 jdk 설치 패키지를 다운받는데만 3시간씩 걸립니다. 이에 기본 mirror 사이트 경로를 변경해 주어 업데이트, 업그레이드, 설치파일 다운로드 등의 전체적인 시간을 단축할 수 있습니다. 방법은 아래와 같습니다. /etc/apt/sources.list 파일을 편집기로 열어주시기 바랍니다. $sudo vim /etc/apt/sources.list 아마 처음 설치시 현재 위치를 따로 선택하지 않아서 US로 설정된 분들은 아래와 같이 archive가 us로 설정되었을 것 입니다. deb http://us.archive.ubuntu.com/ubuntu/, deb-src http://us.archive.ubuntu.com/ubuntu/ 만약 Korea로 설치하.. 2023. 12. 22. Hadoop Study Session #2 구글 시스템 소프트웨어 (Google System Software) 본 포스팅은 제가 2013년 네이버 하둡스터디 카페에 포스팅했던 공개 강의 글입니다. This is a public lecture that I posted on Naver Hadoop Study Cafe in 2013. 안녕하세요 하둡 스터디 카페 운영자 김현욱 입니다. 이번 세션에서는 하둡에 대해 본격적으로 알아보기에 앞서 구글 시스템 소프트웨어에 대해 알아보도록 하겠습니다. 하둡은 구글 시스템 소프트웨어의 클론 프로젝트라는 것은 알고 계실겁니다. 내부적으로 저장, 분석하는 모든 것이 용어만 틀리지 똑같은 개념입니다. 그렇다면 구글 시스템 소프트웨어는 어떻게 등장하게 된 것일까요? 구글의 최대 핵심 프로젝트이자 수익모델은 검색 기능입니다. 구글의 검색 시스템은 웹상의 html을 수집하는 크롤러, 수집된.. 2023. 12. 22. Hadoop Study Session #1-3 빅데이터 (BigData) 주요 기술 본 포스팅은 제가 2013년 네이버 하둡스터디 카페에 포스팅했던 공개 강의 글입니다. This is a public lecture that I posted on Naver Hadoop Study Cafe in 2013. * 본 세션 자료의 대부분의 내용 및 그림은 한빛교육센터에서 진행(4~5월)한 클라우드 빅 데이터 에코 시스템 과정 강의자료를 바탕으로 인용 및 제작되었음을 밝힙니다. 이번 세션에서는 먼저 빅데이터가 어떻게 분석되고 처리되는지에 대해 살펴보고 빅데이터의 주요 기술에 대해 살펴보도록 하겠습니다. 빅데이터의 처리 및 분석은 아래 [그림 1]과 같이 내부, 외부 데이터를 로그 수집기, 통합, 웹 로봇, RSS Feed, Open API등을 이용하여 수집하고, 배치처리 즉, Hadoop과 Glu.. 2023. 12. 19. Hadoop Study Session #1-2 빅데이터(BigData) 등장 배경과 중요성 본 포스팅은 제가 2013년 네이버 하둡스터디 카페에 포스팅했던 공개 강의 글입니다. This is a public lecture that I posted on Naver Hadoop Study Cafe in 2013. 이전시간에는 빅데이터의 개념과 특징을 살펴보았습니다. 이번세션에서는 빅데이터의 등장 배경과 중요성에 대해서 알아보도록 하겠습니다. 빅데이터라는 용어는 실제로 하둡의 근원이 되는 구글에서는 사용하지 않았습니다. 자연스럽게 데이터가 커지기 시작하며, 단순히 큰 데이터를 빅데이터라고 부르기 시작하였고 이러한 큰 데이터를 처리하기 위한 기술 등을 산업계에서 빅데이터로 부르며 용어가 퍼져나가게 되었습니다. 그렇다면 빅데이터가 왜 등장하게 되었는가.. 아주 많은 이유가 있지만.. 그중에서도 몇가지 .. 2023. 12. 19. Hadoop Study Session #1-1 빅데이터 (BigData) 본 포스팅은 제가 2013년 네이버 하둡스터디 카페에 포스팅했던 공개 강의 글입니다. This is a public lecture that I posted on Naver Hadoop Study Cafe in 2013. 이번 세션에서는 하둡에 대해 본격적으로 공부하기 이전에 빅데이터에대해 알아보는 시간을 가지도록 하겠습니다. 하둡을 본격적으로 공부하기 전에 빅데이터를 알아야 하는 이유는.. 하둡 자체가 빅데이터를 저장하고 처리, 분석하기 위한 프레임 워크이기 때문입니다. 이에 빅데이터를 이해하셔야지만 하둡을 도입하고 구축하고 운영하실 수 있습니다. 이번 세션 이전에 Cloud Computing 공개 강의 게시판에 포스팅한 Cloud Computing 공개 강의 자료를 꼭 읽어보시기 바랍니다. 하둡, 빅데.. 2023. 12. 19. Cloud Computing Study Session #1-4 클라우드 컴퓨팅 (Cloud Computing) 서비스 및 구조 본 포스팅은 제가 2013년 네이버 하둡스터디 카페에 포스팅했던 공개 강의 글입니다. This is a public lecture that I posted on Naver Hadoop Study Cafe in 2013. * 본 세션 자료의 대부분 그림은 2013년 1월 숭실대학교에서 개최한 클라우드 컴퓨팅 및 보안 실무 Workshop 자료를 인용하여 수정하였음을 밝힙니다. 이번 세션에서는 클라우드 컴퓨팅의 서비스와, 구조에 대해서 알아보는 시간을 갖도록 하겠습니다. 클라우드 컴퓨팅에서의 주요 서비스 구성은 아래 [그림1]과 같습니다. 클라우드 컴퓨팅을 구성하는 주요 서비스로는 가상 서비스(CPU, 메모리, 디스크, 네트워크)를 지원히기 위한 Server 서비스, 백업 및 복구를 위한 Auto-Recov.. 2023. 12. 19. Cloud Computing Study Session #1-3 클라우드 컴퓨팅 (Cloud Computing) 분류 더보기 본 포스팅은 제가 2013년도에 운영하던 하둡스터디 카페에 포스팅했던 공개강의 글입니다. 이번 세션에서는 클라우드 컴퓨팅 기술과 서비스가 어떻게 분류되어 지는지에 대해 알아보도록 하겠습니다. 일반적으로 클라우드 컴퓨팅은 서비스의 전달 방식(자원의 성격)과 배치 방식(소유 방식)으로 구분 및 분류 할 수 있습니다. 서비스 전달방식은 어떤 서비스를 전달하느냐에 따라 Software as a Service(SaaS), Platform as a Service(PaaS), Infrastructure as a Service(IaaS)로 분류합니다. IaaS는 서버, 스토리지, 데이터베이스 등과 같은 시스템이나 서비스를 구축하는데 필요한 IT자원을 서비스 형태로 제공하는 것입니다. 각 자원에 대해 사용한 만큼.. 2023. 12. 19. Cloud Computing Study Session #1-2 클라우드 컴퓨팅 (Cloud Computing) 개념 본 포스팅은 제가 2013년 네이버 하둡스터디 카페에 포스팅했던 공개 강의 글입니다. This is a public lecture that I posted on Naver Hadoop Study Cafe in 2013. 이번세션에서는 클라우드 컴퓨팅에 대한 개념을 자세히 말씀 드리고 기존 컴퓨팅 기술과 어떤 차이가 있는지 알아보는 시간을 가지겠습니다. 클라우딩 컴퓨팅이라는 용어가 나온지 3년여 정도의 시간이 지났지만 아직도 클라우드 컴퓨팅은 정의하기 가장 어려운 IT용어 중 하나가 되어 버렸습니다. 이유는 클라우드 컴퓨팅이 너무 많은 개념을 포괄하고 있으며, 개발자, 시스템관리자, 하드웨어 제공업체, 보안 업체, 기업의 정보 관리 책임자, 컴퓨팅 서비스 제공업체, 솔루션 업체 등 IT시스템과 관련된 모든.. 2023. 12. 19. Cloud Computing Study Session #1-1 클라우드 컴퓨팅 (Cloud Computing) 소개 본 포스팅은 제가 2013년 네이버 하둡스터디 카페에 포스팅했던 공개 강의 글입니다. This is a public lecture that I posted on Naver Hadoop Study Cafe in 2013. 하둡은 클라우드 컴퓨팅의 분산 컴퓨팅 기술 중 주요한 기술입니다. 따라서 하둡을 시작하기 전에 클라우드 컴퓨팅에 대해 간단히 이해를 도와드릴 수 있는 시간을 가지기 위해 이번 글을 포스팅 하도록 하겠습니다. 이번 세션에서는 하둡을 공부하기 전에 클라우드 컴퓨팅에 대해서 알아보는 시간을 가지도록 하겠습니다. [그림 1] 클라우드 컴퓨팅 개요 클라우드 컴퓨팅!!(Cloud Computing)이란 스토리지, 서버, 소프트웨어를 인터넷을 통해 빌려쓰고 사용자가 사용한 만큼 비용을 지불하는 서비스.. 2023. 12. 19. 구구단 시리즈 - 2단 오늘부터는 구구단 시리즈를 올려보려고 합니다. 아이들이 하나씩 익혀나갈 수 있도록 천천히 한단씩 업로드 해보겠습니다. 구성은 2단 배우기로 2단에 대해 익숙해 질 수 있도록 하고, 2단을 연습하고, 마지막에는 테스트 볼 수 있는 페이지까지 작성하였습니다. 하단에 pdf파일로 다운로드 하셔서 인쇄하셔도 됩니다. 아래 pdf 파일 다운로드 하셔서 인쇄하세요~ 좋아요 부탁드립니다. 2023. 12. 10. golang - const와 iota로 enum(열거)형 구현하기 우리는 다양한 서적, 베스트 케이스에서 특정 상황을 비교할 때 boolean, integer 과 같은 자료형다는 enum(열거)형을 사용하라는 것을 많이 들었을 거다. 그런데 golang에서는 enum 자료형이 존재하지 않는다. 그럼 어떻게 해야할까? 일반적으로 golang 에서는 enum을 구현하기 위해 아래와 같이 자료형을 정의하고 값을 상수(const)로 정의해서 사용한다. 예를 들어 우선 Status라는 상태를 나타내는 int 타입의 자료형을 정의한다. 그리고 Status에 해당하는 값들(WAITING, RUNNING, COMPLETE, FAILED)을 상수로 정의한다. type Status int const ( WAITING Status = iota//0 RUNNING Status = iota/.. 2023. 11. 18. Node.js 교과서 리뷰 최근 Javascript, Node.js, Typescript를 어쩔 수 없이 배워야하는 상황이 생겼는데, 회사 동료 분이 때마침 길벗출판사에서 진행하는 개발자 도서 리뷰어를 소개해주셨다. 도서 리스트를 보다보니 마침 공부가 필요했던 Node.js 도서가 포함되어있었고, Node.js 관련 베스트셀러인 무려 3판 'Node.js 교과서'가 포함되어 있었고, 회사 근처 교보문고에서 쓰윽 보면서 구매 후보군으로 올려두었던 도서였다. 이에 리뷰어 신청을 하고 도서를 받아보았는데.. 뜨악... 무려 800페이지가 넘는 분량.. 엄청 두꺼웠다. 기본적으로 이 도서는 Javascript 정도는 어느정도 알고 있는 상태에서 보는걸 추천한다. 아쉬운 부분은 1장, 2장에서 나오는 간단한 예제들의 경우 바로 IDE에서 .. 2023. 4. 2. Alphabet trace writing worksheet (A, B) This is an alphabet writing exercise book. I made it myself. I will start with the alphabet A and B sheet and continue posting. A watermark was applied to the image. Unauthorized copy and use is prohibited. Click on the image to print. Or download and print the pdf file. Please click the like button. 2023. 2. 24. golang byte slice (array) compare golang 에서는 byte로 이루어진 slice, array를 비교할 수 있는 다양한 메서드들을 지원한다. 또한 별도로 구현해서 사용하는 방법이 있다. 단, "==" 비교 연산자를 이용해서 []byte 배열(array or slice) 값들을 비교할 수는 없다. 아래와 같이 '==' 연산자를 사용한 경우 "잘못된 연산자(invalid operation)"를 사용했다는 compile error를 만나게 된다. Comparing byte slices using '==' comparator data1 := []byte("abcdefg1234567890!@#$%^&*()안녕하세요GHJKLZXCVB") data2 := []byte("abcdefg1234567890!@#$%^&*()안녕하세요GHJKLZXCVB").. 2023. 2. 7. 이전 1 2 다음 728x90 반응형