본문 바로가기
반응형

목록363

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 for문 사용법!! Golang에선 for문 사용법이 좀 여러가지가 있습니다. 그리고 Golang에선 while문이 없죠. 이건 Golang의 정신? 이런 의미로, Golang의 목적이 있죠. Golang은 기능이 비슷한 것들을 모두 지웠습니다. 예를 들면 ,if문과 삼항 연산자, for문과 while문 등.... Golang에선 삼항연산자와 while문이 없죠. 또한 if문과 for문 사용시 반드시 중괄호( { } )를 입력해줘야합니다. 본론으로 돌아와서 for문에 대해 알아봅시다. 1. for 변수; 조건; 연산자 package main import "fmt" func main() { for i := 0; i < 10; i++ { fmt.Println(i) } } //아래와 같은 형식으론 안됩니다. for var i i.. 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.
백준 10942] C++ 팰린드롬?(dp) 해당 문제는 백준 사이트에서 풀 수 있습니다. www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 1. 문제 명우는 홍준이와 함께 팰린드롬 놀이를 해보려고 한다. 먼저, 홍준이는 자연수 N개를 칠판에 적는다. 그 다음, 명우에게 질문을 총 M번 한다. 각 질문은 두 정수 S와 E(1 ≤ S ≤ E ≤ N)로 나타낼 수 있으며, S번째 수부터 E번째 까지 수가 팰린드롬을 이루는지를 물어보며, 명우는 각 질문에 대해 팰린드롬이다 또는 아니다를 말해야 한다. 예를 들어, 홍준이가 칠판에 적은 수가 1, 2.. 2021. 4. 2.
4년 백수 탈출기.... 취뽀 성공....(DevOps 신입) 음.... 무슨말 부터 써야할지 잘 모르겠네요... 우선 취업 성공했습니다.!!!! 스트리미의 고팍스 DevOps 신입으로 들어가게 되었습니다. 제가 원했던 DevOps로 들어가서 우선 너무 기쁘고, 그와 동시에 많이 부족하단걸 느끼고 있습니다. 주변 친구, 형들도 고생했다고.... 축하해 줬는데, 너무 고마웠습니다. 물론, 3개월 수습기간이 있고 적합하지 않다고 판단될 시 본사는 채용 거부를 할 수 있다고 나와있어서.... 지금보다 더 노력해야 할 것 같습니다. 입사하기 전 코테 봤던 기업들을 나열하자면, 오픈서베이, 베이글 코리아, 퍼즐원스튜디오, 에이스프로젝트 교육 관련 코테는 소마, 우테코 이렇게 봤네요. 12월 ~ 2월까지의 결과입니다. 싹~~ 다 떨어졌구요. 면접으로 이어진 곳은 퍼즐원스튜디오.. 2021. 4. 2.
Ansible Inventory 작성방법 Ansible Inventory에 대해 작성해 볼까 합니다. 우선 Inventory의 문법과 설정파일에 대해 설명 해보겠습니다. 1. Inventory 작성 방법 Inventory는 확장자 명이 따로 없습니다. 따라서 파일 이름은 본인 마음대로 하셔도 되지만, 추후 관리를 위해 Inventory파일은 따로 Inventory라고 명시해 주시는 것이 좋습니다.!! Inventory파일은 확장자가 따로 필요하지 않으며, 기본적인 host 주소들의 묶음이라 생각하시면 됩니다. 추가로 .yml 파일로도 inventory를 작성 가능하지만, 저는 보통 방법으로 설명하겠습니다. mail.example.com//이렇게 하면 Ad-hoc이나 Playbook에서 해당 호스트 네임으로 명령어 실행가능 //호스트 네임과 IP.. 2021. 4. 1.
Ansible(앤서블)에 대하여.... (간단한 설명) 서버를 운용하다보면 셋팅이 필요한 경우가 있습니다. 예를들면 패키지 설치, 응용프로그램 설치 등... 설치가 끝나면 해당 프로그램에 맞게 셋팅도 해줘야 합니다. apache라면 '/var/www/html/' 에 위치해 있어야 겠죠. nginx 라면 '/usr/share/nginx/html' 에 위치하겠죠. 클러스터를 구축한다고 가정해보겠습니다. 즉, 동일한 기능을 하는 웹 서버를 5대 셋팅한다는 뜻입니다. 5대라면 충분히 서버 하나하나에 접속해서 셋팅할 수 있습니다. 시간이 좀 걸리더라도요... 그럼 100대, 200대 라고 생각해봅시다. 또한 위 서버들의 셋팅은 전부 다 다릅니다. 한 그룹은 웹서버, 다른 그룹은 DB, 다른 그룹은 다른 웹서버 등.... 거의 하루 이틀 날잡아서 될 양이 아니죠?? 특.. 2021. 4. 1.
리눅스 파이프(pipe) 에 대한 설명 ( '|' ) 리눅스에서 저희는 파이프( | )를 자주 사용합니다. 이 파이프에 대해 알아보려고 합니다. 그럼 우선 리눅스 명령이 어떤식으로 실행되는지 알아야 합니다. 1. 리눅스 쉘 사용자는 리눅스 커널과 통신하기 위해서 리눅스 쉘이라는 녀석을 사용합니다. 정확히는 커널과 운영체제를 이어주는 녀석입니다. 기본적으로 리눅스를 사용하는 환경은 /bin/bash 라는 쉘을 사용합니다. 일명 배쉬쉘.... 자신이 어떤 쉘을 사용하는지 확인하려면 다음과 같은 명령어를 입력해주시면 됩니다. # echo $SHELL 저희가 이런 쉘을 사용하기 위해서 터미널 창을 열게 됩니다. 이런 터미널은 하나의 프로세스입니다. 그리고 'ls', 'cd', 'cat' 등의 명령어는 이 터미널이 갖고있는 정보를 기준으로 실행되게 됩니다. 2. 리.. 2021. 3. 31.
프로그래머스] C++ 풍선 터트리기(Level 3) 해당 문제는 프로그래머스에서 푸실 수 있습니다. programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 1. 문제 과자를 바구니 단위로 파는 가게가 있습니다. 이 가게는 1번부터 N번까지 차례로 번호가 붙은 바구니 N개가 일렬로 나열해 놨습니다. 철수는 두 아들에게 줄 과자를 사려합니다. 첫째 아들에게는 l번 바구니부터 m번 바구니까지, 둘째 아들에게는 m+1번 바구니부터 r번 바구니까지를 주려합니다. 단, 두 아들이 받을 과자 수는 같아야 합니다(1 2021. 3. 31.
728x90
반응형

스킨편집 -> html 편집에서