SpringBoot(4)
-
EXPLAIN 사용법 찍먹 해보기
MySql의 옵티마이저가 항상 최적의 쿼리 최적화를 하는 것은 아니기 때문에 EXPLAIN을 사용해 실행 계획을 확인하는 것은 중요하다. 부끄럽게도 나는 DB를 잘 사용하고 다루는 것에 많이 부족하다.최근 Real Mysql 8.0이라는 좋은 책을 읽었지만 내용도 많고 나에게는 어려운 부분이 많지만 그 중에서도 특히 EXAPLIN 활용에 대한 부분은 요약해서 기록하는게 필요 할 것 같다는 생각에 포스트로 작성하게 되었다.EXAPLIN 이란?SQL 데이터베이스에서 EXPLAIN은 쿼리의 실행 계획(execution plan)을 보여주는 명령어로, 개발자와 DBA가 쿼리의 성능을 분석하고 최적화하는 데 사용된다. 이 명령어는 쿼리를 실제로 실행하지 않고, 데이터베이스가 어떻게 쿼리를 처리할지 계획을 보여준다..
2025.03.26 -
SOAP 프로토콜 사용하기
담당 프로젝트에 개발 사항중 외부와 통신을 해야 하는데 restAPI가 아니라 SOAP 프로토콜로 통신해야 하는 개발 내용이 있었다. 값을 수신하기 위해서는 SOAP 수신을 위한 별도의 웹서비스를 톰캣으로 실행시켜야 하는 부분도 있었는데 송신부분에 대한 사용 예만 공유해 보겠다.SOAP 방식이 너무 생소하고 XML을 파싱해 원하는 값을 가져오는 개발이 너무 불편했다.심지어 담당 프로젝트는 SK 계열사에서 개발을 진행해야 해서 VDI 라는 별도의 가상머신 같은 환경에서 개발을 해야 했는데 속도가 느리거나 RAM이 부족하거나 여러 불편사항이 있었지만 보안 문제로 VDI 내에서의 코드나 텍스트를 외부 PC로 복사/붙여넣기 할 수 없다는 점이 더더욱 불편했다. 예를들어 개발중 오류가 발생하면 일부 키워드만 직접..
2024.05.05 -
IntelliJ에서 docker-compose 사용하기
회사에서 맡고있는 프로젝트중 카카오톡을 활용한 카톡상담 기능이 필요해 기존 솔루션에 있던 기능을 적용되어 있지 않던 프로젝트에 구현하고 있었다. 로컬에서만 테스트를 해보다가 실제 배포이후 확인을 하고 싶은데 개발서버가 존재하지 않아 테스트를 하기 난감했다. 그렇다고 영업시간이 끝나지 않았는데 실서버로 배포 할 수는 없기에 도커를 사용해 linux 환경에서 기능을 테스트해보기로 했다. 로컬은 윈도우 데스크톱 이였기에 실제 서버에 배포된 이후에 카카오톡 상담을 통해 전송되는 이미지가 제대로 동작하는지 확인이 필요 했고 로컬에서는 테스트 할 수 없는 상태였다. 그래서 빌드한 이후 docker를 사용해 linux에서 동작을 테스트해 보려고 했는데 intellij에서 docker를 사용 할 수 있는 것을 처음 알..
2024.03.12 -
SpringBoot 공부하기 2편
리플렉션 모든 클래스의 정보는 JVM 안에 있는 클래스로더가 읽어와서 메모리의 어딘가에 두는 것이다. 클래스 로더가 읽어온 클래스 정보가 곧 거울에 비친 모습과 같은 것이다. 이런 정보를 가지고 여러가지 여러가지 행동을 할 수 있다 예를들어 어노테이션이 붙어 있으면 특정 행위를 실행 한다거나 테스트를 할 때 추가 행위를 한다거나 특정 네이밍을 검색해 치환 한다거나 모두 리플렉션 덕분에 가능한 행위다. 무긍무진하게 활용될 수 있다. // 클래스 정보를 가져온다. (레퍼런스를 가져온다) Class aClass = Class.forName("me.whiteship.hello.ChineseHelloService"); // constructor를 가져온다. aClass에서 바로 newInstance()를 사용하지..
2024.01.09