본문 바로가기

Tech

[JAVA] Spring Boot + JPA + H2를 사용한 RestAPI 만들기 예제 앞선 JPA 소개에 이어, 실제 코드는 어떻게 구현되어 데이터를 핸들링 하는지 살펴보고자 합니다. 간단한 메모용 CRUD RestAPI를 구현하기 위해 Spring boot를 사용하며, Data Access Layer는 JPA를 사용하겠습니다. 그리고 DB는 로컬개발용도인 H2 를 사용하겠습니다.(배포 profile 으로는 MySQL로 설정했음) 이 구성으로 실무에 사용해보진 못했는데, 공모전 프로젝트로 블럭체인 키 관리 어플리케이션 구현할때, 2명이 협업하며 쉽고 빠르게 제작이 가능했습니다. 2명은 서로 다른 플랫폼(MacOS 와 Windows10) 에서 별도 개발서버 없이 완벽한 크로스플랫폼 로컬 환경으로 개발 및 배포가 가능했습니다. 이번 지식공유를 위한 완성된 샘플 소스는 제 깃헙에 올려뒀으며, .. 더보기
[JAVA] 자바 ORM 표준인 JPA를 활용 하자 사내 자바 프로젝트 템플릿 경우, Spring boot 어플리케이션에서 DB Access layer 및 쿼리는 Mybatis를 사용하고 있습니다. Mybatis는 SQL Mapper 로써, 자바객체를 실제 SQL 문에 연결해주는 역할을 합니다. BOQ처럼 DB 스크립트에 비즈니스 로직이 있는 경우나, 통계/데이터분석과 같은 복잡한 쿼리를 사용할 때 유리합니다. 그래서 우리에게 익숙한 Monolic한 서비스(=통짜로 한개 어플리케이션)을 만들때 DB 중심 설계와 비즈니스 로직을 SQL로 처리를 해야만 한다면, Mybatis를 대체할 만한게 딱히 없긴 합니다. 한편, 제가 사내 자바 프로젝트(Mybatis + 3단 Layer-Controller/Service/Dao) 를 실제 운용해보면서 느낀점을 말씀드리겠.. 더보기
Docker 간단 정리 그리고 설치 Docker 가 뭔가요?    설치에 필요한 조건Windows 10 ProfessionalCPU 가상화 지원 여부 확인, 사내 데스크탑 PC의 대부분은 지원하는걸로 아는데,만약 아래 "가상화 사용안함" 으로 되어 있다면 BIOS의 CPU 항목 중 Virtualization 을 활성화 시키면 됩니다  설치하기https://www.docker.com/products/docker-desktop Docker Desktop for Mac and Windows | DockerLearn why Docker Desktop is the preferred choice for millions of developers building containerized applications. Download for Mac or Win.. 더보기
4차 산업혁명 페스티벌 2020 과학기술정보통신부와 대통령 직속 4차산업혁명 위원회가 주최한다던, 페스티벌?? 을 다녀왔습니다. 저는 2일차 컨퍼런스만 듣고 왔는데요. 관련 후기만 가볍게 올려봅니다. * 스마트 공장을 위한 인공지능 비전 검사 기술 산업 부품을 만드는 공장에서는 완성된 제품의 불량상태를 체크해야 합니다. 일반적으로 Rule(규칙) 기반으로 판단하고 있는데, 애메한 불량상태라는 다양한 예외케이스 때문에 결국 사람의 육안으로 최종 판단을 하고 있습니다. 하지만 사람의 육안도 100% 신뢰가 될 수 없죠. 예를 들어 검사자의 피로도, 판단능력에 따라 판단기준이 달라지기도 합니다. 따라서 "라온피플"이라는 회사는 제조 산업에서 불량률 판독을 특화된 딥러닝 비젼 기술을 사용하여 솔루션을 제공하고 있다고 자랑합니다. (라온피플은 .. 더보기
VBscript 에서 Powershell로 컨버팅-1 사내의 매출레포트 및 배치작업들에 있어서 대다수가 VBscript로 작성되어 왔습니다. Classic ASP와 마찬가지로 VBScript는 적당히(?) 빠른 생산성과 편의성이 있어서 사용되어 왔는데요. 이미 오래전에 MS에서도 지원 없는 이 언어에 대해 그 효용성은 떨어지고 있습니다 문법적으로는 Basic도 C도 아닌, 성능적으론 느리고 구조적으로 객체지향도 아닌 사용하면 할수록 관리하기 어려워지는 현상은 경험해 보셨을 겁니다. 이 VBscript를 대체할 수 있는 것이 이번에 소개해드릴 Powershell입니다. Powershell 이란 시스템 관리 전용으로 설계된 작업 기반 명령줄 셸 및 스크립팅 언어입니다. .NET Framework에 기반하여 개발된 Windows PowerShell™은 IT 전문.. 더보기
스티브 잡스의 스텐포드 졸업식 축사(2005) 스티브 잡스에 대한 많은 책과 이야기가 있지만 이 연설만한게 없는거 같다. 죽음을 가깝게 경험하고 삶을 찾은 사람들의 공통점은... 한 시를 낭비하지 않고 자신의 일에 몰입하는 "각성" 상태를 발견할 수 있습다... "열정"은 의지가 아니라 어떤 충분 조건 상태가 되었을 때 발휘되는 현상 아닐까... ================================================================================ 우선 세계 최고의 대학교 중 하나인 스탠포드의 졸업식에 이렇게 함께 하게 되어 매우 기쁘게 생각합니다. 사실 전 대학교를 나오지 못했습니다. 이게 제가 대학교 졸업식에 가장 가까이 다가가본 경험이 되겠네요. 저는 오늘 여러분에게 제 인생에서의 세가지 이야기를 들려주.. 더보기
프리젠테이션 시 유용한 Zoom it 혹시 Zoom it 을 사용해보신적 있으신가요? 세미나, 교육 등 프리젠테이션 할 때 유용하게 쓰일 수 있는 프로그램을 소개합니다. Zoom it 이라는 명칭과 같이 모니터상에 마우스가 위치하고 있는 지점을 확대 해주고 그림이나 글을 입력 할 수 있게 해줍니다. http://technet.microsoft.com/en-us/sysinternals/bb897434 =>여기서 다운 받으세요 만약 소스를 프로젝트 상에서 확인 하려면 가독성이 매우 떨어지고 또한 발표자가 말하는 곳이 어느 부분인지 찾느라 해메게 됩니다. Zoom it을 사용하게 되면 이렇게 땡겨 볼 수 있어서 청중에게 효과적으로 이해 시키는데 도움을 줄 것입니다. 또한 마우스로 그림이나 키보드로 텍스트 입력도 가능합니다. 줌 상태로 화면 이동도.. 더보기
[MSSQL]최적화 단계에서 인덱스 선택(2) *통계 정보 업데이트의 중요성 Non-Clustered Index 가 걸린 컬럼으로 조회 시, 최적화 단계에서 통계 정보의 분포도에 따라 실행계획을 수립하게 되는데 이때 통계정보가 업데이트가 안되어 있을 경우 성능 저하를 초래할 수 있다. 테스트용으로, SELECT * INTO p from tbillmst where payymd between '20040101' and '20101231' --p테이블에 160000만건 삽입 CREATE CLUSTERED INDEX cx ON p (UserNo) CREATE INDEX ix ON p (payymd) --인덱스를 각각 생성하고 DBCC SHOW_STATISTICS(p, ix) --통계정보를 확인해보면 p 테이블의 payymd에 대한 밀도는 0.00053333.. 더보기