728x90

IT 40

orElseThrow로 코드 가독성을 높이자

회사에서 프로젝트 진행시 Optional 객체의 유무를 판단하고 예외를 처리하기 위해 if문을 사용했다 그러다가 개인 스터디에서 다른 분들이 orElseThrow를 사용하는 거를 보고 코드의 가독성이 높다고 생각하게 되었다 아래 if문을 쓸 때와 orElseThrow 사용할 때 코드를 비교해 보면, 예시 코드 public class NoticeService { // if 사용 public void remove(Long noticeId) { // select Optional noticeResponse = noticeMapper.findById(noticeId); // 예외처리 if(noticeResponse.isEmpty()){ throw new NoticeNotFoundException(); } if (..

IT/java 2023.08.30

[ github ] 원격 저장소 연결 및 끊기 (git remote)

git 에서 default_project를 clone 받은 후, 다른 레파지토리에 push 하려고 한다 연결되어 있는 git 을 어떻게 끊을까? 연결된 저장소 확인 git remote -v 터미널에서 git remote -v 를 입력하면 아래 연결된 저장소가 뜨는걸 확인 할 수 있다 연결된 저장소 끊기 git remote remove origin git remote remove origin 후 git remote -v 하면은 연결된 저장소가 없는거를 확인 할 수 있다 저장소 연결 저장소 연결이 끊어진 프로젝트를 새로운 저장소에 연결할려면 우선 깃에서 레파지토리를 하나 만들고, git remote add origin [저장소 url] git remote add origin [저장소 url] 후 git re..

IT/github 2023.08.29

[aws] RDS timezone 변경하기

aws RDS 시간 변경 순서 파라미터 그룹 생성 -> 파라미터 그룹 설정 변경(timezone 변경) -> 해당 DB에 생성한 파라미터 그룹 설정 1. 파라미터 그룹 생성 우선 aws 접속 후 RDS 서비스로 이동한다 왼쪽 메뉴에서 파라미터 그룹에 들어간다 기본값 탭을 클릭하면 default 파라미터가 있는것을 확인할 수 있다 default 파라미터는 변경이 불가능하기 떄문에 파라미터 그룹에 새로 생성해 주어야 한다 기본값 옆에 사용자 지정 탭 클릭 파라미터를 생성한 적이 없다면 아래에 파라미터 그룹에 아무것도 안 뜰것이다 파라미터 그룹 생성 버튼을 눌러준다 파라미터 그룹 패밀리에는 본인이 사용하는 데이터베이스를 넣는다 혹시 사용하고 있는 데이터베이스를 모른다면 파라미터 그룹에서 기본값 -> defau..

IT/aws 2023.08.28

mysql 외부 접속시 connection locked 현상 (Unblock with 'mysqladmin flush-hosts' 에러)

배포되어 있는 사이트에서 갑자기 로그인이 안됬다 로그를 보니 이렇게 나와있다 Host '' is blocked because of many connection errors; Unblock with 'mysqladmin flush-hosts' mysql과 연결이 비정상적으로 끊어지면, 해당 횟수를 카운트하여 global max_connect_errors 에 지정된 값을 넘기면 자동 블럭킹처리 된다 해결방안 mysql에 접속 mysql - u root - p max_connect_errors 카운트 확인 select @@global.max_connect_errors; max_connections 카운트 확인 select @@global.max_connections; 에러 카운트 초기화 flush hosts;..

IT/db 2023.08.24

slack으로 오류사항 받기 2 (slack api)

slack으로 오류사항 받기 1 (slack api) 에서 테스트 연동을 하고 이제 프로젝트에 적용해본다 controllerAdvice @RestControllerAdvice @RequiredArgsConstructor public class ControllerAdvisor { private final SlackService slackService; @ExceptionHandler(Exception.class) public void SlackErrorMessage(Exception e){ slackService.sendErrorForSlack(e); } @ExceptionHandler(PasswordEmailSendException.class) public ResponseEntity passwordEma..

IT/slack 2023.08.14

slack으로 오류사항 받기 1 (slack api)

코드에서 오류를 슬렉 알림으로 받고자, 프로젝트에 연결할려고 한당 1. slack 워크스페이스 개설 요 부분은 자세한 내용은 패스 2. 메세지를 받을 채널을 추가해준다 채널명 backend-error로 만들어줌 ( 마음대로 만들면 됨 ) 3. slack api https://api.slack.com/apps Slack API: Applications | Slack Your Apps Don't see an app you're looking for? Sign in to another workspace. api.slack.com Create an App 클릭 From scratch 선택해준다 App Name과 그 밑에 연결할 워크스페이스를 선택해준다 나는 App Name는 Error Service로 함 앱이 ..

IT/slack 2023.08.10

젠킨스 - 슬랙 연동

깃에 push 하면 젠킨스로 자동 빌드 되도록 CI/CD 구축해놨는데, 빌드 성공여부를 일일히 젠킨스에 접속하기는 확인하는건 귀찮고 해서 슬랙이랑 연동을 하기로 했다 1. 슬랙 워크스페이스 및 채널 생성 새 워크스페이스 개설 버튼 클릭 개설시 워크스페이스 이름은 마음대로 하면 된다, 물론 채널 이름도 마음대로 해도 되지만 젠킨스랑 연동하기 위해 만들었으니, jenkins로 해주었다 2. Jenkins CI 설치 다른 블로그 보는데 Jenkins CI를 어디서 설치해야하는지 못 찾아서 한참 찾음 jenkins 채널을 클릭하면은 사이드바 말고 오른쪽 영역 위에 채널 이름이 뜨는데 그거를 클릭하면은 밑의 창이 뜬다 통합 -> 앱 jenkins로 검색, Jenkins CI 설치해준다 설치 후 구성 클릭하고 Sl..

IT/etc 2023.08.08

[Thymeleaf] 타임리프 문법 정리

타임리프는 스프링 부트에서 공식적으로 지원하는 View 템플릿이다 타임리프 장점 - 코드를 변경하지 않기 때문에 서버팀과 퍼블팀 간의 협업이 편해진다 - JSP와 달리 Servlet Code로 변환되지 않기 때문에 비즈니스 로직과 분리되어 오로지 View에 집중할 수 있다 - 서버상에서 동작하지 않아도 되기 때문에, 서버 동작 없이 화면을 확인할 수 있다, 더미 데이터를 넣고 화면 디자인 및 테스트에 용이하다. (서버가 구동하지 않는 경우 정적 컨텐츠) 타임리프 적용방법 메이븐 org.springframework.boot spring-boot-starter-thymeleaf 그래들 build.gradle implementation 'org.springframework.boot:spring-boot-sta..

IT/etc 2023.01.01
728x90