개발을 하다보면 개발환경, 로컬환경, 운영환경 등 환경에 따라 환경변수를 달리줘야 하는 경우가 있다. 예를 들어, 최근 마이크로 아키텍처로 흐름이 전환되었기 때문에 Rest를 자주 활용하게 되는데 개발서버에서 사용하는 rest url과 운영서버에서 사용하는 rest url이 다를 것이기 때문에 이럴 경우 운영환경에 따라 url 경로를 자연스럽게 바꿔주면 될 것이다. 환경별 설정은 빌드툴(Maven 등)을 이용해서 할 수도 있고 사실상 상당히 많이 있으나 여기서는 Was의 파라미터를 이용한 매우 간단하게 설정할 수 있는 방법을 공유해보도록 한다. Was 설정(Configuration) 이클립스 기준으로 설명을 하며, 추후 운영환경이나 개발환경의 톰캣(tomcat) 등 was에서 deploy할때에 실행명령어..
Properties를 읽는 방법이야 무궁무진하겠지만, 스프링으로 프로퍼티를 읽을 때 자주 사용하는 방법으로 value annotation을 이용하기도 한다. 사실 필자는 properties를 xml로 설정하여 map에 담아 get형태로 읽는 것을 선호하지만 요즘 워낙 어노테이션이 대세니 코드가 올드해보이지 않기 위해 일정 부분은 어노테이션을 섞는다. 사용방법은 매우 간단하다. 우선 resource 위치에 properties 파일을 생성한다. 예를 들기위해서 이 포스팅에선 test.properties라는 설정파일을 생성하였다. test.properties test=테스트입니다. @Value 예제 import egovframework.rte.fdl.property.EgovPropertyService; imp..
먼저 이 포스팅은 개인적인 뇌피셜일 수 있기 때문에 심각하게 생각하지 말아주셨으면 좋겠습니다. 요즘 독감 백신접종으로 인해서 일명 백신 포비아라는 말이 등장할 정도입니다. 독감 백신을 맞는 것이 코로나보다 위험하다는 것인데 사망자 수만보면 실제 코로나 사망자수 증가보다 빠를 정도입니다. 그러나 우리가 이 내용을 백신 때문에 돌아가셨다라고 그대로 받아들일 수 있을까요? 위 그래프는 한국 평균 수명을 나타냅니다. 한국인의 평균 수명은 82~83세 정도로 이 정도 나이가 되면 언제 돌아가실지 모른다는 것입니다. 제가 어릴적 밑에 층에 살던 중년 부부 중 여성분은 밥을 푸다 돌아가셨고, 남성 분은 아내분이 갑작스럽게 돌아가신것에 충격을 받아 며칠동안 술만 마시다가 돌아가셨습니다. 정말 살면서 별의별일 다 봤는데..
엘라스틱서치의 장점 중 하나는 바로 스키마리스(Schemaless)가 가능하다는 점이다. 이로 인해서 DB를 설계가 편리해지고 개발하는 과정에서 힘든 부분을 상쇄할 수 있다. 하지만 스키마리스는 양날의 검이 될 수 있는데 원치 않는 스키마로 인해서 색인이 이상하게 될 경우, 검색에 문제가 있거나 퍼포먼스 측면에서 떨어질 수 있다. 개발을 진행중에는 스키마를 등록하지 않고 진행할 수 있겠지만, 데이터 설계가 끝날 즈음에는 스키마를 등록하여 데이터 구조를 고정시키고 원하는 형태의 검색이 가능하게 만들어야 될 것이다. Schemaless 케이스 우선 스키마리스의 문제부터 파악해보도록 한다. 다음과 같이 주식에 관련된 데이터를 검색엔진에 넣었다고 가정을 해본다. PUT /stock/_doc/1 { "stockI..
윈도우로 리눅스 명령어를 사용하는 방법이 크게 2가지가 있는 것 같다. WSL(Windows subsystem for Linux) 우선 윈도우를 마치 리눅스처럼 만들어서 사용하는 방법인 WSL(Windows subsystem for Linux)라는 것이 있으며 이 방식은 마이크로소프트가 2015년 11월 윈도우 10의 RS1 업데이트를 발표하며 나온 시스템으로 리눅스의 주요 배포판인 우분투의 개발사 캐노니컬과 협력하여 리눅스 서브시스템을 NT 커널 내부에 탑재하는 방식이다. 현재 WSL 2의 버전까지 나왔는데 WSL2의 구조를 보면 Hypervisor 위에 윈도우 커널이 있고, 리눅스 커널이 마찬가지로 VM(Virtual Machine) 형태로 띄워진 것을 알 수 있다. 특이한 점은 Hypervisor ..
필자는 전자정부프레임워크(EgovFramework, egov)로 개발을 많이하다보니 최근에 유행하는 RestController나 기타 여러가지 방식보다 jsonView 방식을 선호하고 있다. jsonView 설정은 2010년초부터 사용하여 지금까지 잘 이용하고 있으며 대국민 서비스에서도 이상없이 빠른 속도로 response되기에 불편함도 없을 뿐더러, 오히려 메소드 모양이 통일되어 선호하는 방식이다. jsonView는 controller 단에서 return 값을 string으로 통일 시켜 주기 때문에 모든 controller가 string으로 선언되어 일관된 모습을 보일 수 있다. 필자가 설정한 프레임워크는 전자정부프레임워크 3.9 버전(현재 최신버전)이고 스프링은 4.3.22 버전이다. 이 방식은 어떤..
트렌드 변화 최근 들어서 Yaml, Yml이라는 포맷이 자주 활용되는 것을 보고 있으면, 개발의 트렌드가 빠르게 변화하는 것을 알 수 있다. 물론 이 트렌드는 개발자의 트렌드하고도 맞닿아 있다. 최근에 개발을 공부해서 개발자가 된 사람들을 보면 남들이 어떻게 코딩을 하는지 그리고, github의 흐름이 어떻게 되는지 또 대규모적인 개발에서 마이크로아키텍처로 변화하는 것을 볼 수 있다. 마이크로 아키텍처의 흐름은 Spring에서 Spring boot로 넘어가게 되었고, 이는 전자정부프레임워크(Egovframework)라는 거대한 프레임워크를 탈피하려는 움직임과 같다. 사실 전자정부프레임워크만 하는 사람 입장에서는 이게 뭔 X소린가 싶을 수도 있지만 지금 연구쪽에서는 yaml과 gradle과 같은 설정 포맷..
데이터베이스 무결성 확보를 위한, 동시성 제어 개요 개념 - 다중 사용자 환경을 지원하는 DB(데이터베이스) 시스템에서 여러 트랜잭션들이 동시에 성공적으로 실행될 수 있도록 지원하는 기능 - 동시성 제어는 병행성 제어와 같은 말 여러명이 동시에 접근하는 데이터베이스의 경우, 데이터를 삽입,갱신,삭제할 경우 다른 사용자에게 영향을 줄 수 있다. 이를 위해 데이터베이스는 트랜잭션을 관리하며 최소의 응답시간, 최대의 공유, 무결성, 일관성 등을 위해서 동시성 제어(concurrency control)는 필연적으로 구현되어 있어야 한다. 주요 목표 - 직렬화 : 동시 수행 트랜잭션 처리량을 최대화하면서, 직렬성 보장 - 성능 : 공유도 최대, 응답 시간 최소, 시스템 활동의 최대 보장 동시성 제어를 하지 않을 ..
카카오페이나 뱅크가 연결이 안된 사람에게 보내거나 상대방이 카카오로 돈을 받기 싫을 경우, 기존에 보낸 송금을 취소해야 하는데 송금 취소 방법을 약간 헤매다 보니 알려드리러 포스팅을 하게 되었습니다. 제가 잘못보낸 1만원을 기준으로 설명드리겠습니다. 점심값으로 만원을 보냈는데 카카오톡으로 받을 수 없다고 하네요. 1-1 (송금메세지에서 카카오페이로 넘어가기) 카카오톡에 있는 송금 메세지(카카오페이 > 로 되어 있는 부분)를 선택하게 되면 다이렉트로 카카오페이 메뉴에 진입하게 됩니다. 1-2 (카카오톡에서 카카오페이로 넘어가기) 송금 메세지를 찾기 힘들거나 귀찮을 경우, 카카오톡의 하단에 있는 메뉴의 맨 오른을 보면 더보기 같은 메뉴가 있는데 이 더보기 메뉴를 선택하시면 됩니다. 더보기 메뉴를 선택하면, ..
블랙핑크 vs 가짜사나이 전세계 여성 아티스트중 압도적인 구독자 수(약 5천만)를 가진 블랙핑크(Blackpink)의 곡이 카운트다운되는 상황에서 최소한 한국에서만큼은 블랙핑크에 비해서는 초라한 가짜사나이 2기가 압도적인 관심을 가지고 있다. 유튜브를 조금이라도 보는 사람이라면 구독하지 않아도 영상에 봤을법한 김계란(피지컬 갤러리)은 헬창의 삶부터 시작한 대규모 기획이 가짜 사나이 1기로 규모가 커졌고, 이게 대박이 치면서 이제는 엄청난 규모의 협찬을 받고 가짜사나이 2기를 고퀄리티 드라마 혹은 영화처럼 만들어버렸다. 가짜사나이 2기는 사실 엄청나게 많은 것을 시사하고 있다. 바로 적은 비용(유튜브 세계에서는 엄청난 제작비이지만 방송사 입장에서는 작은 제작비)으로 엄청난 퀄리티를 만들어 낼 수 있다는 것..
텍사스 수돗물에서 뇌먹는 아메바 발생 최근 뇌 먹는 아메바인 네글레리아 파울러리(Naegleria fowleri)가 미국 텍사스의 수돗물에서 발견되는 엄청난 사태가 발생되었다. 우리나라는 인천, 경기쪽에 깔다구가 발견되어 전국이 뒤집어 지는 일이 발생하였는데 미국과 중국은 재난도 그렇고 스케일이 커도 보통 큰게 아닌 듯 하다. 뇌 먹는 아메바는 보통 따뜻한 호수나 강, 하천에서 발생하며, 수영을 할때 코로 들어가 뇌까지 침범할 경우 뇌를 파악기 때문에 호수나 강에서 수영을 안하면 된다라는 인식으로 살면 아무런 상관이 없다 생각할 수 있었지만 텍사스의 수돗물에서도 나타났고 물을 마신 아이 6살 아이가 숨을 거둔 것이다. 집에서 욕조에 물을 넣고, 몸을 담구거나 샤워를 하거나 세수를 하더라도 이제는 위험한 ..
포조(Plain Old Java Object, POJO) 개념 스프링(Spring)을 공부 하거나, 자바를 공부하다보면 POJO(Plain Old Java Object)라는 용어를 자주 보게 될 것이다. 그때마다 뭔말이야? 하면서 넘어가는 경우가 많을텐데 왜냐하면 정말 별 말이 아니기 때문이다. 포조는 Java EE 등으로 인해서 점점 무거워지는 객체에 대해서 반발하며 나타난 개념이다. 2000년 9월에 마틴 파울러(Martin Fowler), 레베카 파슨(Rebecca Parsons), 조쉬 맥킨지(Josh MacKenzie) 등이 시작하였으며 그 기원에 대한 내용은 마틴 파울러가 다음과 같이 말했다. "We wondered why people were so against using regular ob..