디스코드를 활용한 500 에러 알림 자동화 (Webhook)
·
Spring/Webhook
들어가며지금 해당 API 500 뜨는데 원인 알 수 있을까요지금 오류 로그 한번만 확인해주실래요 ??해당 API 500 뜨는데 원인이 뭘까요백엔드로 다른 파트와 개발을 진행하다보면, 플젝을 진행하면서 위와 비슷한 말들을 수도 없이 들었을 것이라고 생각한다. 물론 500 에러가 최대한 발생하지 않도록 세부적으로 예외처리를 최대한 처리해줘야 되겠지만, 비즈니스 로직단에서 잡을 수 없는 에러나 특수한 상황에서 발생하는 에러들은, 서비스단에서 예외를 던져주기보다는 GlobalExceptionHandler에서 처리되는 것으로 알고있다. 때문에 위처럼 커스텀되지 않은 상황에서의 에러는 500을 뱉게 된다 termius에 들어가서.... 서버 ssh 환경으로 들어간 뒤에.... dokcer 명령어를 입력해서.......
프로그래머스(가장 먼 노드, LV3)
·
알고리즘
문제 내용제출한 코드import java.util.*;public class Solution { static ArrayList[] list; static int[] visited; static int max = 0; public int solution(int n, int[][] edge) { initData(n, edge); return getAnswer(); } private void initData(int n, int[][] edge) { list = new ArrayList[n + 1]; visited = new int[n + 1]; max = 0; for (int i = 0; i (); ..
record class란 ? (JAVA)
·
CS/JAVA
들어가며위 사진은 내가 프로젝트를 진행하면서 사용했던 record 객체인데, DTO로 전송할 NoticeResponse에 선언해줬었다개인적으로 생각했을때 record에 가장 큰 특징이자, 장점은 불변 객체라는 특성이라고 생각한다 일단 record 파일에 대해 얘기하기 위해서는, 해당 내용을 먼저 알아야할거 같아서 불변객체에 대해서 먼저 다루어보겠다불변 객체 ?불변 객체란 ?객체 지향 프로그래밍에 있어서 불변객체는 생성 후 그 상태를 바꿀 수 없는 객체를 말한다. 사전적 정의는 위처럼 되어있는데, 그러면 JAVA에서는 불변 객체를 왜 사용해야 할까불변 객체의 장점먼저 오라클 공식 문서에 따르면 다음과 같이 적혀 있다“불변 객체는 당신이 고민하면서 만든 가변 객체보다 메모리를 더 효율적으로 적게 사용한다.”..
이모지 글자수 처리 (Spring)
·
Spring/Grapheme Cluster
서론과제내용SOPT에서 진행했던 1주차 과제의 내용이다. 요구사항에 맞춰서 세부적인 내용들까지 고민할 만한 부분이 많았었지만, 마지막 조건인 게시글 제목에 이모지 허용 및 1글자 계산에 대한 내용들을 구현하는데에는 문제는 없었던거같다고민한 내용추가적으로 고민했던 내용은 같이 SOPT에서 서버로 활동하고있는 근표와 얘기하다가 알게된 사실인데, 이모지가 👨‍👩‍👧‍👦는 길이가 11, 😁와 🇰🇷는 길이가 2 처럼 즉 결합된 형태가 있기에 각각 달라서 여러 글자로 인식된다는 사실을 알게되어 해당 부분을 구글링하며 추가로 학습하게되었다추가적으로 지피티한테도 검색해보고, 터미널에 해당 특수문자를 넣어보니 여러개의 결합된 이모지로 지워지는 것 또한 확인하였다JAVA에서는 BreakIterator가 gra..
final와 static, 그리고 static final의 차이점 (JAVA)
·
CS/JAVA
staticstatic 키워드를 가진 멤버는 값이 클래스의 모든 인스턴스에 대해 동일하다. 클래스가 모든 인스턴스가 액세스할 수 있는 전역 변수라고 볼 수 있지만, static 변수는 상수가 아니므로 언제나 변경될 수 있다는 특징을 가진다.finalfinal이 붙은 변수는 상수이므로 일반적으로 선언과 초기화를 동시에 한다. 하지만 인스턴스 변수의 경우 생성자에서 초기화할 수 있다는 특징을 가지는데, 그 이유는 인스턴스가 new 키워드로 힙에 생성될 때 처음엔 변수 타입의 기본값으로 할당된 후 각 인스턴스에서 설정한 값으로 초기화 되기 때문이다.static final변경할 수 없고 클래스의 모든 인스턴스에 대해 동일한 값을 설정할 때는 static final을 사용해주어야한다. static 키워드는 값이 ..
SOLID 원칙 (JAVA)
·
CS/JAVA
SOLID 원칙의 개념SOLID 원칙이란 ?객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 소개한 것이다.프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다.이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다.SRP (Single Responsibility), 단일 책임 원칙모든 클래스는 단 하나의 책임을 가져야 한다는 원칙으로, 코드의 재사용성. 즉, 유지보수의 도움을 줄 수 있는 원칙이다. 단일 책임 원칙의 정의를 “객체나 모듈은 변경하려는 단 하나 이유만을 가져야 한다”라고 말하기도 하는데, 객체나 모듈이 나중에 수정사항이 생길 때 오직 단 하나의 이유만으로 수정이 이뤄져야 한다는 뜻을..
Weeth(출석 마감 자동화, Spring)
·
Spring/자동화
서론출석기능3기, 4기에 함께 활동했던 개발 동아리 Leets는 매주 목요일 19시에 정기모임 시간을 가진다. 동아리의 원활한 운영을 위해 출석을 관리해줄 수 있는 기능이 필요했고, Weeth 출석 기능을 통해 매주 정기모임 전 4자리 출석 코드를 입력하여 출석을 진행하는 방식을 도입하여 운영되고 있었다. 동아리 원은 정기모임이 시작되기 전 출석 코드를 입력해야 하며, 입력이 정상적으로 이루어지면 출석이 인정된다정기모임이 끝난뒤, 마감된 출석에 대해서는 아래의 내용처럼 완료된 출석에 대해서 조회를 할 수 있도록 하는 기능 또한 구현되어있었다만약 정기모임에 출석하지 않는다면 아래의 사진처럼 패널티가 부여되고 3번의 패널티를 받으면 동아리 활동이 제한되도록, 성실하게 참여하는 멤버들에게 동기 부여, 원활한 ..
백준(1193번, 분수찾기, 실버V)
·
알고리즘
문제 내용제출한 코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int x = Integer.parseInt(br.readLine()); int count = 1, diagonal = 1; while (count + diagonal 후기해당 문제는 실버 5? 난이도 였었지만 체감상 실버 5보다는..