스프링 부트로 잘 개발을 하다가 가끔 개발환경이 바뀌거나 낯선 환경에서 다시 개발을 진행해야할 때 부트올라가는 속도가 많이 느려질 때가 있다.(저같은 경우는 자바에서 코틀린으로 변경했을 때 서버 올라가는 속도가 현저히 느려졌음) 스프링부트 디펜던시도 web이랑 lombok 두개가지고 예제코드 작성하면서 놀고있었는데... 갑자기 20초대의 실행속도라니 미치고 팔짝뛸 노릇이었다.. 로그에 혹시 뭐 없나.. 좀 주의깊게 보고자 스프링부트 프린팅이 출력되고 나서 한가지 문구가 출력되는 현상을 보았는데.. 아래와 같다.! Please verify your network configuration (macOS machines may need to add entries to /etc/hosts). 네트워크 설정과정에서..
도커 허브를 통해 ec2 인스턴스에 배포하고자 하였음. Dockerfile 만들고. ec2에 도커 설치하고 systemctl docker start 로 도커를 딱 켜고! 도커 허브에서 이미지 땡겨받아서 run만 하면 되는데....! 다음과 같은 에러를 만났다.. WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested standard_init_linux.go:228: exec user process caused: exec format error 대충 찾아보니.. 현재 내가 쓰고있는 맥북이 Ap..
트랜잭션의 고립성에 대한 오해는 어플리케이션에서 아주 심각한 사이드 이펙트를 겪을 수 있다. 이런 이슈들을 디버깅하는 과정은 매우 고통스럽기까지 하다. 표준 SQL은 네가지 트랜잭션 격리성을 정의하였다. 각각의 격리수준은 만약 두개의 동시 프로세스가 동작하고 있을 때, 어떤 일이 일어날지에 대해서 정의한다. 해당 게시글은 어떻게 PostgreSQL이 기본적으로 어떤 격리수준을 가지는지 탐구하고 대체적으로 선택할 수 있는 데이터 정합성 기반으로 확신할 수 있는 옵션은 어떤것이 있을지 설명한다. 또한 다양한 격리 수준에 대한 성능 수준에 대해서도 탐구해볼 예정이며 각각 사용 케이스들을 보고자 한다. 동시 트랜잭션의 격리 이론적인 설명에 들어가기 전에, PostgreSQL의 기본적인 수행을 살펴보자. 일단 동..
일류 개발자는 FIRST를 사용하여 테스트 우선적으로 코드를 작성합니다. 테스트는 빠르고 독립적이며 반복 가능하고 자체 검증이 가능하고 시기적절해야 합니다. 단위테스트는 코드의 일부분을 테스트하기 위해 필요합니다. 자바에서는 대부분 클래스일 것입니다. 테스트는 프로그래머로 하여금 자신의 코드에 확신을 갖게 함은 물론 변경이 가능합니다. 개발하는 동안 테스트를 진행함으로써 프로덕션 코드가 수정되거나 테스트를 통과하도록 변경되는지 여부에 관계없이 테스트를 방해하는 모든 변경사항을 재평가할 수 있습니다. 이 포스팅에서는 언클 밥 마틴이 쓴 Clean Code 에 정의된 FIRST 규칙에 대해 설명합니다. Fast : 테스트는 사용하는데 있어 주저함이 없도록 빨라야합니다. 몇가지 테스트가 있는 메소드 혹은 클래..
수십 년 동안 데이터베이스 시스템은 사용자가 선택할 수 있는 여러 격리 수준을 제공했습니다. 고급형의 "serializability"부터 저가형의 "read committed" 또는 "read uncommitted"에 이르기까지 다양합니다. 이러한 서로 다른 격리수준은 어플리케이션에게 수많은 동시성 버그를 노출시킬 수 있습니다. 그럼에도 불구하고 많은 데이터베이스 사용자들은 현재 사용중인 데이터베이스의 기본 격리수준을 고수하고 어떤 격리수준이 자신의 어플리케이션 환경에 가장 적합한지 고려하지 않습니다. 이러한 관행은 매우 위험합니다. Oracle, IBM DB2, Microsoft SQL Server, SAP HANA, MySQL, PostgreSQL 과 같은 유명한 데이터베이스들은 “serializab..
로컬에서 서버를 올리며 외부 엔드포인트에서 어떤 데이터들을 어떤 형태로 타입마다 주는지 대략 확인하기 위해 많은 양의 콘솔라인이 필요했었다. 물론 한번씩 호출하고 드래그하고 할 수 있었지만 개발자인데 굳이..? 전에는 어떤 환경변수 조절해서 처리했던 것 같은데 인텔리제이 내부에 해당 셋팅이 가능하도록하는 인터페이스가 존재하여 이에 대해 공유하고자 한다. 1. Shift 2번 -> settings 입력 2. console 검색 -> Editor/General/Console -> Override console cycle buffer size 체크 -> 값 입력.