분류 전체보기 (65) 썸네일형 리스트형 데이터베이스(DB) 종류 오늘은 DB의 종류에 대해서 포스팅해보겠습니다. 사실 안드로이드 개발자이기 때문에 SQLite 만 사용하긴 하지만 (사실 몇번 안사용해봄) 예전에 한창 취업 준비를 할 때 취업 면접 문제로 데이터 베이스의 종류에 대해서 얘기하고 어떤 프로젝트엔 무엇을 사용하고 이런 것에 대한 질문이 있었다고 들었어요. 사실 그때는 준비를 안했는데 그냥 살면서 궁금하더라고요. 언제 뭐를 쓰는걸까? 싶어서요. 개발자 사이에서 대충 알아는 들어야겠다 싶어서 준비한 컨텐츠 입니다. 데이터베이스의 종류는 크게 두가지로 나누어 집니다. 관계형 데이터베이스 (RDBS), NoSQL(Not Only SQL) (계층형, 네트워크형 등등 여러가지가 있지만 대표적인 것은 위에 두가지!) 관계형 데이터베이스 대학 시절 정처기 및 쪽지 시험 .. Flutter는 무엇인가? 한마디로 말하자면 Flutter는 Cross-Platform Framework입니다. Google에서 만든 것으로, 하나의 코드 Base로 Android/ ios/ Desktop App 까지 개발할 수 있습니다. 플러터뿐만 아니라 기존 크로스 플랙폼 프레임워크를 향한 도전들이 있습니다. 간단하게 말해서는 바로 브릿지를 사용하는 방식인데요. 초기 크로스플랫폼 모델인 PhoneGap, Apache Cordova, Ionic 등은 JavaScript 와 WebView 기반으로 만들어져 네이티브와 소통하기 위해 브릿지를 사용했습니다. 마찬가지로 엄청난 인기를 누리고 있는 리액티브 패턴을 이용한 ReactJS 도 네이티브 영역의 OEM 위젯과 소통하기 위해 결국 브릿지를 이용하고 있죠. 그래서 구글에서 나온게 F.. 인프라란? 제가 지금은 안드로이드 개발을 하고 있지만, 2년 전에 인턴 생활은 네트워크 엔지니어로 했습니다. 경험해보면서 이런저런 것을 겪고 지금은 안드로이드 개발을 하고 있지만 그 당시에 사둔 서적을 공부할 겸 오늘은 인프라에 대해서 포스팅하도록 하겠습니다. 시스템 = 애플리케이션 + 인프라 애플리케이션은 요즘 스마트폰때문에 다들 익숙하시죠? 특정 업무에 맞게 개발된 소프트웨어를 애플리케이션이라고 칭합니다. 그렇다면 인프라는 무엇일까요? 일단은 Infrastructure의 약어입니다. 다음 어학사전에 검색해보면 아래와 같은 결과가 나옵니다. infrastructure 1. 인프라 2.시설 3. 기반 4. 사회간접자본 알듯 모를 듯 모르겠네요 ㅎㅎ.. 여기서 3번째 의미로 봐주시면 될 것 같아요. 하부 조직의 기반.. Nothing 타입 Nothing 타입은 실행 흐름이 도달할 수 없는 구역을 나타내기 위한 특수 타입이다. fun throwing(): Nothing = throw Exception() fun main(){ val i:Int = throwing() } fun validate(num: Int) { val result: Int = if (num >= 0) num else throw Exception("num이 음수입니다.") } if 블록이 Int 타입, else 블록이 Nothing 타입이면, if-else는 Int 타입을 따라간다. if 블록이 Int 타입, else 블록이 Unit 타입이므로 서로 호환되지않아 if-else 표현식으로 사용할 수 없다. 따라서 Nothing 타입은 throw를 표현식으로 쓸 수 있게 하기 .. Reference 와 Garbage Collection Reference Object에서 알아보기 위해서 가비지에 대해서 빠르게 짚고 넘어가겠습니다. 가비지 컬렉터 힙 내의 객체중에 가비지를 찾아내 메모리 힙의 메모리 회수를 수행한다. JDK 1.2 부터는 java.lang.ref 패키지를 추가해 사용자 코드와 GC가 상호작용할 수 있게 하고 있다. 가비지 컬렉터 작동원리를 깊게 알고 싶다면 아래 사이트를 보는게 도움이 될 것 같습니다. 더보기 https://itmining.tistory.com/24 java.lang.ref 패키지 안 객체 참조 방식 Strong Reference 일반적으로 new를 이용해 생성된 객체로 GC에 무조건 제외된다. Soft Reference GC가 메모리가 부족하다고 판단할 때 수거하는 객체, 자주 사용할 수록 수거될 확률이 .. SSL 이란? SSL ( Secure Socket Layer) SSL은 또한 웹 서버 인증, 서버 인증이라고 불리는데, 클라이언트와 서버 간의 통신을 제 3자가 보증해주는 전자화된 문서다. 클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 이 인증서 정보를 전달한다. 클라이언트는 이 인증서 정보가 신뢰할 수 있는 것인지를 검증한 후에 다음 절차를 수행하게 된다. 이는 해커가 개인 정보 및 금융 정보를 포함한 전송되는 모든 정보를 열람하거나 훔치는 것을 방지한다. Netscape사에서 웹서버와 웹브라우저간의 보안을 위해 만들어졌으며, 공개키/개인키 대칭키 기반으로 사용한다. https로 통신하는 웹사이트를 이용하다보면 인증서를 확인할 수 있다. 이 인증서에는 인증서의 해당 사이트의 공개키와 사이트의 정보들이 있다... IPC 를 위한 Serializable, Parcelable, Parcel, 그리고 Bundle 까지 IPC 프로세스 간 통신 ( Internal - Process - Communication, IPC) 프로세스 사이에서 데이터를 서로 주고 받는 행위, 경로, 방법을 의미한다. 대표적인 IPC 1) 메시지 큐(Message Queue) 프로세서 간 주고 받는 메시지를 커널에 복사하고 읽어가는 방식이다. IPC 내의 메시지를 하나의 구조체 형태로 통째로 주고 받을 수 있어서 구현하기에 편리하다. 여러 가지 이벤트를 하나로 관리 사용하기에 편리한 구조다. 2) 공유 메모리(Shared Memory) 프로세스간에 공유 메모리를 지정하여, 이 영역에 복사하고 읽어가는 방식이다. 3) UDS(Unix Domain Socket) 기존 소켓 API와 유사하게 사용할 수 있다. 또한 여러 가지 이벤트를 하나로 사용하기.. 멤버 함수의 중위 표기법 (Infix Notation) 함수를 마치 연산자 처럼 호출하는 방법으로 멤버함수의 중위 표기법이 있다. 함수 선언문 앞에 infix를 붙이면 된다. class Point(var x: Int = 0, var y: Int = 0) { infix fun move(base: Point): Point { return Point(x - base.x, y - base.y) } } fun main(args: Array): Unit { val point = Point(2, 7) move Point(1, 1) println(point.x) println(point.y) } 결과 값으로는 1 6 이 나온다. 이전 1 ··· 5 6 7 8 9 다음