no image
[Spring] JPA 와 Mybatis 동시 사용 시 Connection Deadlock 벗어나기
PHP 에서 Java 로 작업을 진행하면서 기존에 작성했던 Query 문을 사용해야 할 필요가 생었겼다. 근데 한번에 효율적으로 데이터들을 불러오려고 작성된 Query 를 사용하려다보니 우선은 Query 문의 길이가 길었고, DBMS 의 고유 기능을 사용한 것이 많았다. 사내에서 작성된 Query 들을 되돌아보니 DB 테이블들이 상당히 많아 복합적으로 Join 을 하거나 서브쿼리가 많이 존재했고, Oracle 의 START WITH ... CONNECT BY ... 처럼 특수 기능을 사용하고 있거나, LOB 관련 함수 등 그저 JPA 만으로는 분명 해결하기 까다로운 이슈들이 있다고 생각했다. 난이도도 있고 QueryDSL 를 사용한다고 해도 다른 사람들이 유지보수를 할 때 과연 잘 할 수 있을까? 하는 ..
2022.04.04
[Linux] 폴더(디렉토리) 용량 확인하는 방법
디렉토리 별로 하위 디렉토리까지 확인 $ du -h /폴더명 하위 디렉토리까지 확인 $ du -hs /폴더명 디렉토리 별 용량 확인 $ du -h --max-depth=2
2022.03.27
[Linux] 열린 포트와 관련된 여러 가지 netstat 명령어
열려있는 모든 포트 확인 $ netstat -nap LISTEN 되는 모든 포트 확인 $ netstat -l (netstat -nap | grep LISTEN) 모든 서비스의 동시 접속자 수 $ netstat -nap | grep ESTABLISHED | wc -l 웹 동시 접속자 수(웹 포트 - 80) $ netstat -nap | grep :80 | grep ESTABLISHED | wc -l
2022.03.27
[회고] 2021년
Spring Boot 어플리케이션을 처음으로 실무에 적용하고, 직접 장애를 겪어보고, 동시에 보람있는 경험도 같이 겪은 해였다. 작년에 Graylog 로 Gateway 같은 역할을 하는 서버에 요청 지표를 알 수 있도록 하는 모니터링 작업을 진행했었는데 그 지표를 잘 확인해보라는 듯이 무섭게도 작년 말, Meta 키워드 때문에 엄청난 트래픽이 몰리면서 Oracle 로 인한 사내 전체 장애가 일어났었다(기사). 이런 경우 어느 정도의 요청이 들어오는지 지표를 확인할 수 있는 경험을 겪었고, 다른 서비스들이 장애가 일어나서 작동이 안될 때 처음으로 실무에 적용한 Java Spring Boot 애플리케이션만이 유일하게 멀쩡하게 작동되는 경험까지 함께 겪게 되었다. 휴면 계정 회사에서 예전에 인수한 회사가 있었..
2022.03.27
[Linux] CentOS/우분투 64비트에서 32비트 패키지 실행하기
페도라 계열(CentOS, Fedora, Red Hat) $ yum install glibc.i686 # 만약 안된다면 $ yum install glibc.i386 데비안 계열(Debian, Ubuntu) $ apt-get install ia32-libs
2022.03.27
[회고] SVN에서 GIT으로 이전 후 코드 리뷰 도입을 돌이켜보며
회사에서 입사하고 난 후 1년도 안되어 2019년도에 SVN 저장소에서 벗어나기 위해 GIT 저장소로 이동하는 작업을 진행했었는데 그 이유는 아래와 같았다. 회사 내 개발 직무 협의체에서 장기 목표로 GIT 으로 이전하는 공통 목표가 있었다. 반영하기 전 코드를 미리 확인할 수 있는 방법이 없었다. 커밋한 후에야 변경사항만을 다른 사람에게 보여줄 수 있는 정도였다. 브랜치를 원격에서 관리하는 것이 아니라 로컬에서 먼저 관리하고 싶었다. 원격에서 항상 관리되다보니 데이터를 가져올 때나 커밋할 때 항상 시간이 걸렸다. 저장소 커밋의 이력 관리를 쉽게 보고 싶었고, GIT 을 이용한 다양한 기능들을 사용해보고 싶었다. ... GIT 으로 이전하기 전에는 팀 내부적으로 코드 리뷰 문화나 정해진 컨벤션이 전혀 없..
2022.03.27
no image
[GIT] git add * 과 git add . 차이
git add * 은 .gitignore에 있는 것 상관없이 모두 추가시키고git add . 은 .gitignore에 명시된 것을 고려하여 모두 추가시킨다. stage에 올릴 때는 git add . 을 사용하자.
2019.08.29
[DB] Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Can't connect to local MySQL server through socket '/tmp/mysql.sock' # 또는 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' MySQL 을 처음 사용하거나 연관된 도구 또는 서버들을 이용할 때 의외로 자주 보는 오류이다. 보통 이 오류는 맨 뒤에 나타나는 번호에 따라서 원인이 다르다. Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 이건 MySQL 서버가 실행되지 않아서 생긴 문제다. 서비스를 실행시키자. Can't connect to local MySQL server thro..
2019.08.29
no image
[C++] 음식점 간단 주문
설명 본 프로그램은 C++을 이용하여 어떻게 객체지향 언어를 사용하고, 클래스들을 구성하는지 간단하게 만든 프로젝트입니다. 콘솔 환경으로 음식점에서의 주문 처리를 임의로 구성해보았습니다. 다운로드
2017.08.31