Programming 38

[Project / Collabit] 우리 프로젝트에 Redis를 적용해야 하는 이유

작년에 토스 면접을 준비하며 Redis를 처음 접했습니다.프로젝트에 적용해보고 싶었지만 소규모인데다 시간이 부족해 적용하지 못했던 Redis를 이번 프로젝트에 적용해보게 되었습니다.어떤 기술을 프로젝트에 사용할 때는 그 기술을 사용하는 당위성이 필요하다고 생각합니다.왜 많은 기술 중 Redis를 고르게 되었는지, 왜 프로젝트에 이 기술을 적용해야 하는지 정리해보려 합니다.01 Redis란?Redis(Remote Dictionary Server)는 고성능 키-값 저장소로, 오픈 소스 기반의 NoSQL 데이터베이스입니다.데이터의 빠른 처리를 위해 메모리에 데이터를 저장하고, 필요에 따라 디스크에 데이터를 지속적으로 저장하여 데이터 손실을 방지합니다.다양한 데이터 타입을 지원하며, 캐싱, 세션 관리, 메시지 ..

Programming/Project 2025.01.19

[SSAFY] SSAFY 1학기를 마무리하며, 1학기 회고

싸피 12기로 입과하고 어느덧 5달이라는 시간이 지났다.1학기가 끝난 뒤의 나는 어떤 모습일까 걱정 반 기대 반이었는데이제 2학기를 앞두고 방학을 보내고 있다니 기분이 이상하다.7월부터 지금까지 싸피에서 있었던 일들을 정리해보며 한 학기를 마무리해보고자 한다.12월 현재의 기억이라 약간의 왜곡은 있을지도…7월01 임시반아는 사람 한 명 없던 싸피에서 처음 친해진 사람들.첫 팀 프로젝트 구성원 모두가 좋아서 오랜만에 팀플이 재미있었다.그뒤로 한 학기 동안 알고리즘 스터디를 함께 할 정도로 좋은 사람들을 만났다.02 자치회싸피 자기소개서에도 적었듯이 자치회 활동이 하고 싶었다.임시반 마지막날 소규모 회식자리에서 맞은편에 앉았던 오빠와 마침 같은 반이 되었다.그 자리에서 자치회 하고 싶은 사람!을 물었을 때 ..

Programming/SSAFY 2024.12.12

[백준/Java] 2933번 미네랄

1. 문제 이 문제는 그래프 탐색을 기반으로 한 구현문제이다.동굴의 미네랄을 파괴하며 클러스터가 분리되면새롭게 생성된 클러스터를 아래로 떨어뜨리는 문제이다. 2. 풀이 문제를 이해하기 위해서 해야 하는 일을 순서대로 정리해보았다. 1. 동굴 입력 받기2. 높이와 막대 던지는 방향 확인해서 미네랄 파괴하기3. 파괴된 미네랄 주변 클러스터 분리 여부 확인하기4. 분리된 클러스터를 아래로 떨어뜨리기5. 2 ~ 4번 반복하기6. 최종 미네랄 모양 출력하기 1. 동굴 입력 받기동굴을 char[][] 배열로 입력 받는다.'x'는 미네랄이고 '.'은  빈 공간이다. 2. 높이와 막대 던지는 방향 확인해서 미네랄 파괴하기가장 아래가 1층이므로 높이 h가 주어졌을 때 r - h로 해당 층 좌표를 구할 수 있다.던지는 방..

[SSAFY 12기] 싸피 12기 최종 합격, 비전공자 에세이부터 면접까지

- 2024년 4월 22일(월) ~ 5월 7일(화) 17시 : 지원서 접수- 2024년 5월 8일(수) ~ 5월 18일(토) : 에세이 제출- 2024년 5월 11일(토) 10시, 13시, 16시 SW적성진단(비전공자)- 2024년 5월 19일(일) 11시, 15시 코딩테스트(전공자)- 2024년 5월 28일(화) 15시 인터뷰 대상 발표- 2024년 6월 5일(수), 7일(금) 인터뷰(전공자)- 2024년 6월 10일(월) ~ 12일(수) 인터뷰(비전공자)- 2024년 6월 19일 15시 최종 합격 발표  지원서 접수부터 SW 적성진단은 이전 게시물에.... https://jemarque.tistory.com/entry/SSAFY-12%EA%B8%B0-%EC%8B%B8%ED%94%BC-12%EA%B8%..

Programming/SSAFY 2024.06.20

[백준/python] 1074번 Z

1. 문제 이 문제는 배열을 한 변의 길이가 2 ** n인 배열을 Z 모양으로 탐색하며r행 c열을 몇 번째로 방문하는지 출력하는 프로그램이다.r과 c, 그리고 순서 모두 0부터 시작한다. 2. 풀이재귀적으로 접근하기! 4등분을 반복한다!1. 만약 size가 1이 될 경우 ans는 start로 초기화한다.2. size가 2 이상인 경우 배열을 4등분하여 r과 c가 어디에 위치하는지 확인한다.3. 해당 사분면에 대해서 r과 c의 값을 갱신하고 해당 조각의 가장 왼쪽 위가 몇 번째인지를 구한다.4. 위와 같은 방법으로 find 함수를 반복한 뒤 ans를 출력한다. 3. 코드import sysinput = sys.stdin.readlinedef find(start, size, r, c): global an..

[백준/python] 1927번 최소 힙 - heapq 기능 정리

1. 문제우선순위 큐, 힙큐를 활용하여 풀어야 하는 문제. 2. 풀이heapq의 기본적인 동작, heappush와 heappop만 활용하면 되는 문제이다. - heapq.heappush(배열 이름, 원소)- heapq.heappop(배열 이름) 이 두 가지만 알면 이 문제를 쉽게 풀 수 있다.단, 평소에 사용하던 기본 리스트나 deque의 사용법과는 좀 달라서 주의가 필요하다. 3. 코드import heapqimport sysinput = sys.stdin.readlinen = int(input())arr = []for i in range(n): x = int(input()) if x == 0: if len(arr): print(heapq.heappop(arr)..

[백준/python] 18110번 solved.ac

1. 문제이 문제는 주어진 문제의 난이도를 절사평균으로 구하는 문제다.위아래 15%를 제외하고 평균을 계산하되, 정수가 아닌 경우 모두 반올림한다. 2. 풀이python의 내장 함수 round는 사사오입이 아니다.우리가 일반적으로 알고 있는 반올림은 사사오입.4 이하는 버리고 5 이상은 올리는 반올림이다.그러나 python의 round는 오사오입이다.5 미만과 5 초과를 기준으로 버림과 내림을 실행한다.5일 경우에는 짝수냐 홀수냐에 따라서 결과가 달라진다.즉, 이 문제에서는 python의 내장함수 round를 사용해서는 안 된다.1. n을 입력 받아서 만약 0명일 경우 난이도 0을 출력한다.2. 일반적인 반올림을 하기 위한 함수를 만든다.3.  score을 입력 받고 절삭할 인원수를 반올림하여 찾는다.4..

[Frontend Mentor] FAQ Accordion main 아코디언 페이지

오늘 도전한 과제는 FAQ 아코디언 페이지다.질문 옆에 있는 + 버튼을 누르면 자세한 내용이 나온다. 시맨틱한 Html를 작성하기 위해 아이콘 부분은 img가 아닌 div로 태그를 정했다.백그라운드 이미지로만 해당 아이콘들을 넣었다. 자바스크립트 코드를 추가하여 플러스 버튼을 누르면 hidden을 사라지게 하여아코디언을 구현할 수 있었다. 이번에 새롭게 다루어본 css는 배경이미지와 배경색을 한 번에 넣는 것.먼저 배경이미지를 넣고 그 뒤에 no-repeat, 색상 이름을 쓰면 끝!그럼 배경이미지의 크기를 넘어가는 부분은 해당 색상이 보인다. 이번에도 모바일과 데스크톱이냐에 따라 다른 ui를 적용하여반응형디자인으로 개발을 완료했다.다 만들고보니 글씨가 조금 작은 것 같기도...? 지금 연달아 3개는 오직..

Programming/Project 2024.06.03

[Frontend Mentor] Social Links Profile 소셜 링크 프로필 완성

약 1시간 걸린 작업.소셜 링크 프로필을 만들었다!  이번에는 반응형은 아니다.지난번에는 가이드라인을 뒤늦게 발견해서 바로 적용을 못했는데이번에는 스타일 가이드라인을 따라서 스타일링을 했더니보다 빠르게 작업을 완료할 수 있었다. https://seon318.github.io/frontend-mentor-challenges/social-links-profile-main/ Social links profileJessica Randall London, United Kingdom "Front-end developer and avid reader." Github Frontend Mentor LinkedIn Twitter Instagramseon318.github.io 지난번 프로젝트와 달리 오늘 추가해본 것은,:..

Programming/Project 2024.05.31

[백준/python] 20665번 독서실 거리두기

1. 문제 독서실에서 원하는 자리를 이용 가능한 시간을 구하는 문제다.1, 2번 규칙에 따라 새로 온 사람이 이용하는 좌석을 파악해 문제를 해결해야 한다. 2. 풀이1. 0900 ~ 2100 이라는 숫자로 나오지만 이걸 분 형태로 바꿔주어야 계산이 편함 (아니면 9시 ~ 10시가 100분이 됨..!)2. 사람들이 선호하는 좌석을 구하는 함수 만들기3. heapq를 사용하여 새로운 사람이 오면 추가하고 visited를 True로 바꾸어주기4. 정답은 720에서 시작해서 자리를 사용할 수 없는 시간 만큼 빼기1. max_dist, best_seat 변수 초기화2. 1부터 n+1까지 돌려서 각각 좌석 번호에 대하여, 이미 방문하지 않은 경우에만 실행3. left_dist, right_dist를 무한대로 초기화..