전체 글(410)
-
(MySQL) MySQL에서 실시간 쿼리 로그 확인하기
스프링 프로젝트를 진행하다 보면 실제 쿼리가 어떻게 나가는지 궁금할 때가 있습니다. 기본적으로 spring: jpa: show-sql: true 이런 설정을 하게 되면 콘솔창에 쿼리 로그를 보여주기 때문에 웬만한 쿼리는 확인이 가능합니다. 하지만 대량의 쿼리나 JPA에서 변환되어 실제로 MySQL 쿼리로 변환되어 나가는 쿼리는 알지 못한다는 문제가 있습니다. 이때 실시간 로그 확인이 필요하고 함께 로그를 확인하는 방법을 알아보려 합니다. 🧐MySQL 로그 설정하기 실시간 쿼리 로그를 확인하기 위해서는 먼저 로그 설정이 필요합니다. 먼저 MySQL에 접속합니다. mysql -u root -p 그리고 로그 설정을 확인해봅니다. show variables like 'general_log%'; 그럼 아래와 같은..
2022.12.18 -
(Github Actions) github actions으로 스프링 빌드하기
몇 개의 프로젝트를 github actions으로 배포하면서 좋은 경험인 것 같아서 이를 공유하려고 합니다. What is github actions? Github actions(이하 깃헙 액션)는 Github에서 제공하는 CI/CD 툴입니다. CI는 Continuous Integeration의 약자로 지속적 통합을 의미하고 CD는 Continuous delivery/deployment의 약자로 지속적 제공/배포(를) 의미합니다. .yml파일로 쉽게 작성할 수 있고, Github프로젝트 내에서 손쉽게 설정할 수 있고 어떤 언어이든 상관없이 설정이 가능하다는 점이 장점입니다. 🧐어떻게 사용할 수 있나? 빌드하고 싶은 리포지토리에 들어가면 이런 배너가 있습니다. 그 중 Actions버튼을 클릭하면 이렇게 레..
2022.12.16 -
(TIL) 20221214/ 함수형 프로그래밍에서의 순수 함수
🏴Facts(한 것) & Findings(배운 것) * 스터디 진행 많은 부분이 인상 깊었지만 기존에도 관심이 많았던 순수 함수에 대한 새로운 지식을 얻어 공유하려 합니다. (함수형 코딩) 1장/ 함수형 사고란 무엇인가? 책을 펴고 1장을 펴면 다음과 같은 챕터에 대한 설명을 볼 수 있다. 이 장에서는 함수형 사고가 무엇인지, 왜 함수형 사고가 더 좋은 소프트웨어를 만들려는 개발자에게 도움이 되는지 설명합니 mirrorofcode.tistory.com 이전에 이런 글을 적은 적이 있는데, 위 글에서도 순수 함수에 대한 언급이 있습니다. 순수 함수는 "인자에만 의존하고 부수 효과가 없는 함수이다."라고 명시되어 있다. 그럼 이런 함수는 어떨까? println("Hello Kotlin") 이 함수는..
2022.12.15 -
(TIL) 20221213/ 코틀린의 Collection
🏴Facts(한 것) & Findings(배운 것) * 자바에서 코틀린으로 Collection 파트 다시 읽기. 저번 스터디에서 5,6장을 다 하지 못했고(열띈 토론 덕에) 이참에 6장을 다시 읽으면서 새로운 것을 뽑아내려고 노력했습니다. 먼저 코틀린의 Collection 구조는 아래와 같습니다. Java와는 확연히 다른 상속 관계를 가지고 있다는 것을 알 수 있습니다. 기본적으로 가변 컬렉션으로 사용하는 자바와 달리 Kotlin은 불변 컬렉션(read-only) 컬렉션을 사용하고 있습니다. 그렇기에 상속구조가 위와 같은 것이죠. 불변 컬렉션의 사용은 부수 효과가가 생기는 것을 막을 수 있고, 의도치 않은 데이터 접근을 막을 수 있다는 장점이 있습니다. 덕분에 더욱 함수형 프로그래밍에 집중할 수..
2022.12.14 -
(MySQL) Docker + MySQL를 Datagrip에 연결하기
이전에는 Dokcer로 MySQL 서버를 띄우는 글을 작성한 적이 있습니다. (Docker) Mysql(PostgreSQL, mariaDB 등)을 도커로 실행시키기 mysql과 postgresql은 각각 3306, 5432 포트를 기본으로 사용하기 때문에 겹칠일이 없지만, mysql과 mariaDB같은 경우 둘다 3306 포트로 실행되는데다, 같은 로컬환경에 출돌이 일어나기 쉽상이다. 그래서 이 mirrorofcode.tistory.com 위 방법은 여전히 잘 실행되는데요, DB를 Datagrip이나 MySQL workbench 같은 툴에 연결하고 싶을 때가 있을 겁니다. (왜인지는 모르겠는데 root 계정은 연결이 안되더라고요.)(사실 안 찾아봄) 이때는 db를 생성해주고, 사용자를 만들어서 권한을 넘..
2022.12.02 -
(MySQL) MySQL 8.0의 메모리 할당 및 사용구조
일반적으로 메모리는 코드, 데이터, 힙, 스택 영역으로 나누어져 있습니다.그렇다면 MySQL 서버는 메모리를 어떻게 사용할까요?🧐글로벌 영역과 로컬 영역MySQL 서버도 일반적인 메모리 구조를 크게 벗어나지 않습니다.글로벌 영역은 힙 영역, 로컬 영역은 스택 영역과 대조할 수 있겠네요.MySQL의 메모리 할당 방식은 상당히 복잡하기 때문에 MySQL 서버가 사용하는 정확한 메모리의 양을 측정하는 것은 쉽지 않습니다.그래서 단순하게 MySQL의 시스템 변수로 설정해 둔 만큼 운영체제로부터 메모리를 할당받는다고 생각해도 무방합니다.(실제로 이론적인 계산이 아무런 의미가 없고 경험 기반으로 판단해야 할 때가 더 많다고 한다.) 🧐글로벌 영역글로벌 영역은 말 그대로 모든 스레드에 공유되는 메모리 영역입니다...
2022.11.23