Hello, Service Discovery
다른 수많은 소프트웨어 기술과 같이 Service Discovery도 이전부터 존재하던 개념이다. 그러나 최근 클라우드 및 마이크로서비스 아키텍처의 부흥과 함께 종종 언급되며 우리들의 눈에 띄는 것처럼 보인다. 한번 이번 기회에 Service Discovery에 대해 간단히 알아보자.
MoreShare Dev Tech & Thinking
다른 수많은 소프트웨어 기술과 같이 Service Discovery도 이전부터 존재하던 개념이다. 그러나 최근 클라우드 및 마이크로서비스 아키텍처의 부흥과 함께 종종 언급되며 우리들의 눈에 띄는 것처럼 보인다. 한번 이번 기회에 Service Discovery에 대해 간단히 알아보자.
More
Java8에는 JSR-310이라는 표존명세로 새로운 날짜와 시간관련 API가 존재한다. 기존의 Date, Calendar 등을 대체하기 위해서 지금까지 많이 사용되던 Java 날짜 관련 라이브러리를 참고하여 보다 효율적이고 사용하기 편한 API를 내놓았다.
More
Java는 8버전으로 업그레이드하면서 람다, 스트림 등 다양한 기능들이 추가되고 개선되었는데 새로운 날짜관련 API도 대폭 추가되었다. 이는 기존에 사용하던 Java가 내장한 날짜관련 API에 많은 문제가 있었기 때문이다. 이 포스트(1/2)에서는 이전까지 사용하던 날짜관련 API에 어떤 문제가 있었는지 간단히 살펴보고, 2번째(2/2)포스트에서 Java8에서 새롭게 추가된 날짜관련 API를 살펴볼 것이다.
More
입문교육이 끝나고 본격적으로 신입기술교육에 돌입했다. 이번 1주차 동안에는 기술교육 기간 동안 개발한 프로젝트에 대해서 기획하는 것이었다. 약 5일 동안 기획하고 느낀점들을 간단히 정리하는 회고의 시간을 갖고자 한다.
More
언제부터인가 어떤 한 사이트에 로그인하기 위해 반드시 그 사이트에 로그인을 할 필요가 없어졌다. ‘페이스북으로 로그인하기’, ‘트위터로 로그인하기’ 등 다른 사이트의 계정을 통해서 로그인이 가능한 경우를 많이 보았을 것이다. 이러한 기능 덕분에 우리는 일일이 회원가입을 하는 번거로움을 없앨 수 있고, 하나의 계정으로 다양한 사이트에서 활동할 수 있다. 이런 ~으로 로그인하기 같은 기능들은 OAuth라는 표준을 따르고 있다. OAuth를 통해 서로 다른 사이트에서 하나의 계정으로 신뢰성있는 로그인을 할 수 있다.
More
#java.util.HashMap HashMap은 가장 많이 사용하는 클래스일 것이다. 키와 값 쌍으로 데이터를 관리하는 Map을 구현한 HashMap은 이름 그대로 Map을 구현하기 위해 해시를 사용한다. Java8에서는 HashMap이 어떻게 구현되어있을까? 해시함수는 어떻게 되어있을까? 본 포스팅에서는 HashMap의 해시함수와 해시충돌을 어떻게 해결하고 있는지 살펴볼 것이다.
More
#SOLID 객체지향 프로그래밍은 유지보수와 확장에 유용하고, 유연하며, 재사용성이 좋은 시스템을 만들 수 있게 해준다. SOLID는 이러한 객체지향의 5가지 핵심 원칙이다. SOLID란 이름은 5가지 핵심 원칙의 첫 글자를 따서 지어졌다. SOLID원칙을 지킨다면 효율적으로 객체지향 프로그래밍을 구현할 수 있으며, 기존의 코드는 리팩토링하여 개선할 수 있다.
More
#Java valueOf메서드들 Java의 몇몇 클래스는 valueOf라는 메서드를 가지고 있다. 대표적으로 원시 데이터 타입을 클래스로 나타낸 Wrapper클래스들이 있다. Integer, Character, Double, String 등은 모두 valueOf메서드를 가지고 있다. valueOf메서드의 기능을 보면 이 것들은 인자로 전달한 값을 해당 valueOf메서드를 호출한 클래스의 객체로 반환한다. 걷보기에는 new키워드를 사용해서 객체를 생성하는 것과 별반 다를게 없어 보인다. 하지만, valueOf메서드를 통한 객체과 new키워드를 통한 객체 생성은 분명 차이가 있다. 그리고 가능하면 valueOf메서드 사용을 권장한다. 그 이유는 무엇일까?
More
#Java Packages for Data Structure LinkedList, HashMap 등 Java는 수 많은 자료구조를 구현한 클래스가 존재한다. 각 자료구조가 특징을 가지고 있듯이 각 컬랙션 클래스는 모두 수행시간이 다르다. 이번에는 자주 사용하는(저자 기준) 몇몇 컬래션 클래스들의 수행시간을 시간복잡도을 표현하는 방법 중 하나인 빅 O 표기법으로 정리한다. 정리를 위해 Information Technology Gems이라는 블로그를 참고하였다. 아래의 내용은 그 블로그의 내용을 요약 정리한 것이다. 그런데 몇 개 납득이 안가는 부분이 있는데 이부분은 좀 더 생각해봐야겠다.
More
#다양한 Map 클래스 Java는 다양한 Map 관련 클래스를 제공한다. 여기에서는 Map 관련 클래스 중 몇가지를 간단히 살펴본다.
More
#테스트 소프트웨어 개발에서 테스트에 대한 생각을 정리해보았다. 경험한 테스트에 얽힌 이야기와 테스트 중요성을 강조하고 테스트하는 방법들을 간단히 소개한다.
More
#Summary Java는 클래스에 대한 정보를 가지고 있는 클래스가 존재하며, 이러한 클래스들을 리플렉션(reflection) 클래스라고 합니다. 이번 포스팅에서는 이 리플렉션 클래스에 대해서 간단히 살펴보고 어떤 클래스 객체던지 상관없이 가지고 있는 모든 멤버필드를 출력해주는 간단한 예제를 구현해봅니다. (Java8 기준)
More
#Summary 2015년 8월 25일로 마무리된 NHN Ent. CodeCamp@PlayMuseum 1st 후기.
More
#Summary Java는 클래스에 대한 정보를 가지고 있는 클래스가 존재하며, 이러한 클래스들을 리플렉션(reflection) 클래스라고 합니다. 이번 포스팅에서는 이 리플렉션 클래스에 대해서 간단히 살펴보고 어떤 클래스 객체던지 상관없이 가지고 있는 모든 멤버필드를 출력해주는 간단한 예제를 구현해봅니다. (Java8 기준)
More
#Summary NHN CodeCamp@PlayMuseum에 참가하여 프로젝트를 진행한지 벌써 두달이 되어갑니다. 앞으로 남은 최종발표를 앞두고 잠시 지금까지의 일을 돌아보고자 합니다.(후기는 따로 작성할 예정)
More
#Summary
#XPath on Java XPath는 이미 비교적 오래전에 W3C표준으로 정의되었으며, Java 역시 이 XPath 표준을 구현하고 있습니다. 이번 포스트에서는 Java에서 XPath를 사용하는 법에 대해서 다루고자 합니다.
More
#XPath XPath는 XML를 보다 편하게 다룰 수 있게 해줍니다. XML DOM에서 원하는 요소에 쉽게 접근할 수 있게 해주죠. XPath는 이름 그대로 XML을 파일경로 입력하듯이 사용할 수 있습니다. 기존에 DOM을 그대로 사용하면 여간 불편한게 아니었는데 XPath를 사용함으로써 불편함이 많이 해소되었습니다. 아래의 내용은 W3Schools에서 발최한 XPath에 대한 설명입니다.
More
#들어가기에 앞서… IT분야를 공부하는 사람으로서 객체지향프로그래밍(Object-Oriented Programming, OOP)을 못들어본 사람은 없을 것입니다. 저 역시 처음 C++과 Java와 같은 객체지향 프로그래밍 언어를 공부하기 시작하면서 객체지향을 접하게 되었습니다. 책뿐만이 아니라 인터넷의 다양한 글에서도 객체지향에 대한 이야기를 들을 수 있습니다. 처음 객체지향을 접할 무렵 굳이 웹 객체지향이라는 방법을 쓰는지 알 수 없었습니다. 지금은 조금 시간이 지나 그때보다 조금은 더 객체지향에 대해 감을 잡은 거 같은데 아직 부족하다고 판단되어 정리를 할 필요를 느끼게 되었습니다.
More
#웹앱 배포
웹애플리케이션을 개발하여 배포하고자할 때 프로젝트를 war파일로 패키징하여 톰캣의 배포 폴더로 옮기는 식으로 하곤 합니다. 하지만 이런 방식을 반복하다보면 귀찮음을 느끼게 됩니다. 거기다 개발서버와 배포서버로 따로따로 구분되어 있다면 이 귀찮은 과정은 배가 됩니다. 톱캣 관리 페이지(서버주소/manager)를 통해 좀더 편리하게 배포할 수도 있지만 역시 이도 귀찮습니다.
Java에게는 Maven이라는 훌륭한 빌드툴이 존재합니다. Maven에게 이런 귀찮은 작업을 대신하도록 할 수 있습니다.