본문 바로가기

전체 글

(113)
코틀린 스터디 킥오프 코틀린의 주요 특성 JetBrains의 R&D 센터가 위치한 상트페테르부르크 근처의 코틀린(Ко́тлин) 섬에서… 블라블라 JVM 기반 언어로, 자바와 100% 상호운용성을 제공한다. 즉, 자바가 사용되는 모든 곳에서 이용 가능하다. 자바에 비하면 훨씬 간결하고 생산성 높고 안전하다 정적 타입 지정 언어 성능, 신뢰성, 유지보수, IDE 기능 활용 OOP와 FP의 특성을 지닌다. FP의 특성? First-class function : Function을 일반 값처럼 다룰 수 있다. 변수에 할당할 수 있고, 전달도 가능하다. 함수에서 새로운 함수를 생성하여 반환할 수도 있다. Immutability : 기본적으로 불변객체이다 No side-effect 코틀린이 지향하는 바는 ? 실용적이어야 한다. 간결해야..
체스키 크롬로프. 체코의 고즈넉한 중세도시. 체스키 크롬로프. 프라하에서 버스로 3시간 거리에 있는 이 도시는 체코를 여행하는 사람들이 프라하 다음으로 가장 많이 찾는 곳이 아닐까 싶다. 도시에 들어서자 마자 느껴지는 옛 것의 느낌. 중세 시대같은 고즈넉함을 품고 있는 아름다운 도시이다. 그래서 그런지 하루 정도면 도보로 구석 구석을 다닐 수 있는 작은 도시이지만 굉장히 많은 사람들로 붐빈다. 버스에 내려서 시내로 걸어가는 길목부터 차분하고 따뜻한 분위기를 자아낸다. 처음 눈에 들어온 집. 체스키에서 내가 묵은 숙소. Hostel Postel. 주인으로 보이는 여성분이 굉장히 쾌활하고 친절했다. 거리에는 아기자기한 가게들이 줄 지어 있고, 다른 한편에는 나이 든 악사가 잔잔하게 기타 연주를 하고 있었다. 높은 종탑에 올라서면 마을 전체를 둘러 볼 ..
프라하. Krcma 식당. 프라하 성 가는길. 너무 좋은 프라하 식당. Krcma.너무 배가 고팠다. 음식점을 고르는 경험적인 방법으로는 구글맵을 이용하는 방법이 전반적으로 괜찮았다. 편리함과 신뢰도 측면에서. 그렇게 찾은 음식점은 Krcma. 그리고 같이 식사할 사람을 구했다. 지하에 있는 이 식당으로 들어서면 중세 시대에 온 듯한 느낌을 받는다. 게임속에서 보던 던전과 같은 구조와, 두루마리 양지같은 메뉴판도 있다. 그리고 더욱 마음에 들었던 점은 흡연구역과 비흡연 구역이 분리되어 있다는 점이었다. 프라하에 왔으니 당연히 물보다 필스너 우르켈을 먼저 찾게 된다. 스테이크 2개와 으깬 감자를 시켰다. 굉장히 저렴한데 맛도 좋다. 맥주도 시키고, 프라하 와인도 시켜보고 엄청나게 시켰다. 가볍게 점심을 먹으려 했는데, 와인과 맥주를 엄청나게 먹었다. ..
나홀로 프라하 구석 구석. 카를교. 존 레논벽. 올드 타운 광장 프라하 도착프라하에 처음 도착한 밤, 비가 엄청나게 쏟아지고 있었다. 심지어 프라하에 머무르는 5일 동안의 기상예보는 모두 비 또는 흐림이었다. 절망적이었으나 그래도 어쩌겠나 하고 열심히 숙소를 찾아갔다. 프라하 공항에서 시내로 가는 길은 인터넷에 찾아보면 굉장히 쉽게 나오며, 방법 역시 매우 쉬웠다. 그렇게 밤 늦게 비를 맞고 숙소에 도착해서 정비를 하고 잠이 들었다. 첫째 날은 전부 훑기아침에 눈을 떴는데 비는 오지 않았지만 굉장히 흐렸다. 내 숙소는 한인 민박이었는데 남자 도미토리에 나 밖에 없어서 굉장히 편하게 준비할 수 있었다. 서둘러 조식을 먹고 본격적으로 여행을 시작했다. 사실 첫째 날은 팁 투어 프로그램으로 모든 일정을 잡아 놓았었다. 처음에 프라하에 대해 전반적인 설명을 듣고 둘째날 부터..
개발자도 비즈니스 참여를 (번역) 루비에서 상속을 피하는 방법 을 읽고. (링크 유실) 요즘 '객체 지향 이란 무엇일까?' 라는 원론적인 질문에 꽂혀 있어서 그런지, 굉장히 흥미를 일으키는 제목의 글이었습니다. 저는 2년간 자바만 해서 루비를 전혀 모릅니다. 그래서 읽으면서 어림짐작으로 루비 소스를 자바 소스로 뇌컴파일 해가며 읽었는데 역시나 재밌었습니다. 상속이 아닌 위임으로 이 글은 제목 그대로 '상속을 피하기 위한'에 대한 솔루션을 제공하고 있습니다. 상속(확장)이 아닌 위임을 통해서 말이지요. 템플릿 메서드 패턴이냐 스트래티지 패턴이냐로 구분지어 볼 수도 있을 것 같아요. 물론 절대적으로 상속보다는 위임이 좋다는 건 아닙니다. 상황에 따라 충분히 선택의 여지가 있습니다. 이 글의 예에서는 스트래티지 패턴이 더 적합하다고 ..
4달치 회고 여행 및 이직 준비를 하느라 회고를 전혀 못했다.지금에서야 하는 것은 의미가 없지만 서도 더 늦기전에 다시 한번 짧게 나마 읊어 보기로 한다. 4월4월 25일부터 홀로 유럽 여행을 떠났다. 유럽여행을 다녀온 뒤 부터 바로 이직 준비를 하느라 아직도 여행기를 쓰지 못하고 있다. 곧 이직 준비가 마무리되는데, 8월부터 쓸 예정이다. ( 여행에서 특별히 깨달았거나 자아를 찾았다거나 그런건 없다. ) 5월5월 6일에 여행에서 돌아왔다. 돌아오자마자 바로 이직 준비를 시작했다. 첫 이직 준비라 모든 것이 두려웠다. 6월여전히 이직 준비를 하느라 공부와 면접에 시간을 많이 썼다. 좋았던 것은 사전 과제나 면접에서 좋은 말을 많이 들었다. " 코드가 매우 정갈하고. " " 추상화하여 사용한 점도 좋았습니다. " " ..
Java Wrapper Class 의 캐싱 Wrapper Class Java에는 Primitive Type을 Reference Type으로 사용하기 위해서 만든 Wrapper Class가 있습니다.Primitive TypeWrapper ClassbyteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBooleanvoidVoid Primitive Type 값을 Wrapper Class의 인스턴스로 변환하여 쓰는 과정을 Boxing, 그 반대를 Unboxing 이라고 하는데 Java 1.5 부터는 이를 자동으로 해주는 AutoBoxing/AutoUnBoxing을 지원해 줍니다. Boxing/Unboxing Integer n1 = 1; Integer n1 = new I..
Why Spring - 왜 스프링을 사용하지? Why Spring ? 스프링을 사용하기만 했지, 왜 스프링을 사용해서 개발하는 지에 대한 고찰을 해본적이 없다. 그래서 또 의식의 흐름대로 글을 써내려가 봅니다. 스프링은 프레임워크(Framework)다. 프레임워크 ! 즉, 소프트웨어의 설계와 구현에 있어서 전체적인 뼈대와 틀을 제공한다는 것이다. 조금 더 높은 추상화 레벨에서 보면 개발자가 개발하기 편하게 해주는 녀석이다.그렇다면 스프링은 어떤 방식으로, 어떤 컨셉으로 우리를 도와주느냐 ? 이 말을 설명하기에 앞서 그렇다면 스프링 혹은 다른 프레임워크 없이 오직 JDK로만 소프트웨어를 개발한다고 생각해보자. 개발 과정에서 끊임없이 인스턴스는 생성과 소멸을 반복할테고, 클래스들 사이에는 복잡한 의존관계를 가지기도 할 것이며, 반복되는 로직이 수없이 호..