클린아키텍쳐 기반으로 안드로이드 앱 프로젝트 시작하기

안드로이드 앱을 처음 개발하고, 시간이 흐르면 좀 더 잘 정리된 구조로 리펙토링을 하고 싶거나, 해야하는 상황이 오기 마련입니다. 어떤 이는 가독성과 유지보수성을 좋게 하기 위해서일 수도 있고, 어떤 이는 협업을 위해서일 수도 있습니다. 그리고 여러 잘 짜여진 구조들을 공부하면서 리펙토링을 마치고, 추후에 시작될 신규 개발 프로젝트는 잘짜여진 구조로 처음부터 시작을 하게 되고, 우리의 실력은 조금더 … Read more

[Golang] Go 언어 기초 문법 – 포인터와 인스턴스

포인터는 메모리의 주소를 저장하는 변수 타입입니다. 아파트의 동호수처럼 변수의 번지수라고 봐도 무방할 것 같습니다. 포인터 선언 포인터 변수는 가리키는 데이터 타입 앞에 * 연산자를 붙여서 선언합니다. 그리고 어떤 변수의 주솟값을 알고 싶으시면 & 연산자를 붙여서 주솟값을 알아올 수 있습니다. 또한, 포인터가 가리키는 변수의 값을 얻어올 수도 있습니다. 이때는 포인터 앞에 * 연산자를 붙여서 사용합니다. 그러면 … Read more

[Golang] Go 언어 기초 문법 (9) – 구조체

정의 구조체는 여러 필드를 묶어서 하나의 변수처럼 사용합니다. 배열은 같은 타입의 값들로만 연속된 메모리 공간에 저장된다면, 구조체는 다른 타입의 값을 연속된 메모리 공간에 저장됩니다. 정의 및 선언 type 키워드를 사용해서 타입의 명칭을 정의합니다. 타입명의 첫번째 글자가 대문자이면 패키지 외부로 공개되는 타입입니다. 이와 같이 관련이 있는 정보들을 하나의 구조체안에 정의해서 넣습니다. 그리고 구조체를 사용해서 예제를 구현해봅니다. … Read more

[Golang] Go 언어 기초 문법 (8) – 배열

배열 배열 선언시 주의해야 할 점 배열을 선언할때 실수를 방지하기 위해서 배열의 개수를 변수로 지정하면 좋습니다. 이때 배열의 개수를 지정하는 값은 반드시 “상수” 이어야 합니다. 다음은 에러가 발생하는 코드입니다. “n := 3” 이 구문은 변수를 선언하는 구문이기때문에 값의 변경이 가능합니다. 그래서 값을 변경할 수 없는 배열의 개수로 넣으면 에러가 납니다. 따라서, 아래 소스코드와 같이 상수로 … Read more

[Golang] Go 언어 기초 문법 (7) – 반복문

for 문 동작 원리 프로그램의 내부 동작은 비교와 반복이 거의 대부분을 차지한다고 해도 과언이 아닙니다. 이전에 비교문을 배웠으니 이제 반복문을 알아볼 차례입니다. Go언어에서는 C언어와는 다르게 while문이 없습니다. for문 만으로도 while문의 기능을 충분히 할 수 있기때문입니다. for문의 구조는 C언어와 매우 비슷하니 쉽게 이해가 되시리라 생각됩니다. for 문의 다양한 표현 continue와 break 이중 for 문 for문 안에서 … Read more

[Golang] Go 언어 기초 문법 (6) – 비교문

if문 “만약 ~ 이라면 … 해라.” 라는 뜻으로 해석 가능합니다. 이전에 포스팅 했던 변수, 상수, 연산자들을 써서 조건을 만들고, 조건이 참(true)이면 구문을 실행하고, 거짓이면 실행하지 않고 건너 뜁니다. 단, else 구문을 작성했다면 if 절에서 비교했던 조건이 거짓(false)일 경우 else 구문이 실행됩니다. if 초기문 Go 언어에서는 if문에 C언어의 for문 처럼 변수를 초기화 할 수 있는 초기문을 … Read more

[Golang] Go 언어 기초 문법 (5) – 상수

상수 선언 상수 사용 예 타입 없는 상수 타입 없는 상수는 변수에 복사될 때 타입이 정해진다. 상수와 리터럴 Tucker의 Go 언어 프로그래밍 참조. 책을 보면서 공부한 내용을 정리하면서 작성하는 글입니다. 따라서, 주제 하나를 많은 시간을 들여서 쓰지 않고, 간단하게 작성하는 것부터 시작해서, 계속 다듬어가면서 업데이트해 나갈 생각입니다. 참고하는 자료가 있을 때마다 출처를 적어 놓겠습니다. [이전글] … Read more

[Golang] Go 언어 기초 문법 (4) – 함수

함수 정의 함수는 함수 키워드, 함수명, 매개변수, 반환 타입, 함수 코드 블록으로 구성됩니다. 함수를 쓰는 이유 똑같은 변수들로 계산을 하는데, 중복되는 코드 양이 많은걸 볼 수 있습니다.이를 함수로 묶어서 중복코드를 개선하면 아래와 같이 바꿀 수 있습니다. 멀티 반환 함수 Go 언어에서는 함수에서 한번에 여러개의 리턴값을 반환할 수 있습니다. 재귀 호출 함수 안에서 자기 자신을 호출하는 … Read more

[Golang] Go 언어 기초 문법 (3) – 연산자

산술 연산자 산술 여산자는 사칙 연산, 비트 연산, 시프트 연산이 포함됩니다. 구분 연산자 연산 피연산자 타입 사칙연산과 나머지 + 덧셈 정수, 실수, 복소수, 문자열 – 뺄셈 정수, 실수, 복소수 * 곱셈 정수, 실수, 복소수 / 나눗셈 정수, 실수, 복소수 % 나머지 정수 비트 연산 & AND 비트연산 정수 | OR 비트 연산 정수 ^ XOR … Read more

[Golang] Go 언어 기초 문법 (2) – 변수

변수 정의 변수는 값을 저장하는 메모리 공간을 가리키는 이름입니다. 변경 가능한 수이기 때문에 변수라 부릅니다. 변수 선언 변수 선언 방법은 아래와 같습니다. [변수 선언 키워드] [변수명] [타입] = [초기값] 변수의 4가지 속성 숫자 타입 변수 이름 설명 값의 범위 uint8 1byte / 부호 없는 정수 0 ~ 255 uint16 2byte / 부호 없는 정수 0 … Read more