본문 바로가기

분류 전체보기176

[ES6+] Map vs Object 이 글에서는 ES6에서 새롭게 도입된 Map에 대해서 알아보고, 이것이 Object Literal과는 무슨 차이가 있는지 살펴보도록 하겠습니다. (1) Map? Map은 대부분 개발자에게 익숙한 단어일 것입니다. ECMA Script 2015(ES6)에서 도입된 Map 역시 우리가 익히 알고 있는, Key와 Value의 쌍으로 이루어진 Collection입니다. 기본 구문은 아래와 같습니다. var map = new Map([Iterable]); map.set("keyString", "valueString"); map.get("keyString"); //result : valueString map.set({}, "객체를 키로 하는 경우의 value") map.get({}) //result : 객체를 키로.. 2020. 10. 21.
2019년에 사라질지도 모르는 4가지 기술 2019년에 사라질지도 모르는 4가지 기술 많은 사람이 요즘 트렌드는 무엇인지, 어떤 기술이 뜨고 질 것인지에 을해 이야기합니다. 그리고 나에게 필요한 기술이 무엇인지 알고 싶어 합니다. 이는 형태가 조금 다를 뿐, IT 업계에 국한되는 이야기는 아닐 것입니다. 기술은 빠르게 변화하고 있고, 어떤 것은 새롭게 나타났다가 금방 사라지기도 하고, 새로운 것이 기존의 것을 대체하기도 합니다. 이 글에서는 올해 사라질 수도 있는, 어쩌면 이미 사라지고 있는 중일지도 모르는 네 가지 기술에 대해 다뤄보겠습니다. (1) Blockchain 블록체인은 그 자체는 좋은 아이디어로, 궁극적으로 분산된 데이터베이스를 의미합니다. 블록체인이 인기를 얻었던 이유는 확장 가능하고 가용성이 좋은 데이터베이스에 대한 요구사항이 높.. 2020. 10. 21.
Static 사용을 피해야 하는 이유 Java에는 static이라는 키워드가 존재하며, 이는 static으로 지시된 특정한 멤버가 해당 클래스의 인스턴스가 아니라 클래스 자체에 속해 있음을 나타냅니다. 즉, 클래스의 모든 인스턴스에서 공유되는 단 하나의 static member의 인스턴스가 생성되도록 명령하는 키워드입니다. 위 그림과 같이 모든 인스턴스들은 static 필드 혹은 메서드를 공유하게 됩니다. static에 대한 자세한 내용은 A Guide to the Static Keyword in Java를 참고하시고, 이 글에서는 어째서 많은 사람들이 static이 나쁘다고 말하는지 알아보도록 하겠습니다. 언뜻 보기에 static은 사용하기에도 편하고 효율적인 것처럼 보입니다. 예를 들어 어떤 클래스 내의 메서드를 매우 빈번하게 호출해야 .. 2020. 10. 20.
2019년 6월 4주차 - "리눅스 해킹, Vim이나 Neovim 에디터 여는 것만으로 가능해" 등 1. 국경 넘는 페이, 환전은 옛말 지난달 외국환거래법 시행령이 개정되면서 국내 핀테크 기업이 해외 결제 및 환전 등의 서비스를 제공하는 것이 가능해졌습니다. 이에 가장 먼저 발 빠르게 움직인 것은 네이버 페이로, 지난 17일 이후로 일본에서 QR코드 오프라인 결제가 가능합니다. 별도의 환전 수수료와 카드 수수료 없이, NPay나 라인 페이 로고가 있는 일본상점이라면 이용이 가능하다고 합니다. 네이버는 이미 2014년부터 자회사인 라인이 라인페이를 서비스하고 있었기 때문에, 라인페이 가맹점을 통해 빠르게 초기 시장 선점이 가능했던 것으로 분석됩니다. 네이버뿐만 아니라 카카오페이와 NHN페이코 역시 해외 첫 간편 결제 서비스를 제공할 시장으로 일본을 선택했습니다. 현재 NHN페이코는 인컴재팬(일본 1위 선.. 2020. 10. 20.
Lambda, 무엇이 단점일까? 무언가의 단점을 보완하여 새롭게 나타난 기술이라고 해서 기존의 모든 기능을 보완하고 대체할 수 있는 것은 아닙니다. 람다 역시 기존의 모든 코드를 대체하고자 등장한 것이 아니기 때문에, 람다를 쓰는 것보다 기존의 코드 방식을 사용하는 것이 더 나은 경우도 많습니다. 따라서 이 글에서는 람다의 단점에 대해 살펴보도록 하겠습니다. (1) 가독성 대부분 람다의 장점에서 빠지지 않는 것이 간결성과 가독성입니다. 그러나 아이러니하게도 단점에서 역시 가독성이 빠지지 않습니다. 람다를 알고 있는 사람이라면 가독성이 장점이 되겠지만, 람다에 대해 잘 모르는 사람에게는 가독성이 나쁜 코드가 되는 것입니다. 예를 들어 1부터 10까지 출력하는 아래와 같은 코드가 있습니다. for(int i=0; i System.out.p.. 2020. 10. 20.
2019년 6월 3주차 - "구글·페이스북 7월부터 부가세 낸다…소비자요금 인상 전망" 등 1. 구글·페이스북 7월부터 부가세 낸다…소비자요금 인상 전망 오는 7월부터 구글과 페이스북, 유튜브, 에어비앤비 등 해외 IT 기업에 부가가치세가 부과됩니다. 이에 따라 해외 사업자들이 부가가치세만큼의 비용을 고객에게 전가할 것으로 예상됩니다. 업계에 따르면 구글은 이미 유료 계정 보유자들에게 '대한민국 법규에 따라 7월 1일부터 사업자등록번호를 제공하지 않은 계정에 10%의 부가가치세가 부과된다'라고 통지했다고 합니다. 서비스를 이용하는 고객들에게 직접적으로 부과되는 금액은 없으나, 기업들이 비용을 전가함으로써 결국 부가가치세에 대한 부담은 고객이 지게 되는 것이 아닌가 염려됩니다. 그러나 이 부가가치세 법이 적용되었을 때 국내 기업들의 가격 경쟁력이 상대적으로 높아질 것으로 예상되는 점이나, 해외 .. 2020. 10. 20.
Lambda 무엇이 좋을까? 자바 8에서 도입된 람다 표현식은 등장한 지 꽤 오랜 시간이 지났음에도 여전히 낯설고, 많은 개발자들이 왜 사용해야 하는지 제대로 알지 못하는 기능입니다. 이 글에서는 람다의 장점이 무엇인지 알아보며, 왜 람다를 사용해야 하는지 살펴보겠습니다. (1) 더 쉽고 간략한 iteration 일반적으로 컬렉션을 조회하는 다음과 같은 코드가 있다고 가정해 보겠습니다. List numList = Arrays.asList(1,2,3,4,5,6,7,8,9); for(int n : numList){ System.out.println(n); } 컬렉션을 사용할 때 람다를 사용한다면 아래와 같이 아주 간단하게 표현이 가능합니다. numList.forEach(System.out::println); 간단하고 코드가 훨씬 짧아지.. 2020. 10. 20.
자바7 업데이트 - 숫자 리터럴 구분자 자바 7부터는 숫자 리터럴의 숫자 사이에 언더스코어(_)를 사용할 수 있습니다. 이 구분자를 사용하면 의미 있는 숫자끼리 그룹화하는 것이 가능하며, 이로 인해 코드의 가독성이 높아집니다. int noUnderScore = 200000000; int useUnderScore = 200_000_000; long noUS = 9223372036854775800L; long useUS = 9_223_372_036_854_775_800L; 정수형 int의 기본 데이터 범위는 ~2147483648 ~ 2147483647이고, long의 경우에는 이보다 훨씬 큰 -9223372036854775808 ~ 9223372036854775807입니다. 따라서 큰 자릿수의 숫자일 경우 한눈에 파악하기가 어렵기 때문에 언더스코.. 2020. 10. 20.
2019년 6월 2주차 - "네이버쇼핑, 연내 25만개 쇼핑몰 품는다...톱10 판매자 상품만 4억개" 1. 네이버 쇼핑, 연내 25만 개 쇼핑몰 품는다... 톱 10 판매자 상품만 4억 개 네이버 쇼핑에 입점한 쇼핑몰의 수가 이 달 기준 24만 8328개로, 연내 25만 개를 돌파할 전망이라고 합니다. 가격비교 서비스를 제공하는 업체 중 가장 큰 규모로, 지금까지 네이버가 해 온 마케팅 전략이 통한 결과가 아닌가 생각됩니다. 물론 네이버가 검색 포털이기 때문에 가격비교 서비스를 제공하기 훨씬 수월했다는 점도 무시할 수 없는 이점이었을 것입니다. 현재 이베이코리아, 11번가, 쿠팡 등 이커머스 공룡 기업들뿐만 아니라, 대형마트나 홈쇼핑, 편집숍 등의 유통업체나 개인 소형 쇼핑몰까지 입점함으로써, 앞으로 네이버 쇼핑이 이커머스 시장에 미칠 영향력은 더욱 커질 것으로 보입니다. 특히 11번가의 경우 가장 많은.. 2020. 10. 20.
[Refactoring] if문 Martin Fowler의 저서 Refactoring에는 다양한 "코드의 악취(Code Smell)"에 대해 설명되어 있습니다. Martin Fowler는 코드의 악취만 제거해도 썩 괜찮은 코드가 된다고 하고, 반대로 코드에서 악취가 느껴진다면 이는 시스템 내에 더 깊은 문제가 있음을 의미한다고 이야기합니다. 그러므로 리팩토링은 코드를 작성한 이후 반드시 수행해야 하는 절차라고 말합니다. 간혹 리팩토링을 수행하면 성능이 떨어진다고 주장하는 개발자들을 만날 수 있습니다. 리팩토링의 결과로 객체가 분리되거나 메서드 호출의 횟수가 증가하게 되며, 그 결과 실제로 메모리 사용량과 CPU 사용량이 모두 증가하기 때문입니다. 하지만 성능에 치명적인 영향을 주는, 예를 들어 파일 입출력이나 데이터베이스 작업과 같은 .. 2020. 10. 20.