전체 글 238

Go 언어 - 포인터 , 배열, Map

포인터 Java 나 파이썬 같은 언어에는 없는 포인터라는 개념이 있다. C, C++ 에도 있는 개념인데 메모리를 참조하고 메모리에 직접 접근하는 기능이다. 대충 예를 들자면 보통 a := 2 b := 3 b := a a = 10 라는 코드를 작성하면 3번째 줄에서 b 는 2로 바뀌지만 4번째 줄에서 a = 10 이라는 코드를 적어도 b 는 세번째 줄에서만 변경 됐을뿐 더 이상 영향을 주지 못한다. 이런걸 값의 복사라고 표현하는데 포인터는 이런게 아닌 4번째 줄에서 a를 10으로 변경해도 b도 함께 10으로 변경되게 해준다. 아직 감이 안올수도 있다 아래 코드와 함께 설명하겠다. a := 2 b := &a fmt.Println(b) 위 코드의 & 는 해당 변수의 메모리 값을 말한다. b 라는 변수에 a의 ..

Go 2021.06.06

Go 언어 - defer

defer 는 매우 강력한 기능이다. func 가 끝나고나면 자동으로 무엇을 실행할지 함수안에 적어둘수가 있다. 그게 뭐가 강력하냐고 물을수도 있겠지만 시스템 구조상으로 엄청나게 도움을 줄 수 있다. 이미지를 열거나 파일을 생성하고 나서 defer 로 이미지를 닫거나 파일을 닫거나 API 로 요청을 보내거나 하는 일들을 그냥 defer 하나로 처리할 수 있게 되는것이다. 아래처럼 쓸 수 있다. func lenAndUpper(name string) (int, string) { defer fmt.Println("done") return len(name), strings.ToUpper(name) } func main() { totalLenght, upperName := lenAndUpper("choi") fm..

Go 2021.06.02

Go 언어 - Const , Var , func

Const 는 다른 언어에서도 볼 수 있는 상수를 의미한다 아래와 같이 적을 수 있다 const name string = "choidev" 밑에서 name = "aaa" 로 바꾸려고 하면 상수라서 바꿀 수 없다는 에러가 나온다. var 는 위 개념과 반대로 변수다. 얼마든지 바꿀 수 있다. var name = "dev" name = "choidev" // 위 처럼 적을 수도 있고 name:= "dev" //이렇게 축약해서 적을수도 있다. 축약해서 적으면 자동으로 맞는 타입을 go가 찾아준다. func 다른 언어에서 말하는 함수를 go에서는 func 라고 적는다. fun plus(a int, b int) int { // func 로 함수를 열고 , 매개변수에는 각각 타입을 지정해준다. // 그 다음 밖에 ..

Go 2021.06.02

Go 언어 - Go 설치하기

Go 를 시작하려면 당연하지만 Go를 설치 해야한다. https://golang.org/dl/ Downloads - The Go Programming Language Downloads After downloading a binary release suitable for your system, please follow the installation instructions. If you are building from source, follow the source installation instructions. See the release history for more information about Go releases golang.org 위 링크에서 Go 를 자신의 운영체제에 맞게 설치해주면 된다. 설치..

Go 2021.05.30

Go 언어 - go 에 대하여

이 글은 https://nomadcoders.co/go-for-beginners 쉽고 빠른 Go 시작하기 - 노마드 코더 Nomad Coders Learn Go nomadcoders.co 해당 무료강좌를 보고 작성했습니다. 문제시 삭제하겠습니다. GO 언어의 존재에 대해서는 알았지만 당시에는 Go 대한 정보도 너무 적었고 이걸로 뭘 할 수 있는지에 대해 전혀 몰랐다. 그땐 알고싶지도 않았고 최근에 블록체인에 관심이 많아서 찾아보던 도중 이더리움 진영의 솔리디티를 알게 됐는데 이더리움에서만 사용가능하고 배워도 사용할 분야의 풀이 적다고 느껴져서 다른걸 찾던 도중에 Go 언어도 블록체인 개발에 사용되고 실제 국내 블록체인 회사에서도 Go 언어를 사용해서 개발하는 곳도 있다는걸 알게됐다. 찾아보면 찾아볼수록 ..

Go 2021.05.30

아이디어

요즘 만들고 싶은 앱이나 서비스에 대한 아이디어가 마구 샘솓는다. 당장 괜찮다고 생각되는 아이디어만 3가지가 있다. 하나하나 만들어서 공개할 수 있다면 깃헙이나 블로그에도 소개하려고 한다. 지금은 그동안 사용해보고 싶었던 기술들을 하나씩 다 접목 할 수 있는 가계부 앱을 만들고 있다. 내부 DB를 쉽게 사용하게 해주는 Room, 관심있게 공부하던 MvvM 패턴 적용, Kotiln 을 주력언어로 바꾸기위해서 코틀린 도입, 데이터의 콜백을 벗어나 자유롭게 라이프 사이클 관리까지 할 수 있게 하기위한 LiveData, Databinding RxJava 는 사용해보려고 하다가 굳이 쓸 필요가 없어서 사용하지는 않았다. 이 이외에도 브로드캐스트 관련 기능도 넣을까 생각중인데 아직은 모르겠다. 위에 처럼 만들지않고..

잡담 2021.05.29

블록체인 공부자료

1. https://seulcode.tistory.com/394 블록체인 자료 및 공부할 레퍼런스 Lectures youtube The concept of the blockchain: 블록체인 기초 영상 (한글) (https://www.youtube.com/watch?v=662wnupQ8fg) Ted 강의들 How the blockchain is changing money and business (by Don Tapscott).. seulcode.tistory.com https://brunch.co.kr/@taewookim/4 블록체인 공부하기 좋은 사이트 모음 4개월간 400여 분과 함께 온라인 블록체인 스터디를 하면서, 발견한 한글로된 좋은 자료/사이트들을 공유해드립니다. 이 글을 스크랩만 하고, 혼..

블록체인 2021.05.22

레이아웃을 이미지로 변경하고 pdf로도 저장하기

https://kwon8999.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EB%A0%88%EC%9D%B4%EC%95%84%EC%9B%83-PDF-%EB%B3%80%ED%99%98 안드로이드 레이아웃 PDF 변환 안드로이드 레이아웃 PDF파일로 변환 방법입니다. itextpdf 라는 라이브러리를 이용하여 간단하게 변환 시킬것입니다. 기본적으로 돌아가는 구조는 현재 레이아웃을 jpg 이미지로 변환하여 저장한 kwon8999.tistory.com 권한 필요

Android 2021.05.13

람다식에서 return 사용하기

코틀린은 함수형 프로그래밍을 지원하기 때문에 익명함수, 람다식을 사용할 경우가 흔하다. map, filter, reduce, forEach등 함수를 인자로 받는 함수들(고차함수)의 매개변수로 우리만의 로직이 담긴 함수를 넘길때 람다를 자주 사용한다. 자주 사용하는 만큼 꼭 집고 넘어가야할 사항이 있다. 일반 함수를 넘겼을 때 (return에 주목하자) 일반적으로 함수 내부의 return은 그 함수만 종료시킨다. 물론 코틀린의 label을 사용해서 종료시킬 함수를 지정할 수 있지만 그렇지 않은 경우 return문을 포함하는 가장 가까운 함수를 종료시키게 된다. 우선 람다식이 아니라 일반적인 익명 함수를 넣은 예시를 보자. fun exampleFunc() { var ints = listOf(0,1,2,3) ..

Kotlin 2021.05.02