본문 바로가기

전체 글

(63)
maven 은 도대체 무엇인가 일단 저는 지금 테스트 자동화에 관심이 갑자기 생겨서 appium이라는 걸 해보려고하는데 maven 프로젝트를 만들라고 하더라구요. 그래서 도대체 maven 이 뭔가 알아보는 시간을 가지려고 합니다. Apache Maven은 자바용 프로젝트 관리도구로 오픈 소스 소프트웨어라고합니다. 설명을 하면 jar 파일은 공유하고 메일이나 카톡으로 주고받고하면 번거롭기 때문에 이러한 라이브러리를 편하게 공유하고자 나온것이 maven 입니다. 필요한 라이브러리를 특정 문서 (pom.xml)에 정의해 놓으면 네트워크를 통해서 라이브러리를 자동으로 다운받아줍니다. Maven의 라이프사이클 Maven build : 메이븐 빌드를 실행한다. Maven build.... :새로운 사용자 빌드를 만든다. Maven clean :..
일급컬렉션 일급 컬렉션은 비즈니스에 종속적인 자료구조를 하나 만든다고 생각하면 된다. 이런 코드를 Map map = new HashMap(); map.put("1", "A"); map.put("2", "B"); map.put("3", "C"); 한번 감싸는 것을 의미합니다. public class GameRanking { private Map ranks; public GameRanking(Map ranks) { this.ranks = ranks; } } 장점은 상태와 행위를 한곳에서 처리할 수 있다는 것이다. 예를 들어 Rank값을 validation 하는 코드가 필요하다면 아래처럼 행위와 상태에 대한 행동을 GameRanking이라는 클래스에서 한번에 처리할 수 있다. public class GameRanking..
Java의 배열 Java에서 배열 이번에 java로 코드를 짜다가 int[] position 이라는 값을 hashMap에다가 저장해두려는 의도로 간략히 아래와 같이 코드를 짰습니다. int[] position = new int[4]; hashMap record = new hashMap(); for(int i = 0; i
Enum에 대해서 상수를 정의할 때 final static String 과 같은 방식으로 상수를 정의한다. 그것을 개선하기 나온 것이 enum class다. Enum의 장점 1. IDE 지원 : 동완성, 오타검증, 텍스트 리팩토링 등등 2. 허용가능한 값을 제한할 수 있다. 3. 리팩토링시 변경범위가 최소화된다. C/C++의 경우는 Enum이 결국 int 값이지만, Java의 경우는 Class이기 때문에 더 많은 장점이 있다. - 데이터들의 연관관계 표현 Enum을 사용하지 않으면 직접 메소드에서 각 값을 매칭해서 리턴해야 했다. 예를 들면 ("Y","true","1"), ("N","false","0") Enum에서는 표현할 수 있다. enum Enum{ Y("1", "true"), N("0", "false"); priv..
Kotlin에서 Unit 과 Nothing val nullableValue: String? = null val value: Int = nullableValue?.toInt() ?: return Unit 타입 : 코틀린의 void 코틀린이 void와 다른점 Unit은 싱글톤 인스턴스이다. 코틀린에서 Unit은 키워드 타입이며 동시에 객체이기도 하다. val unit: Unit = Unit Unit은 객체기도 하며, Any의 자식이다. Generic type으로 Unit을 지정하면 return을 명시적으로 넣지 않아도 된다. 만약 Void type이라도 return은 반드시 넣어야 하나 코틀린의 Unit은 return 없이 사용 가능 자바에서 void는 존재하지 않음을 뜻하지만 코틀린에서 Unit은 아무것도 반환하지 않는 타입을 의미한다. 따라서 자..
코틀린에서 Sequence와 SAM 코틀린에서 Sequence란? 사용법 val list = listOf("one","two","three") val sequenceFromList = list.asSequence() val sequence = sequenceOf("four", "three", "two", "one")Collections 확장 함수의 경우 각 확장 함수를 호출할 때마다 새로운 Collection이 생성되어 전환된다. val list = listOf(1, 2, 3) // [1, -2, 3] 생성 val maxOddSquare = list .map{ it * it } // [1, 4, 9] 생성 .filter { it % 2 == 1 } // [1, 9] 생성 .max()총 3개의 intermediate collection이 생..
데이터베이스(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..