ETC
단위 테스트가 프로젝트에 가져온 긍정적 효과
단위 테스트가 프로젝트에 가져온 긍정적 효과
2024.03.310. 글을 시작하며 현재 회사에서 진행 중인 프로젝트를 인수인계 받으면서 눈에 띄었던 부분 중 하나는 테스트 코드가 존재하지 않는다는 점이었습니다. 해당 프로젝트를 통해 개발 중인 시스템은 실시간으로 어떤 대상의 값을 보고 내부에서 설정한 정책에 따라 작업 생성여부를 판단하는 로직을 타게 되는 데 판정대상이 단순히 하나의 어떤 대상을 보는 것이 아니라 과거의 값까지도 봐야하는 등 꽤 복잡한 형태로 구성되어 있었습니다. 시스템에서 작업을 생성할 것인지, 말 것인지를 판정하는 로직인 만큼 굉장히 중요한 부분이고, 그렇기에 작성한 로직에 대한 검증이 대단히 중요한 부분이기도 했습니다. 하지만 문제는 이 부분을 포함해서 프로젝트 전체에서 테스트 코드를 통한 검증 자동화가 존재하지 않다보니 기존에는 개발 서버에 ..
동적 쿼리와의 전쟁... Querydsl을 도입할 수 없었던 이유
동적 쿼리와의 전쟁... Querydsl을 도입할 수 없었던 이유
2024.03.170. 글을 시작하며 2024년 회사에서 새로운 프로젝트를 시작한 것도 어느덧 2달이 넘어가고 있습니다. 이미 오랜 기간 개발이 되어오던 프로젝트라 복잡한 DB 구조 및 비즈니스 로직, 새로운 요구사항을 반영할수록 높아지는 클래스간 결합도 등 저를 괴롭히는 문제들이 많지만, 그 중에서 단연 가장 큰 문제는 바로 "동적쿼리" 처리 방식이었습니다. 해당 프로젝트는 현재 Spring Boot에 JPA를 주요 기술스택으로 사용하고 있습니다. JPA에서 동적쿼리 문제를 가장 이상적으로 해결할 수 있는 기술이 querydsl 이라는 것은 많은 분들이 이미 알고 계실겁니다. 하지만 이번 글에서는 제가 자신있게 querydsl을 도입해서 현재 프로젝트의 동적쿼리 문제를 더 깔끔하게 풀어낼 수 없었는 지, native q..
프로젝트 인수인계 시 꼭 기억할 5가지
프로젝트 인수인계 시 꼭 기억할 5가지
2024.02.040. 글을 시작하며 2024년을 시작하면서 입사 후 한 해동안 진행하던 프로젝트를 마무리하고 새로운 프로젝트를 인수인계 받아 진행하게 되었습니다. 이전 프로젝트는 처음부터 프로젝트를 세팅하고 코드를 직접 작성하며 진행한 프로젝트였지만 이번 프로젝트는 지난 1년부터 지금까지 개발과 유지보수 병행하며 실제 운영 중인 서비스를 유지보수하고 추가 개발하는 내용이었습니다. 이전에는 머릿속으로 정리한 논리를 코드로만 잘 작성하면 되었지만 이제는 기존 전임자의 코드를 통해서 핵심 로직을 이해하고, 전체 시스템에 대해 이해하여 서비스에 대한 유지보수와 함께 신규 기능 추가 개발을 통해 서비스를 향상시켜야할 필요가 있었습니다. 즉, 이전에는 나의 방식대로 로직만 잘 작성하여 요구사항을 충족하는 능력만 있으면 되었다면, ..
자기개발 미루지 않는 개발자 되기
자기개발 미루지 않는 개발자 되기
2024.01.210. 글을 시작하며 모든 직업, 분야를 관통하는 문장이지만 특히 개발자라는 직업을 두고 이 문장이 단골로 등장합니다. 개발자는 평생 공부하는 직업이다. 지금 이 순간에도 많은 신기술이 등장하고, 업계 분위기가 바뀌는 개발 시장에서 개발자로서 살아남기 위해서는 지속적인 공부(자기개발)는 필수 요건입니다. 하지만 개발자로서 이 자기개발을 하는 것에 대한 가장 큰 적은 바로 "미루는 습관" 입니다. 저도 '오늘은 이만하면 되지 않았을 까', '오늘 회사일로 이미 힘들었는 데 또 공부를 해야할까?', '주말에 하자... 내일 출근해야 지' 등을 핑계로 자기개발을 미루는 습관들이 반복되다보니 제가 백엔드 개발자로서 기대했던 수준에 미치지 못하는 아쉬움을 많이 느꼈습니다. 그래서 우리가 더 좋은 개발자로 성장하는 ..
Github Gist 로 효과적으로 코드 첨부하기
Github Gist 로 효과적으로 코드 첨부하기
2023.03.060. 글을 시작하며 아마 기술블로그를 관리하시는 분들이라면 많은 글에 "소스코드"를 포함하는 경우가 많을 것이라고 생각합니다. 물론 현재 제가 사용 중인 Tistory의 경우 "코드블럭"이라는 컴포넌트와 함께 여러가지 테마도 지원했지만, 이것에는 몇 가지 아쉬움이 있었습니다. 1. 화면크기나 비율에 따라서 코드가 읽기 좋게 보여지지 못하고 줄바꿈이 되어버리는 현상 2. 복사해서 사용할 때 가끔 엉뚱한 문자까지 함께 복사되어 사용이 불편한 현상 3. 코드가 눈에 확 들어오지 않는 아쉬움 4. 블로그에서 사용한 코드를 별도로 github과 직접 연동해서 관리하기 어려운 부분 정보를 공유하고 나누는 수단 중 하나인 기술 블로그에서 코드 가독성이 좋지 않은 코드 블럭을 사용한다는 것은 기술 블로그를 운영하고 관..
[웹 서비스 개발] Xampp - phpmyadmin 접속하기
[웹 서비스 개발] Xampp - phpmyadmin 접속하기
2022.09.26Xampp는 기본적으로 phpmyadmin이 함께 설치되기 때문에 설치된 MySQL을 관리할 때 단순히 phpmyadmin을 사용하여 관리할 수 있습니다. phpmyadmin을 사용하기 위해서는 다음 두 가지 방법으로 시도할 수 있습니다. 1. 현재 Xampp의 IP/phpmyadmin 입력 2. Go to Application -> phpMyAdmin 클릭 1번 방법은 간단하니 생략하고 저는 2번 방법만을 소개하도록 하겠습니다. [웹 서비스 개발] Xampp 세팅하기 (for Mac) Xampp 란? APM(Apache, PHP, MySQL) 환경을 쉽게 구성하고 관리할 수 있도록 도와주는 툴 기존 우리가 APM 개발 환경을 구축해야하는 경우, 세팅해야하는 PC에 Apache, PHP, MySQL을 각..
[웹 서비스 개발] Xampp 세팅하기 (for Mac)
[웹 서비스 개발] Xampp 세팅하기 (for Mac)
2022.09.26Xampp 란? APM(Apache, PHP, MySQL) 환경을 쉽게 구성하고 관리할 수 있도록 도와주는 툴 기존 우리가 APM 개발 환경을 구축해야하는 경우, 세팅해야하는 PC에 Apache, PHP, MySQL을 각각 설치하고, 실행하고, 관리해야 합니다. 물론 정식 서비스를 배포해야하는 경우 이렇게 따로 설치하고 관리해주는 것이 일반적이지만, 학습용도로 가볍게 개발하는 경우 이러한 세팅 과정을 거치는 것은 굉장히 번거로운 작업입니다. 하지만 Xampp를 사용하면 이러한 환경을 한번에 구축할 수 있고, 여기에 Phpmyadmin도 함께 설치되기 때문에 별도의 추가설정, 툴 없이도 Phpmyadmin을 사용하여 DB를 관리할 수 있다는 편리함이 있습니다. 현재 수강하시는 수업에서도 이러한 APM 환경..
intelliJ - Java 프로젝트 생성 및 Git / Github 연동
intelliJ - Java 프로젝트 생성 및 Git / Github 연동
2022.09.01안녕하세요. 이번 시간에는 intelliJ에서 Java 프로젝트를 생성하고 이를 Github과 연동하는 방법을 정리하겠습니다. 이전에 사용하던 STS4도 프로젝트를 Git / Github을 연동하여 터미널 상에서 명령어 없이 클릭 몇 번으로 수행할 수 있었지만, intelliJ는 이보다 훨신 더 직관적으로 이 과정을 수행할 수 있습니다. 해당 글은 MacOS를 기준으로 작성되었습니다. 하지만 Windows 환경에서 사용하시는 분들도 인터페이스가 완전히 다르지 않기 때문에 해당 글을 참고하셔서 세팅을 진행하실 수 있을 것입니다. (세팅환경 정보) OS : Mac OS Monterey 12.5.1 IntelliJ : 2022.2.1 (Ultimate Edition) 우선 설치했던 intelliJ를 실행합니다..
(이미지 변환) HEIC 파일을 jpg로 변환하기
(이미지 변환) HEIC 파일을 jpg로 변환하기
2022.04.08아이폰에서 사진을 촬영하면 저장공간을 절약하기 위한 HEIC 확장자로 파일이 저장됩니다 (옵션을 통해 바꿀 수 있다고 들었습니다). 하지만 이 확장자의 가장 큰 문제는 우리가 일반적으로 다루는 이미지 파일(jpg, jpeg, png 등)과 많이 다르다는 것입니다. 대표적인 예시로 카카오톡에서 HEIC 확장자로 된 이미지 파일을 전송하면 사진으로 표현되지 않고 이렇게 파일의 형태로 나타납니다. 물론 이 파일을 그대로 다운로드해서 갤러리로 보면 동일하게 이미지를 볼 수 있습니다. 최근에는 안드로이드도 HEIF라는 유사한 확장자를 지원하여 호환되지만, 위와 같이 카카오톡도 그렇고 해당 이미지를 업로드하는 서비스나 웹페이지의 경우에는 HEIC 확장자를 지원하지 않는 경우가 많습니다. 그렇기 때문에 가장 편한방법..