SOPT 36기 YB 서버 합격
·
일상
들어가며Leets 4기 수료일단 2025년 2월, Leets에서 3기로 시작해서 4기까지 수료한뒤 개인적으로 정말 많이 성장했다고 느꼈다개발과 협업과 관련해서 아예 제로베이스였지만, Leets에서 활동하면서 전체적인 프로젝트 협업의 흐름 자체를 배울 수 있었고, JAVA와 Spring에 대해 기본적인 내용들부터 다른 부분들까지도 너무 많이 배우게 되어서 너무 고마운 마음을 가지고 있는 상태이다SOPT 지원동기Leets가 끝난뒤 연합동아리인 SOPT 에 지원하고 싶었던 이유는 여러가지가 있었지만 첫번째로, 여러 사람과 새로운 네트워킹을 하고싶다는 생각이 들었다개발을 진행하면서 고민되는 부분이 있고 해결 방안이 막막할 때 함께 얘기하면서 경험을 공유하며 인사이트를 넓히는 것이 중요하다고 생각한다. 트러블 슈..
백준(1253번, 좋다, 골드IV)
·
알고리즘
문제 내용제출한 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int N = Integer.parseInt(br.readLine()); // 입력받은 값들을 N 개의 숫자를 공백 단위로 나누어 배열에 저장 int..
Weeth(출석 마감 자동화, 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보다는..
프로그래머스(입국심사, LV3)
·
알고리즘
문제 내용제출한 코드import java.util.*;public class Solution { public static long solution(int n, int[] times) { long answer = 0; Arrays.sort(times); long l = 0; long r = (long) n * times[times.length - 1]; while (l 후기문제 요구사항에도 나와있듯이, 모든 사람을 빠르게 심사해야 했기 때문에 “심사받는 시간을 최소로” 만드는 것이라는 조건과, 추가적으로 한 심사대에는 동시에 한 명씩만 심사를 받을 수 있다 ” 와 “ 가장 빨리 비는 심사대로 가야 한다 ”는 조건들도 있었다위의 여러 조건 ..
P-프로젝트(JWT 를 통한 인증/인가, Spring)
·
회고록
서론해당 포스팅은 P-프로젝트를 진행하면서 진행했었던, Spring Security에서 사용되는 JWT 인증/인가 에 대해 작성해보겠다Spring Security는 애플리케이션에서 인증/인가 에 대한 설정을 편리하게 도와주는 역할을 해준다위 사진들을 보면 알 수 있듯이, Filter는 클라이언트의 요청이 서버에 도달하기 전에 실행되어 JWT 토큰의 유효성을 검사하고, 해당 토큰에 기반한 사용자 인증을 수행한다  따라서 Filter 가 하나의 영역에서 인증 인가를 수행하는 " 단위 " 라고 봐주면 될거같다 1. 사용자 토큰 검증을 통한 인증/인가 를 수행하는 JWT Filter 를 만들어서 유효성 검사(토큰이 유효하지 않거나 존재하지 않는 경우, 예외를 발생)2. 인증 성공시, 검증된 토큰을 기반으로 사용..
프로그래머스(오픈채팅방, LV2)
·
알고리즘
문제 내용 제출한 코드import java.util.*;public class Solution { static public List solution(String[] record) { List answer = new ArrayList(); HashMap info = new HashMap(); Queue queue = new LinkedList(); for(String r : record) { String input = r.split(" ")[0]; String uid = r.split(" ")[1]; if(input.equals("Enter")) { String na..
P-프로젝트(스왑 메모리, DevOps)
·
회고록
서론이번 회고는 서버의 메모리 부족 문제를 해결하기 위해 Swap 메모리를 생성하고 적용한 경험에대해 작성해보려고 한다.P프로젝트를 진행하면서 Github Actions, EC2, RDS, 도커를 이용해서 CICD를 구축했었는데, 당연히 유료는 대학생 입장에서 너무 부담스러웠었기에 AWS 프리 티어를 사용했었다. t2.micro 인스턴스는 1GB RAM만 제공하는데, 여러 가지 서비스를 동시에 돌리다 보면 메모리가 부족해서 서버가 자동으로 다운되는 문제점이 있었다문제점 위 사진의 내용처럼 CPU 사용량이 100%에 가까워지게 되면서, CPU의 모든 크레딧이 소진되어 네트워크 출력이 0이 되어서 서버가 자동적으로 다운됐던 것이다. 해당 문제를 해결하기 위해 난 스왑 메모리를 설정하여 이를 해결했는데, 해당..
백준(2751번, 수 정렬하기 2, 실버V)
·
알고리즘
문제 내용제출한 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int numCount = Integer.parseInt(br.readLine()); List numbers = new ArrayList(numCount); ..
가치택시(무한 스크롤, Spring)
·
회고록
서론이전에는 무한 스크롤에 대해서 weeth에서만 구현되어있는 형태만 봤었고, 직접 구현해본 경험은 없었다. 이번 프로젝트를 통해 처음 무한 스크롤을 적용하면서 백엔드 페이징 방식 선택, API 요청 최적화 등등 의 개념과, 무한 스크롤으로 구현을 해야하는 이유, 무한 스크롤의 개념 등을 세세하게 공부했었다먼저 무한 스크롤을 구현해야하는 이유는 무엇일까?첫번째로 프론트엔드에서 원활한 데이터 로딩을 도와줄 수 있다. DB 측면에서 대량의 데이터를 제공하는 서비스에서는대량의 데이터를 한 번에 불러오면 성능 저하가 발생할 수 있고, 사용자 기기의 리소스를 과도하게 사용할 위험이 있다. 따라서 무한 스크롤을 구현하면 초기 로딩 시 필요한 데이터만 가져오고, 이후 사용자의 스크롤에 따라 추가 데이터를 동적으로 불..