본문 바로가기
반응형

hwanshell107

Golang의 fmt.Print는 heap으로 간다? Golang에는 fmt라는 패키지가 있습니다. 그리고 fmt.Print 를 사용하여 사용자에게 출력해주죠. 하지만 fmt를 사용하여 변수를 출력하면 해당 변수는 stack에서 heap으로 가버리게 됩니다. 다음 예시를 봅시다. package main import "fmt" func main() { i := 10 fmt.Println(i) } $ go build -gcflags '-m' struct.go # command-line-arguments .\struct.go:7:13: inlining call to fmt.Println .\struct.go:7:13: i escapes to heap .\struct.go:7:13: []interface {}{...} does not escape :1: .this.. 2021. 5. 23.
Golang Closure(클로저)란? (인라인과 메모리 할당 설명) Golang 에서는 JavaScript에 있는 클로저의 기능이 존재합니다. 우선 클로저에 대해 설명하자면.... 클로저는 함수가 종료되도 함수 안에 있는 변수가 사라지지 않고, 계속 존재하며 사용할 수 있도록 해주는 것이 클로저입니다. 이렇게 읽어보면 정말 쓸대없고, 왜 사용하는지, 왜 존재하는지 이유를 모릅니다. 천천히 설명해보겠습니다. 1. Golang Closure package main func closure() func() { var i int = 0 return func() { i++ println(i) } } func main() { next := closure() next() next() next() } //output : 1 2 3 클로저는 기본적으로 일급함수(람다함수)랑 같이 사용됩니다.. 2021. 5. 23.
Golang 함수, 익명함수 사용법. Golang의 함수, 익명함수 사용법입니다. Golang은 Lambda라는 표현을 사용하지 않습니다. 뭐.... 익명함수나 Lambda나 결국 같은 놈이니깐요..... 1. 함수 package main import ( "fmt" ) func add(a int, b int) int { return a + b } func main() { var a int = 10 var b int = 20 fmt.Println(add(a, b))//output : 30 } 이런식으로 함수를 정의할 수 있습니다. Golang의 함수는 이런식으로 구성되어 있습니다. 별거 없죠..... 하지만 Golang의 특징중 하나는 return 값을 여러게 줄 수 있다는 것입니다. 2. 함수 리턴 여러개 package main import.. 2021. 5. 16.
Golang 구조체 설명 Golang에는 class 개념 대신 struct개념이 있습니다. 쉽게말해 C나 C++에 있는 struct입니다. 하지만 Golang에는 다른 OOP와는 다르게, class의 역할중 생성자, 맴버변수 선언을 하지 못합니다. 또한 private, public이라는 개념이 따로 없으며, pirvate과 public이라는 선언대신 해당 struct를 외부에서 가져다 사용하거나 내부에서 사용할때의 기준을 정할 수 있습니다. 선언 방법은 다음과 같습니다. 1. 스택에 구조체 선언 package main import "fmt" type A struct { name string num int } func main() { a := A{} a.name = "hwan" a.num = 10 } 위와 같이 선언하면 사용할 수.. 2021. 5. 2.
Go "fmt" 패키지의 사용법과 Print, 내장함수 println 차이 Golang 에서는 "fmt" 라는 기본적인 패키지를 제공해줍니다. 처음 Golang을 접하게 되면 당연 출력하는 것이 "Hello warld"라고 생각합니다. 다음 예제를 보시죠. package main import "fmt" func main() { println("hi") fmt.Println("fmt") } //Output hi fmt fmt 패키지를 사용해 Println이라는 메소드를 호출하여 흔히 문자열을 출력합니다. 그럼 println 은 뭘까요?? fmt.Println()은 stdout 으로 표준 문자열 출력을 제공하는 함수입니다. println()은 내장된 함수로 stderr를 출력해주는 내장함수 입니다. 때문에 println()은 주로 디버깅 할때 유용하다고 합니다. 그럼 fmt 패키지.. 2021. 4. 18.
AWS S3에 대한 설명 1. AWS S3란? Simple Storage Service의 약자로 (S가 3개) Paas 방식의 서비스 플랫폼입니다. 쉽게 말해서 NoSQL 데이터 베이스인데, 해당 데이터 베이스의 관리를 AWS에서 해주고 기능만 제공해주는 서비스입니다. 2. S3의 동작 방식 S3는 기본적으로 버킷(Bucket)이라는 공간에 데이터를 객채 형태로 저장합니다. 이게 무슨말이냐...... 이런식으로 AWS S3는 사용자 요청에 bucket이라는 하나의 저장공간을 제공해줍니다. 쉽게 생각해서 하나의 디렉토리? 하드디스크? 라고 생각하면 됩니다. 용량이 무제한인..... 그리고 이 bucket의 관리는 S3가 해주는 것이죠. user는 해당 bucket으로 데이터를 저장하고, 저장된 데이터를 꺼내쓰면 됩니다. 3. S3.. 2021. 4. 8.
Ansible로 CentOS 7 wordpress, mysql 설치하기 예제 코드는 제 깃에 올려놨습니다. github.com/dnfwlq8054/Ansible dnfwlq8054/Ansible Contribute to dnfwlq8054/Ansible development by creating an account on GitHub. github.com 1. 구상도 2. OS및 계정 셋팅 Master node OS : CentOS 7 IP : 192.168.0.18 User name : hwan User group : wheel Hostname : master WebServer OS : CentOS 7 IP : 192.168.0.19 User name : hwan User group : wheel Hostname : node01 DBServer OS : CentOS 7 IP.. 2021. 4. 7.
Go lang 시작하기(VSCode 셋팅) Go lang 셋팅을 해보자. 1. 패키지 다운 golang.org/ The Go Programming Language Download Go Binary distributions available for Linux, macOS, Windows, and more. // You can edit this code! // Click here and start typing. package main import "fmt" func main() { fmt.Println("Hello, 世界") } Hello, World! Conway's Game of Life Fibonacci golang.org 해당 공식 홈페이지에서 다운로드를 누른 후 운영체제 환경에 맞게 설치해줍니다. 그 후 설치파일을 실행시켜 설치를 완료합니다.. 2021. 4. 5.
백준 10026] C++ 적록색약(DFS) 해당 문제는 백준 사이트에서 풀 수 있습니다. www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 1. 문제 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우.. 2021. 4. 5.
Ansible Inventory 작성방법 Ansible Inventory에 대해 작성해 볼까 합니다. 우선 Inventory의 문법과 설정파일에 대해 설명 해보겠습니다. 1. Inventory 작성 방법 Inventory는 확장자 명이 따로 없습니다. 따라서 파일 이름은 본인 마음대로 하셔도 되지만, 추후 관리를 위해 Inventory파일은 따로 Inventory라고 명시해 주시는 것이 좋습니다.!! Inventory파일은 확장자가 따로 필요하지 않으며, 기본적인 host 주소들의 묶음이라 생각하시면 됩니다. 추가로 .yml 파일로도 inventory를 작성 가능하지만, 저는 보통 방법으로 설명하겠습니다. mail.example.com//이렇게 하면 Ad-hoc이나 Playbook에서 해당 호스트 네임으로 명령어 실행가능 //호스트 네임과 IP.. 2021. 4. 1.
백준 1005] C++ ACM Craft(위상정렬) 해당 문제는 백준 사이트에서 풀 수 있습니다. www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N 과 건물간의 건설순서규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 1. 문제 서기 2012년! 드디어 2년간 수많은 국민들을 기다리게 한 게임 ACM Craft (Association of Construction Manager Craft)가 발매되었다. 이 게임은 지금까지 나온 게임들과는 다르게 ACM크래프트는 다이나믹한 게임 진행을 위해 건물을 짓는 순서가 정해져 있지 않다. 즉, 첫 번째 게임과 두 번째 게임이 건물을 짓.. 2021. 2. 22.
백준 14502] C++ 연구소 해당 문제는 백준 사이트에서 풀 수 있습니다. www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 1. 문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바.. 2020. 12. 22.
백준 2565] C++ 전깃줄 해당 문제는 백준 사이트에서 풀 수 있습니다. www.acmicpc.net/problem/2565 2565번: 전깃줄 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는 www.acmicpc.net 1. 문제 두 전봇대 A와 B 사이에 하나 둘씩 전깃줄을 추가하다 보니 전깃줄이 서로 교차하는 경우가 발생하였다. 합선의 위험이 있어 이들 중 몇 개의 전깃줄을 없애 전깃줄이 교차하지 않도록 만들려고 한다. 예를 들어, 과 같이 전깃줄이 연결되어 있는 경우 A의 1번 위치와 B의 8번 위치를 잇는 전깃줄, A의 3번 위치와 B의 9번 위치를 잇는 전깃줄, A의 4번 위치와.. 2020. 12. 8.
백준 2293] C++ 동전 1 해당 문제는 백준 사이트에서 풀 수 있습니다. www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 1. 문제 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 입력 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,0.. 2020. 12. 6.
프로그래머스] C++ 쿠키 구입(Level 4) 해당 문제는 프로그래머스에서 푸실 수 있습니다. programmers.co.kr/learn/courses/30/lessons/49995 코딩테스트 연습 - 쿠키 구입 과자를 바구니 단위로 파는 가게가 있습니다. 이 가게는 1번부터 N번까지 차례로 번호가 붙은 바구니 N개가 일렬로 나열해 놨습니다. 철수는 두 아들에게 줄 과자를 사려합니다. 첫째 아들에게는 programmers.co.kr 1. 문제 과자를 바구니 단위로 파는 가게가 있습니다. 이 가게는 1번부터 N번까지 차례로 번호가 붙은 바구니 N개가 일렬로 나열해 놨습니다. 철수는 두 아들에게 줄 과자를 사려합니다. 첫째 아들에게는 l번 바구니부터 m번 바구니까지, 둘째 아들에게는 m+1번 바구니부터 r번 바구니까지를 주려합니다. 단, 두 아들이 받을.. 2020. 12. 2.
반응형

스킨편집 -> html 편집에서