- [소프티어] 출퇴근길2025-02-03 20:52:08https://softeer.ai/practice/6248 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 그래프 알고리즘에 DFS 알고리즘을 사용하면 될 것이라고 생각했고, 제약조건이 N 200,000 이기 때문에 시간복잡도 O(N + M)으로 충분히 효율적인 풀이 방법이라 생각했다. 하지만 그래프 구현까지만 가능했고, dfs를 통해 어떻게 방문을 했는지 헤매게 되어 결국 정답을 보았다. 검색한 코드import java.io.*;import java.util.*;public class Main { private static int N,M,S,T; private static List> graph = new ArrayList(); private static Lis..
- [트러블 슈팅] 갑자기 사라진 Redis2025-02-03 12:06:04기존에 잘 동작하던 개발 서버에서 Redis와 관련된 API 들이 동작하지 않는 것을 확인하게 되었다.오류를 확인해보니 Redis 오류인 것을 확인하였다.2025-02-03T01:31:34.427Z ERROR 1 --- [Eighteen_BE] [http-nio-8080-exec-22] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.data.redis.RedisConnectionFailureException: Unabl..
- Record를 DTO로 사용하는 이유가 뭔가요?2025-02-03 11:02:27Record는 Java 16에서 정식 출시된 특별한 유형의 클래스로 불변성(Immutable) 을 기본으로 합니다.기존의 클래스와 달리 모든 필드가 final 키워드로 선언되며, 객체 생성 후 변경할 수 없습니다. 또한 필드 선언만으로 자동으로 생성자, getter, equals(), hashCode(), toString() 등 메서드를 자동으로 생성해 주어 보일러 플레이트 코드를 줄일 수 있습니다. 이러한 특성으로 인해 멀티 스레드 환경에서 데이터가 의도치 않게 변경되지 않고 안전하게 전달할 수 있습니다.// 기존 클래스 기반 DTOpublic class MemberDto { private final String name; private final String email; private final in..
- [트러블 슈팅] FCM 오류 해결(2024.11.29)2025-02-02 21:37:19현재 fcm 연결 후 로컬 환경에서 제대로 동작되는지 확인을 했고, 알림이 제대로 전송되는 것을 확인했다.이제 배포서버에 적용하기 전 개발서버에서 테스트를 해보려 하는데This browser doesn't support the APIs required to use the Firebase SDK 에러가 발생 뭐가 문제인지 모르겠어서 여러 정보들을 찾아보니 FCM이 적용 안되는 브라우저일 경우 해당 오류가 뜰 수 있다는 것을 찾았다. 하지만 그 원인은 사파리 같은 브라우저에 해당되기 때문에 현재 크롬을 쓰고이는 우리에게는 의미가 없었다. 해당 오류에 대한 정보가 없어서 FCM 공식 홈페이지 를 찾아본 결과 다음과 같은 정보를 알게 되었다. localhost 또는 https에서만 지원된다는 것을 알게 되었..
- HTTPS에 대해서 설명해주세요.2025-01-31 10:19:01HTTP(Hypertext Transfer Protocol) 는 클라이언트와 서버 간 통신을 위한 통신 규약입니다.하지만, HTTP는 암호화되지 않는 평문 데이터를 전송하기 때문에 제 3자가 정보를 조회할 수 있다는 위험이 있습니다.이를 해결하기 위해서 HTTPS가 등장했습니다. HTTPS(Hyertext Transfer Protocol Secure) 는 HTTP에 데이터 암호화가 추가되었습니다.암호화된 데이터를 전송하기 때문에 제 3자가 볼 수 없도록 할 수 있습니다.HTTPS는 어떻게 적용할 수 있나요?HTTPS를 적용하기 위해서는 인증된 기관(Certificate Authority, CA)에게 인증서를 발급받아야 합니다.CA에 인증서를 요청하면 CA 이름, 서버의 공개키, 서버의 정보를 활용하여 인..
- WAS와 웹 서버의 차이점은 무엇인가요?2025-01-24 19:06:47웹 서버는 정적 컨텐츠(HTML, CSS, JS, 이미지 등)를 제공하는 역할을 수행합니다.동적 컨텐츠 요청 시 요청을 WAS로 전달할 수도 있습니다.대표적인 웹 서버로는 Apache, Nginx 등이 있습니다. 반면, 자바 진영에서 WAS(Web Application Server) 는 서블릿 컨테이너 기능을 제공하고, 동적 컨텐츠를 생성하거나, 애플리케이션 로직을 실행하는 데 특화되어 있습니다. 대표적인 WAS로는 Tomcat이 있습니다.정리하자면, 웹 서버는 정적 컨텐츠 제공에 특화되어 있으며, WAS는 동적인 컨텐츠 생성과 데이터 처리에 특화되어 있습니다.WAS도 정적 컨텐츠를 제공할 수 있는데 웹 서버가 따로 필요한 이유는 무엇인가요? 🤔WAS가 너무 많은 역할을 담당하면 과부화될 수 있습니다...
- [소프티어] 징검다리2025-01-24 19:04:53https://softeer.ai/practice/6293 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 다음 문제는 처음에 이중 반복문으로 쉽게 풀 수 있다고 생각했지만 현재 밟고있는 돌을 기준으로 다음 돌을 건너뛸 수 있기에 복잡하다 생각하였다. 일단 문제의 제약조건을 보면 N이 최대 3 x 10^3 이기 때문에 시간복잡도 O(n^2) 이 가능하다는 것을 알았다.알고리즘으로는 어떤 것을 사용해야 할지 고민하다가 현재 밟고있는 돌과 다음 돌을 밟았을 때의 카운트 크기를 비교하기 위해 dp를 사용하기로 했다. 전체 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] ..
- [소프티어] 성적평균2025-01-23 22:24:18https://softeer.ai/practice/6294#pop_user Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai이번 문제는 어려운 알고리즘이 존재하진 않았다고 생각하고 배울만한 점은 StringTokenizer 선언하는 위치에 대해 확실하게 알게된 점이랑 소수점 반올림 방식 중 String.format("%.nf", 숫자) 을 사용하여 소수점 n의 자리까지 표현 가능한 것을 배웠다. 전체 코드import java.io.*;import java.util.*;public class Main { private static int[] grades; public static void main(String[] args) throws IOException { B..