P-프로젝트(S3 Presigned URL 적용, Spring)
·
회고록/S3
서론해당 포스팅은 P-프로젝트를 진행했을때 프로필, 게시글 이미지 업로드를 위하여 S3를 사용했을때, Presigned URL 방식을 적용하여 업로드 속도 및 보안 측면에서의 이점을 가져왔었던 내용으로 작성해보려고 한다.S3 이미지 업로드먼저 Presigned URL 방식에 대해 얘기해보기전에, S3 업로드 방식에 대한 내용을 다루어보겠다.AWS S3는 AWS Simple Storage Service의 줄임말로, 말 그대로 아마존에서 제공해주는 파일 서버의 역할을 하는 서비스라고 생각해주면 될거같다. 별도로 파일을 저장해주기에 개발자가 따로 용량을 추가하거나 성능을 높이는 작업을 최소화 할 수 있도록 도와준다아래는 내가 노션에 문서화했던 S3 초기 설정 내용이다Presigned URL 이란 ?모든 객체는..
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)
·
회고록/JWT
서론해당 포스팅은 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); ..