반응형

전체 글 91

[LeetCode] 9. Palindrome Number #Easy #Java

문제Given an integer x, return true if x is a palindrome, and false otherwise.예제 1Input: x = 121Output: true// Explanation: 121 reads as 121 from left to right and from right to left.예제2Input: x = -121Output: false// Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.예제3Input: x = 10Output: false// Explanation: Reads 01 from right ..

QueryDSL을 사용해보자

QueryDSL이 뭐야? 자바 및 코틀린에서 객체지향적으로 SQL / JPQL 쿼리를 작성할 수 있도록 돕는 쿼리 빌더 라이브러리다.작성자는 동적 쿼리를 처리하기 위해 QueryDSL을 도입했다. 가령 공지사항에서 게시물을 조회할 때 사용자는 제목 조건을 포함하여 조회할 수도 있고, 포함하지 않을 수도 있다.이러한 상황을 처리하기 위한 것이 동적 쿼리이다.JPA에서도 Criteria API를 제공하여 동적 쿼리를 처리할 수 있게 하지만 문법이 굉장히 복잡하다.코드 유지보수성도 개발에 있어 굉장히 중요하기 때문에 다른 방안이 필요했다. SQL Mapper Framework MyBatis를 통해 동적 쿼리를 처리할 수도 있다.현업에서는 아마 MyBatis를 더 많이 쓸 것이다.그 이유로는 직접 SQL을 작성..

개발/스프링 2025.02.15

리액트 - 화면 개발(feat.Material UI)

Overview - Material UIMaterial UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.mui.comUI는 위 사이트에서 컴포넌트를 가져다 썼다.원래 쌩으로 CSS 건드려서 만들어 보려고 했는데, 이쁘지도 않고 너무 시간이 많이 투입되었다.디자인도 디자인인데 UI 라이브러리 사용여부에 따라 생산성 차이가 정말 크다는 걸 실감했다. 최초 접속 시 로그인 페이지를 노출한다.계정이 없을 경우 회원가입을 할 수 있도록 한다.※ 개선사항 - OAuth 2.0 구글/카카오 로그인 ..

개발/리액트 2025.01.29

젠킨스로 CI/CD 파이프라인을 구축해보며 남은 것들

요런 구조로 무중단 배포를 위한 CI/CD 파이프라인을 구축하였다. 과정을 간단하게 살펴보자우분투 서버에 도커, 도커 컴포즈 설치우분투 서버에 젠킨스 설치 우분투 서버 SSH 키 등록SSH 키를 생성하여 공개키는 authorized_keys 파일에 등록하고, 비밀키는 젠킨스 자격증명에 추가해야 한다.  깃허브 웹훅 설정 도커파일, 도커 컴포즈 파일, 파이프라인 스크립트 작성 ssh 사용자명@서버_아이피참고로 위 명령어를 통해 비밀번호 입력 없이 ssh에 접속이 된다면, 정상적으로 키가 등록된 것이다.  나를 힘들게 한 이슈들1. 오라클 클라우드 프리티어 인스턴스의 부족한 메모리 용량 젠킨스를 빌드하는데 계속해서 서버가 멈춰서 OCI 콘솔에 접속하여 서버를 재시작하는 과정을 계속 거쳤어야 했다. 처음에는 ..

개발 2025.01.19

클라우드에 도커 환경을 구성하자

도커 파일과 도커 컴포즈 파일을 다시 어떻게 작성해야 할지 머리가 복잡했는데, 그럴 필요가 없었다. 작성자는 예전에 이미 도커파일과 도커컴포즈 파일을 작성했었다.도커의 장점 중 하나는 이식성이 좋다는 점이다. 다시 말해 도커만 깔려 있다면 호스트 OS에 상관없이 같은 파일에 대해서 동일한 결과를 기대할 수 있다는 것이다. 물론 IP라던가 application.yml 등 환경설정 값들은 조금 신경 써야 한다. 설치부터 테스트까지도커 설치# 도커 설치sudo apt updatesudo apt install -y docker.iosudo systemctl start dockersudo systemctl enable docker 도커 컴포즈 설치# 도커 컴포즈 설치sudo curl -L "https://gith..

개발/도커 2025.01.07

우분투 서버에 프로젝트를 배포해보자

필요한 것들스프링 애플리케이션을 구동시키기 위해 서버에 설치해야 할 것들 목록은 일반적으로 다음과 같다.JDK톰캣데이터베이스필요할 경우 Node.js나 젠킨스 등을 설치하면 된다. 일단 수동 배포할 거니깐 필수로 필요한 목록만 설치할 것이다.본인은 스프링 부트를 통해 JAR 파일을 배포할 예정이므로 내장 톰캣이 포함되어 있기 때문에 JDK와 데이터베이스만 설치할 것이다 JDK 설치# 우분투 저장소 내 패키지 목록 갱신sudo apt update# JDK 설치sudo apt install openjdk-17-jdk# JDK 환경설정 등록sudo vi /etc/environmentJAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"# 수정된 환경설정 반영source /etc/e..

개발 2025.01.04

최근 방문한 맛집들(~2024) #최강해물칼국수 #큰집닭강정 의정부점 #사쿠라멘

미루고 미루다 2025년 첫날에 올리게 되었다.사실 오라클 클라우드 수동 배포하려고 각 잡고 모니터 앞에 앉았는데 바로 딴짓하러 와버린 것이다. 최강해물칼국수동두천 송내동에 위치한 곳이다.바지락 칼국수 주문했는데 바지락도 많고 맛있었다.그런데 사실 여기는 칼국수보다 김치가 맛있어서 생각이 나는 곳이다. 주차 공간도 넉넉해서 좋다.동두천 들리면 이따금씩 오게 되는 곳이다.  최강해물칼국수 : 네이버방문자리뷰 706 · 블로그리뷰 203m.place.naver.com 큰집닭강정 의정부점장암동 발곡중학교 맞은편 건물 뒤쪽에 위치해 있는 곳이다.금요일 퇴근길에 포장 주문했는데 너무 일찍 도착해서 매장에서 조금 기다렸는데 주문량이 엄청 많았다. 사장님이 바뀌셨는지는 모르겠지만 여기는 고등학생 때부터 친구랑 들러..

맛집 2025.01.01

아직도 젠킨스를 안 써본 사람이 있다고? #설치 #빌드

젠킨스를 안 써본 사람? 바로 나다. 구직 시기에 CI/CD 파이프라인을 미리 경험해 보자는 생각을 갖고 있었는데, 아직까지도 해본 적이 없다. 😱늦었을 때가 가장 늦은 법. 지금이라도 한 번 해보고자 한다. 많고 많은 프로그램 중 왜 젠킨스를 사용해?CI/CD를 제공하는 서비스에는 깃허브 액션, 뱀부, 젠킨스 등이 있다.뱀부는 유료라서 컷. 그럼 깃허브 액션과 젠킨스만 남게 된다. 구글링을 해보니 깃허브 액션은 굉장히 깃허브에 종속적이어서 단순하면서도 간편하게 관리를 할 수 있다. 또한 리소스에 따라서 유료가 될 수도 있다. 반면 젠킨스는 다소 어렵지만 유연하고, 완전 무료라는 장점이 있다. 또한 굉장히 오래된 서비스여서 레퍼런스도 많다. 결론적으로 도커 이미지 기반의 젠킨스를 결정했다. 대규모 프로..

개발 2025.01.01