전체 글
-
kotlin (코틀린) 시작해보기 (3)카테고리 없음 2023. 4. 21. 15:27
이번 시간에는 코틀린의 클래스에 대해 살펴보자. 가장 많이 사용할 것 같은 문법들만 소개하겠다. 나머지는 실제로 레퍼런스를 보면 되겠다. 레퍼런스에 있는 것을 다 하면 좋겠지만 그럴 여력이 없다. 기본적인 것과 자주 사용하는 것 혹은 조금 특이한 것들만 소개할 예정이다. 이전 중간에도 return, break,continue, 라벨 등은 건너 띄었다. 클래스 class Product { } 기본적인 형태는 위와 같다. 자바와 비슷한 형태이지만 class 앞에 접근제한자가 없다. 대부분의 클래스는 public 이므로 기본값은 public 접근제한자 이다. class Product 만약 클래스 본체가 없는 경우에는 컬리브레이스를 생략해도 된다. 생성자 코틀린의 생성자는 자바와 형태가 조금다르다. class ..
-
Mockito 이용해서 Test를 해보자카테고리 없음 2023. 4. 21. 15:27
필자는 예전에는 SI 시절에는 테스트 케이스를 전혀 작성하지 못했다. 물론 핑계일 수도 있지만 테스트까지 만들 시간적 여유가 없었던건지 아니면 주변 환경 때문인지는 모르겠지만 아무튼 테스트를 전혀 작성하지 못했다. 하지만 지금 회사에서는 되도록이면 테스트 케이스를 만들려고 노력중이다. 물론 빌드 배포 할 때 조금 시간이 걸리긴 하지만 그만큼 필요한 시간이라고도 생각한다. 근데 시간에 점차 지나고 유지보수를 하면서 테스트 케이스 작성도 소홀해져가는건 사실이다. 그만큼 꾸준한 노력이 필요하다. TDD 같은 경우에는 테스트부터 작성한다고 하는데 아직 그정도 까지는 못하겠다. 개발하는 사람 마음이겠지만 필자경우에는 먼저 클래스가 완성되면 그때 테스트를 작성한다. 기능하나 만들고 테스트 작성하고 그런 사람도 있는..
-
kotlin (코틀린) 시작해보기 (2)카테고리 없음 2023. 4. 21. 15:27
오늘은 코틀린의 기초에 대해 살펴보도록 하자! 필자가 생각하기에 자주 쓰이는 문법들을 살펴보겠다. 이 외에 문법들은 코틀린 공식문서를 살펴보는게 좋을 듯 싶다. 기본적인 number들은 자바와 bit 길이가 같다. 그러므로 생략한다. 명시적 변환 자바와 달리 코틀린은 자동 형변환을 지원하지 않는 듯하다. 예를들어 보자. int i = 10; long l = i; System.out.println(l); 위의 코드는 자바의 자동 형변환 코드이다. 작은 범위의 타입은 큰 범위 타입으로 자동 형 변환이 가능하다. 이건 자바 기초이므로 다 알거라고 생각한다. 하지만 코틀린의 경우 다르다. val i :Int = 10 val l : Long = i //컴파일 에러 println(l) 위는 코드는 아무 이상 없어 ..
-
kotlin (코틀린) 시작해보기 (1)카테고리 없음 2023. 4. 21. 15:27
필자가 코틀린은 처음 알게 된 계기는 intellij 를 사용하면서 알게 되었다. intellij를 사용한지는 얼마 되지 않았다. (작년 가을쯤?) 그러면서 코틀린이라는 언어를 알게 되었는데 실제 코틀린이 발표된지는 꽤 된 언어이다. 하지만 우리나라에서는 그렇게 인지도가 높은 편은 아니다. 코틀린을 간단하게 소개하자면 intellij를 만든 회사 Jetbrains이 만든 언어로 JVM 위에 올라간다. Jetbrains가 만들어서 intellij에 기능이 빵빵하게 지원해준다. 예를들어 intellij에 자바코드를 코틀린 파일에 복붙하면 알아서 코틀린 문법으로 변환도 해준다. 그리고 또한 java와 호환이 아주 좋다. 필자 생각에는 스칼라보다 더 좋은 듯하다. 물론 스칼라도 좋은 언어이다. 그런데 자바 개발..
-
zeppelin (제플린) 설치 및 튜토리얼카테고리 없음 2023. 4. 21. 15:27
이미지가 안나오는 관계로 http://blog.wonwoo.ml/wordPress/1401 여기로 오면 보입니다. 워드프레스 빨랑 버려야지. 요즘들어 엄청 느려졌네. 개인적으로 제플린을 사용해 볼까 해서 일단 설치를 해봤다. 물론 정말로 사용할지(?) 하지 않을지(?)는 모르겠으나 설사 지금은 사용 하지 않는다 하더라도 나중에 혹시 사용하게 될지도 모르니 일단 해보자. 요즘 우리나라 오픈소스들이 많이 등장했다. 특히 우리가 잘 알고 있는 아파치 재단에도 많은 프로젝트가 top level로 올라가 있다. 예를들어 apache mina, apache tajo ,apache hama 등이 있고 오늘 간단하게나마 알아볼 zeppelin도 그 중 한개의 프로젝트이다. 제플린은 top level 프로젝트로 올라간지..
-
자바의 마커 인터페이스카테고리 없음 2023. 4. 21. 15:27
오랜만에 자바 포스팅을 해보자. 자바의 마커 인터페이스의 대해 살펴보려고 한다. 책도 조금 참고 하였다. 자바의 마커 인터페이스란 일반적인 인터페이스와 동일하지만 사실상 아무 메서드도 선언하지 않은 그런 인터페이스를 말한다. 예를들어 다음과 같다. public interface SomeObject { } 얼핏 보기엔 조금 난해한 코드이다. 인터페이스만 있고 메서드가 없으니 어디에다 쓸지도 난해하다. 자바로 코딩을 하다보면 저런 인터페이스가 종종 있긴하다. 자바의 대표적인 마커 인터페이스로는 우리가 흔히 아는 Serializable, Cloneable 와 흔히 알지는 못하지만 Spring에서 event리스너를 사용한다면 종종 보이는 EventListener 라는 인터페이스도 있다. 참고로 Spring의 A..
-
jinq카테고리 없음 2023. 4. 21. 15:27
오늘은 jinq라는 아이에 대해 살펴보자. jinq는 c#의 linq의 영감을 얻어 linq 스타일을 그대로 따라 만들었다. jinq는 그냥 평범한 자바 코드로 DB의 데이터를 조회 할 수 있다. QueryDsl과 비슷한 역할을 하는 아이이다. QueryDsl 보다 좋은점은 Q 클래스를 같은 클래스를 만들지 않아도 된다는게 가장 좋은 장점이라고 생각한다. 또한 jpa도 지원하며 구현체로는 Hibernate 와 EclipseLink를 지원하고 scala와 jooq라는 프레임워크도 같이 사용할 수 있다고 한다. jooq도 잠깐 봤었는데 그냥 그렇다. 하지만 java8 의 Stream api와 비슷하기 때문에 java8을 써야 한다. 람다를 써야 더 깔끔하고 보기 좋기 때문에 java8을 써서 하자. 오늘은 ..
-
[spring-boot] 블로그를 만들자. (9) CI 와 배포카테고리 없음 2023. 4. 21. 15:27
아마도 오늘이 블로그 만들기 마지막 시간 일듯 싶다. 아주 잘 만든건 아니지만 spring boot를 처음 접하는 사람에게 조금이라도 도움이 되었으면 한다. 조금 더 보수를 한 다음에 블로그를 옮길 생각이다. 그게 언제 될지는 모르겠지만.. 오늘은 우리가 만든 Spring boot를 실제 빌드 및 테스트 배포를 할 수 있는 ci를 이용하고 무료 paas인 heroku를 이용해서 클라우드에 올려보자. 현재 필자가 개인적으로 사용하고 있는 semaphoreci이라는 툴인데 ui도 나쁘지 않지만 사람들이 잘 모르는거 같다. 나쁘지 않으니 한번 써보도록 하자. 물론 많이 사용하고 있는 travis를 이용해도 된다. https://semaphoreci.com/ 와 https://www.heroku.com 에가서 ..