IT동아리에서 운영진으로 성장하기 - (2)
·
활동/cotato
운영진 (8, 9기: 2023.08 ~ 2024.08)8기엔 교육팀장을 9기엔 홍보팀원 (및 깍두기 … )으로 나름의 운영에 관여해 의견을 피력했다. 나는 어떻게 성장했지?우선, 내가 개발자로 성장하는 과정에서 어떻게 성장해왔는지에 대해 생각해봤다. 유의미한 깨달음을 얻고 변화한것은 이유와 더 나은 방법에 대해 고민하기 시작했을때부터였는데 아쉽게도 그 계기는 이곳이 아니었다. 사실 내가 깨달음을 얻고 성장하기 시작했던 계기는 'GDSC 자바 스터디' + '야놀자 특강' + '우테코 프리코스'였던 것 같다.이 활동을 하며 만난 사람들의 공통점은 하나 같이 아래와 같은 공통점이 있었는데‘개발’에 몰입하고 있다.정보를 공유하고 있다이 사람들과 함께하며 나도 몰입하고, 고민하게 되고 이야기를 나누며 변화하기 시..
IT동아리에서 일반 부원으로 성장하기 - (1)
·
활동/cotato
이번 주를 끝으로 1년 반 6,7,8,9기 총 1년 6개월을 활동한 코테이토를 마무리한다.활동을 마무리하며, 코테이토에서 내가 느끼고 했던 활동을 정리해보고자 한다. 들어온 이유3학년을 마쳐갈 당시 개발 관련 네트워크가 간절했다. 혼자서 이것저것 공부를 하고, 무작정 학교 공부를 열심히해도 프로젝트와 같은 실제 활용 경험이 없으니 시험기간이 지나면 까먹게 되는 것들이 많았다. 특히, 3-2 DB 수업 때 스프링을 처음 했는데 뭐 교수님이 많은 설명을 한 것 같지도 않은데 슥삭슥삭 해내는 사람들을 보며 “학교에서 분명 안가르쳐줬는데 왜 잘해 ??? 어떻게 해??” 이런 생각이 들었다. 이러한 갭을 극복하기 위해선 어떤 내용을 공부해야하는지, 어떤 프로젝트를 해야하는지 알기 위한 네트워크가 강하게 필요했다...
지속 성장 가능한 코드: import문도 코드이다.
·
프로젝트/COTATO.KR
지속 성장 가능한 코드: import도 코드어느 덧 9기가 끝나가며 자신있게 출시(?)한 프로젝트를 운영한지도 6개월이 되어간다.그냥 박치기로 시작했던 프로젝트를 운영까지 하고 있으니 리팩토링을 하거나 새로운 기능을 짤 때 ‘변경한 코드의 파급력’을 고려하지 않을 수가 없다.그렇다고 확장을 하지 않을수도 없는데, 크고 작은 기능이 추가되며 하나의 클래스에 메서드가 증가하고 의존성이 더해지며 코드가 복잡해지는데 기수가 끝나가는 하나의 전환점인 지금 아래와 같은 고민이 생긴다. 지금 우리의 프로젝트는 새로운 개발자가 와서 읽기 좋은 구조인가? 언젠가는 누군가가, 적어도 ‘홍보’ 관련 도메인은 가져가야하는데 이게 맞나 싶은 포인트가 생겨 고민이 드는 요즘이다.이게 맞나?import 문에 와일드 카드 사용을 하..
[백준 2073 수도배관공사 : Java] DP
·
Algorithm/백준 문제풀이
오늘은 지난 개블스 부원이 다룬 냅색 문제인 BOJ 2073번을 풀고 정리https://www.acmicpc.net/problem/2073문제 요약파이프를 일렬로 이어서 수도관을 하나 만든다.수도관 용량 := 연결된 파이프 중 용량이 최소인 파이프의 용량구할 값 := 길이가 D인 수도관 중 최대 수도관 용량 구하기조건 해석이 조금 어렵다. 특히 최대와 최소가 섞여있어서 구해야하는 값이 무엇인지 잘 이해가 되지 않았다.  알고리즘 생각하기: DP우선, 길이가 D인 수도관 중 최대 수도관 용량을 구하는 것이니 수도관을 추가하면서 정해지는 구할 값이 규칙적이라면, 점화식을 찾는다면 DP로 풀 수 있지 않을까? 하는 생각이 들었다.추가로 아래 이유 때문에도 DP이지 않을까 생각했는데 이는 그냥 개인적인 생각이니..
Refresh Token Rotation
·
프로젝트/COTATO.KR
일반적으로 인증과 인가를 구현할 때, AccessToken과 RefreshToken을 사용한다. 우리 프로젝트에서도 둘을 활용한 인증을 구현했는데 이번 글에선, COTATO 프로젝트의 인증, 인가를 구현하며 고민한 RefreshToken 탈취 문제와 관련된 내용을 정리하겠다.배경 지식해당 글을 위해선 인증과 인가, 토큰 인증 방식에 대한 이해가 필요한데 공부가 급하다면 우선은 아래와 같은 내용으로 이해하자. 인증 : 너가 너가 맞는지 확인하는 것인가: 너가 자격이 있는지 확인하는 것토큰: 서버의 부담을 덜기 위해, 사용자에게 입장권을 주고 입장권이 적절한지 확인하는 방식세션: 인증된 사용자의 목록을 서버에서 관리해 인증하는 방식AccessTokenAccessToken이란, 일반적인 웹 어플리케이션에서 사..
선착순 퀴즈 프로젝트 V1 회고
·
프로젝트/COTATO.KR
지난해 10월부터 진행한 선착순 CS퀴즈 프로젝트의 버전1이 마무리되고 이제 버전2를 운영 중이다.버전2에선 해당 사이트를 동아리 홍보 사이트, 운영 과정에서 부원 필요 기능 추가 등을 목적으로 확장 중에 있는데 보다 나은 버전2 개발 진행을 위해 프로젝트를 진행하며 느낀점, 리팩토링 과정에서 느낀 아쉬움과 운영 과정에서 필요를 느낀 내용에 대해 KPT 회고를 해보고자 한다.선착순 퀴즈 프로젝트란?사전에 등록된 문제에 대해 관리자가 실시간으로 문제 풀이가 진행된다. 이 중 가장 빠른 정답자를 득점자로 인정하고 이를 통해 우승자를 결정하는 프로젝트이다.기획 의도7, 8기 교육팀으로 활동하며 교육을 진행하고 CS퀴즈를 진행했다. 기존 기수엔 카카오톡 채팅방을 통해 아래와 같이 가장 빠른 정답자를 득점자로 인..
선착순 로직 개선기 (2) - Redis 분산락
·
프로젝트/COTATO.KR
지난 글에선, 낙관적 락을 사용하기, 테이블 구조 변경을 통해 선착순 제출 로직의 동시성 문제를 해결했다. 이 글에선 테이블 구조를 별도로 변경하지 않고 Redis의 분산락을 통해 문제를 해결해본 과정을 적을 예정이다.Redis를 통한 동시성 해결동시성 문제가 발생하는, 락이 필요한 부분은 ‘정답 제출’하는 득점자를 생성하는 과정이다.제출한 요청 중 ‘정답’으로 판별된 내용을 기준으로만 득점자를 파악하면 된다.따라서, 아래 득점자 확인 및 등록 로직에 대해서만 lock을 적용하면 된다.득점자 존재 여부를 확인한다.존재한다면, 본인이 더 빠른 요청일 경우, 존재하지 않으면, 본인을 득점자로 생성한다.Lettuce 분산락redis의 setnx 명령어를 통해 분산락을 구현할 수 있다.. 특정 키에 대한 va..
선착순 로직 개선기 (1) - 낙관적 락 활용
·
프로젝트/COTATO.KR
개요CS퀴즈 프로젝트의 핵심 로직은 ‘선착순’으로 가장 빠른 정답을 제출한 득점자를 확인하는 것이다.따라서, 여러 정답자 중에 가장 빠른 정답자의 득점 기록을 바탕으로 득점자를 생성해야한다.문제풀이의 기본적인 로직은 아래와 같다.관리자가 문제 풀이를 허용한다.부원들이 문제 풀이 신호를 확인한다.정답을 제출한다.정답 요청이라면, 득점자가 존재하는지 확인한다.득점자가 존재하지 않는다면, 해당 요청을 기반으로 득점자를 생성한다.하지만, 일반적인 로직을 통한 구현은 동시성 문제를 겪기 쉬운데 이 글에선 여기서 발생하는 동시성 문제와 해결책을 담은 예제를 통해 찾아보도록 하겠다.우선, 위에서 말한 로직을 간단하게 구현하면 아래와 같다.@Transactionalpublic ReplyResponse submitAns..
뜻이 맞는 사람
·
글을 써봐요/그냥 글
최근 모 부트캠프 면접을 봤다. 30분간 5명을 면접봤기 때문에 지원자마다 많은 시간이 할당되지는 않았다. 온라인 면접이다보니 나도 다른 지원자들의 답변을 들으며 면접에 참여했다.아무래도 부트캠프이다보니 나와 같이 공부할 사람들은 어떨까 하는 생각으로 면접을 봤는데 꽤 괜찮은, 같이 공부하고 싶은 실력의 지원자가 있었다. 같이 공부하고 싶다.. 하는 생각을 하고 있던 찰나에 협업과 관련된 질문을 받은 지원자는 ‘본인이 팀원의 의견을 무시해서 갈등이 있었다.' 이런 얘기를 했고 대답을 듣자마자 바로 아, 저런 사람과는 ‘같이’ 할 수 없겠다. 라는 생각이 들었다. 최근 서류를 쓰고 이력서를 정리하며 아래 질문들에 대한 생각을 정리하고 있다. 회사는 나한테 뭐가 궁금할까?회사는 어떤 사람하고 일하고 싶을까?..
구름톤 10기 백엔드 후기
·
카테고리 없음
지난 5월 21일부터 24일까지 10기 구름톤이 열렸다. 백엔드로 합격해서 구름톤에 참여할 수 있었는데, 전반적인 회고를 작성해볼까 한다.본 개발 과정에 대한 회고를 진행해볼까 한다.왜 지원했는가?구름톤을 준비하던 4월 말 5월 초는 탈락의 연속이었다. 탈탈탈탈 .. 과제테스트정도까진 진행되어도 결국 단 한 곳도 면접까지 가지 못했다.자신있게 개발한 서비스를 운영하고 있었는데 잦은 서류 탈락과 운영하면서 많은 이슈를 만날때면 해결하는 과정이 신나기보단 자신감이 떨어져 멘붕이 오기 일상이었다.해야할 일은 쌓여가는데 집에서 스스로를 통제하며 취준을 하다보니 공부를 제대로 하지도, 제대로 쉬지도 않는 애매한 상태에서 설상가상 같이 취준을 하던 친구들은 이런 저런 교육기관, 커뮤니티에 속해 성장하고 있는데 뒤쳐..
유쓰응
글쓰는 개발자 Youth