스택(stack)은 후입선출(LIFO, Last In First Out)의 구조를 가지고있다. 스택사용의 예라고 한다면 우리가 인터넷 브라우저를 사용할때 쓰는 뒤로가기가 있다. C++의 STL, C#의 Collection에서 기본으로 구현되어있는 스택만 쓰다가 자료구조들을 한번 다시 점검&공부하는 느낌으로 스택을 직접 정말 간단하게 구현해봤다. [ MyStack.h - 선언 ] #pragma once class MyStack { private: int pointer = 0; int stack[1000] = { 0, }; public: int Count(); bool IsEmpty(); void Push(int value); int Pop(); void Clear(); }; [MyStack.cpp - 정의..
델리게이트 델리게이트는 명사로는 대표(자), 동사로는 위임하다.. 라는 뜻을 가지고 있다. 함수나 메서드의 기능을 변수에 담아놓고 어디서 호출하더라도 그 기능을 대신 실행시켜 준다. 처음 배울때 어려운 개념중에 하나고, 완벽하게 쓰려면 한참은 더 공부해야 할 것 같다. 예시 - 우리는 성인 영화를 보여주는 스트리밍 사이트를 만들었습니다. - 시청자의 나이를 받아서 성인이면 영화를 보여주고, 아니면 재생을 시키면 안됩니다. public static void ShowAudltMovie(int age) { if(age >= 20) { Console.WriteLine("영화 재생"); } else { Console.WriteLine("영화 재생 불가"); } } 간단하게 성인인지를 판별하여 영화를 보여주는 코드..
배열과 리스트 배열 val myArray1 = arrayOf(1,2,"메롱") var myArray2 = arrayOf(1,2,"메롱") myArray1[0] = 10 myArray2[0] = 10 println(myArray1[0]) println(myArray2[0]) 배열은 위와같이 초기화를 해줄 수 있고, 인덱스로 접근해서 값도 변경이 가능하다. 값을 변경할때 val,var인지 상관이 없는것은 주소값을 참조하기 때문이다. 다만, 새로 초기화를 하는 경우에 val로 선언한 배열은 에러를 뱉어낸다. 리스트 List & MutableList var myList1 = listOf(1,2,3) val myList2 = listOf(1,2,"메롱") myList1[0] = 10 myList2[0] = 10 ..
안드로이드 스튜디오 + 코틀린을 통해 안드로이드 어플 제작을 공부해보려고 한다. 궁금하기도 했고, 알아두면 안드로이드 OS가 돌아가는 방식에 대해 더 알 수 있다는 조언을 들었다. 현 회사에서 유니티로 모바일게임 제작을 하기 때문에, 알아두면 더 좋을 것 같았다. 시작해보자. 코틀린과 안드로이드 스튜디오 코틀린은 구글에서 채택한 안드로이드의 공식 언어이다. 기존에는 자바를 사용했지만 현재는 코틀린이 공식언어가 됐다. 코틀린이 공식 언어가 되어버린 이유.. 구글과 오라클의 뒷 얘기도 있던데 정확히는 보지 못했다. 아무튼 코틀린은 자바를 100% 호환한다고 한다. Download Android Studio & App Tools - Android Developers Download Android Studio ..
이번에 공부해본 디자인 패턴은 '데코레이터 패턴' 이다. 말 그대로 장식하고 꾸며주는 패턴이다. 처음 읽을때는 이해가 잘 안돼서 여러번 반복해서 읽다가 코드를 보고 어느정도 이해를 하게 됐다. 책에 나온 예제는 '스타버스' 라고 하는 카페의 메뉴 결제 시스템에 대한 이야기가 나온다. 커피에도 종류가 있고, 또 각자의 입맛에 따라 시럽,두유,우유 등등.. 여러가지를 추가 할 수 있다. 먼저 이렇게 추가가 될 수 있는 것들이 정해져 있지 않은 , 즉 결제를 할 때마다 사람에 따라 모든 선택지(메뉴)가 달라질수도 있는 시스템을 만들때 어떻게 코드를 짤 것인가 라고 생각을 해보면 마냥 쉽지만은 않다. 똑같이 카페를 예제로 코드를 만들면 재미가 없으니 떡볶이 가게로 한번 예를 들어볼까 한다. JW의 떡볶이 가게 ..
옵저버 패턴은 예전에도 공부를 했었지만, 많이 쓰이고 있고 앞으로도 쓸 일이 많을 것 같아서 .. 책을보고 다시 공부를 해봤다. 옵저버 패턴 옵저버 패턴은 신문사의 구독을 생각하면 편하다. 신문사들은 날마다 신문을 찍어내면 자기들의 구독자들에게 매일같이 신문을 보내준다. 이와 같이 주제(Subject)클래스(신문사)가 있고, 미리 이 주제에 대한 변화나 알림을 받아야 하는 옵저버들을 등록해놓는다. 그리고 어떠한 변화나 알림이 생기면 주제 클래스에서 옵저버들에게 일괄적으로 알림을 보내주는 구조다. 내가 만든 예시 - 환율이 바뀔때마다 알려주는 시스템 옵저버 패턴을 클래스로 구현해놓고 함수를 오버라이드해서 쓰게끔 구현해놓은 코드도 봤는데, 일반적으로는 인터페이스를 이용해서 많이 쓴다고 한다. 그래서 은행에서..