반응형 IT/Knowledge272 Hikari 커넥션풀(connection pool) Hikari Connection Pool HikariConnection Pool (이하 Hikari CP)은 DB와의 커넥션 풀을 관리한다. 이유는 JDBC커넥션을 맺는 과정은 상당히 복잡하고 자원을 많이 소모하는 작업이기 때문에 관리를 해야 성능적으로 좋기 때문이다. 만약 요청이 들어올 때 Thread가 Database와의 커넥션을 맺는다면 데이터베이스 뿐만 아니라 앱서버 입장에서도 굉장히 부하가 심하게 발생 할 것이다. 그런데 HikariCP는 미리 정해놓은 만큼에 커넥션은 pool에 담아 놓는다. 요청이 들어오면 Thread가 커넥션을 요청하고, Hikari는 Pool내에 있는 커넥션을 연결해준다. Connection Pool ( 커넥션 풀 ) 데이터 연동과정에서 일반적인 연동과정은 웹 어플리케이션.. 2023. 1. 31. overflow 란? overflow의 사전적 의미는 넘쳐 흐르다. 범람하다 등의 뜻을 가지고 있다. 100미리 컵 안에 150미리의 물을 넣으면 50미리가 흘러 넘치게 된다. 프로그래밍언어에서 위 글을 다시 읽으면 100Byte 메모리 안에 150Byte를 넣으려고 하면 overflow가 된다. 한공간의 영역을 침범하여 다른 공간에 까지 영향을 미치게 된다. 자료형에서 integer의 값이 대략 21억까지 허용가능하도록 지정해놨었는데 이를 어기게 된다면 허용공간을 침범하여 에러가 발생한다. 프로그래밍 포럼 사이트로 유명한 사이트도 있는데 바로 스택오버플로우 라는 사이트 이다. https://stackoverflow.com/ Stack Overflow - Where Developers Learn, Share, & Build .. 2023. 1. 25. 도커라이징 이란? 이전 포스팅에서 도커에 대해 다룬적도 있고, 도커 사용에 대해서도 다뤘고, 도커 관리를 위한 쿠버네티스에 대해서도 다룬적이 있다. 자세한 내용은 아래 참고 포스팅을 참고 바란다. 이번 포스팅에서는 도커라이징이라는 단어에 대해서 알아보려고 한다. 결론만 말하면 간단하다. 아래 포스팅을 한번씩 읽고 실습을 해보는것 자체가 도커라이징이라고 한다. 말그대로 도커를 띄우는 일련의 작업을 의미하는것으로 생성, 배포, 유지 등을 하는 작업을 의미한다. 도커라이징(Dockerizing)은 Docker 컨테이너를 사용하여 응용프로그램(application)을 패킹(packing), 배포(deploying), 실행(running) 하는 전 과정을 말한다. https://thenicesj.tistory.com/88 Dock.. 2023. 1. 19. nvm이란? nvm은 Node Version Manager 좀더 부가 설명을 하자면 여러 노드 버전을 사용할때 유용하다. 파이선이나 사용에 따라 가상환경을 사용해본 사람이라면 좀더 이해하기 편할것이다. 그리고 매번 node에서 패키지를 받기 위해서는 npm명령어를 사용하거나 수동으로 받고 필요에 따라 upgrade를 해줘야한다. 이 부분을 좀더 편하게 관리를 할수가 있다. 물론 node js 버전간 전환도 가능하지만 가끔 오래된 버전이 설치되어 불편함을 겪는일은 없앨수 있다. 설치법은 curl을 이용하거나 wget을 이용해서 파일을 받아오면 된다. 명령어는 다음과 같다. # curl을 이용할 경우 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/i.. 2023. 1. 18. Redis vs Memcached Redis(Remote Dictionary Storage, 레디스)와 Memcached(맴캐시드)는 유명한 오픈소스인, 인메모리 데이터 저장소이다. 둘 모두 사용하기 쉽고, 고성능을 자랑하지만, 엔진으로 사용할 때 차이를 반드시 고려해야한다. Memcached는 명료하고 단순함을 위하여 개발된 반면, Redis는 다양한 용도에 효과적으로 사용할 수 있도록 많은 특징을 가지고 개발되었다. 각 엔진들이 제공하는 기능과 필요한 상황을 고려하여 필요에 맞게 선택을 할수 있다. 공통점 1ms 이하의 응답대기시간 1ms 이하의 응답시간을 제공합니다. 데이터를 메모리에 저장하기 때문에, 디스크 기반의 데이터베이스보다 빠르게 데이터를 읽을 수 있음 개발의 용이성 문법적으로 사용하기 쉽고, 개발코드 양 또한 적음 데이터.. 2023. 1. 2. Test에서 Stub이란? 사전적인 의미는 토막, 꽁초, 남은 부분 등의 의미를 가지고 있는 이 stub이라는 단어는 it에서 개발 테스트 할때는 어떤 의미를 지니고 있는지 확인해보려고 한다. 위키에서의 사전적 의미는 다음과 같다. 고급 다형성 컴퓨터 과학에서 테스트 스텁 은 테스트 중인 모듈이 의존하는 소프트웨어 구성 요소(또는 모듈)의 동작을 시뮬레이션하는 프로그램입니다. 테스트 스텁은 테스트 중에 이루어진 호출에 대한 미리 준비된 답변 을 제공하며 일반적으로 테스트를 위해 프로그래밍된 것 이외의 항목에는 전혀 응답하지 않습니다. [1] 증분 테스트의 하향식 접근 방식 에 주로 사용됩니다 . 스텁은 소위 유역 모듈을 임시로 대체하고 실제 제품이나 소프트웨어와 동일한 출력을 제공하는 컴퓨터 프로그램입니다. https://en.w.. 2022. 12. 10. kubernetes. Skaffold Skaffold란? 코드 수정 → 쿠버네티스 클러스터까지 적용을 단순화해준 프레임워크 Code change Docker container build Kubernetes resources deploy Debugging on k8s cluster 공식 문서 https://skaffold.dev/docs/ Skaffold 2.0 Documentation Easy and Repeatable Container & Kubernetes Development skaffold.dev 설치 방법은 다음과 같다.(mac brew 기준) $ brew install skaffold $ skaffold version 다음 프로젝트에서 skaffold 파일을 생성한다. Run / Debug Configuration skaffold.. 2022. 12. 7. [Beacon] 근거리 데이터 통신 > 비콘 비콘이란 ? 근거리 스마트 기기를 자동으로 인식하여 데이터를 전송할 수 있는 무선 통신 장치 NFC가 10cm 근거리 작동인 반면, 비콘은 최대 50m 거리에서 작동 가능하다. WPAN Bluetooth 4.0부터 BLE(Bluetooth Low Energy) 방식을 사용하며 애플에서는 iBeacon이라는 기술로 소개되고 현재 사용 중에 있다. BLE communication mode Advertise Mode(= Broadcast mode) broadcast 방식, 모든 디바이스에 signal을 보내고 Advertising type으로 일정 주기마다 전송한다. 한 번에 보내야 하는 데이터 크기가 작다면, 굳이 오버헤드가 큰 Connection 과정을 거쳐서 데이터롤 보내기 보다는, Advertise를.. 2022. 11. 15. run / debug 차이 결론만 먼저 시작을 하자면 실행(Run)은 코드를 전체실행하여 오류가 없는지 확인하는 것 디버그(Debug)는 말 그대로 버그를 잡아내기 위한 것으로, 실행(Run)에서 오류가 있었다면 어떤 코드가 그 원인인지 알아보는 것 이다. 코드를 실행하는 방법은 두가지 모두 실행이 된다. 다만 사용에 따라서 다른 방법이라고 생각을 하면 된다. run 을 할 경우엔 전체 코드가 돌게 되고 에러가 난다면 어디서 에러가 났는지 확실히 알수는 없다. 하지만 debug를 할 경우엔 전체를 못볼순 있어도 어떤 지점에서 에러가 났는지를 좀더 자세히 확인할수 있는 장점이 있다. 2022. 11. 10. 이전 1 ··· 15 16 17 18 19 20 21 ··· 31 다음 반응형