@RoleAuthority를 통한 API 권한 관리
·
프로젝트/COTATO.KR
@RoleAuthority를 통한 권한 분리기존 코테이토 프로젝트는 유저 권한은 활동 부원(Member)이 동아리에서 맡은 역할에 따라 다양한 Role이 존재한다.실제로 사이트에서 이용하는 기능에 따라 아래와 같이 역할을 구분할 수 있다.ADMIN: 코테이토 운영진 (과 개발팀) - 전체 접근 권한OPERATION: 운영지원팀 - 출결 관리EDUCATION: 교육팀 - 문제 풀이 관리MEMBER: 기본 부원 - 문제 풀이, 출결 입력OLD_MEMBER: 코테이토를 수료하고, 현재는 활동 중이지 않은 부원들GENERAL: 가입 신청 대기 중인 부원REFUSED: 가입 신청 후 거절된 부원이 역할들은 실제 코테이토에서 ‘운영되고 있는 팀’별로 역할을 구분하고 서버와 DB의 용어로 가져와 사용 중이다.부원의 ..
팀을 운영하는 경험
·
프로젝트/COTATO.KR
최근 다시 면접을 보며 협업과 관련된 질문을 다시 하나 둘 받기 시작한다. 실제 협업 경험을 꽤 어필하는 편인데 팀장으로 프로젝트를 1년 이상 이끌며 프로젝트를 매주 꾸준히 대면 회의를 진행하며 의사 결정을 하고 아이템을 정해 유지보수하고, 인원 충원을 하는 등 다양한 경험을 하고 있다.특히 4개의 파트, 10명에 가까운 팀원과 함께 하는 협업이 쉽지만은 않다. 최근 KPT회고와 피드백 설문, 원온원을 하고 있으면서 느끼는 것들이 많다.이런 시점에서 회사는 어떤 사람과 협업하고 싶은가에 대한 고민을 다시 한번 해보면 좋지 않을까라는 생각을 하다 1년반동안 팀을 운영하며 내가 중요하게 생각하는 것들을 정리해볼까 한다.목표를 공유하는 것프로젝트가 잘 되기 위해서 가장 중요한 것은 참여하는 모두가 적극적이고 ..
인력(引力)
·
글을 써봐요/그냥 글
인력(引力) 최근 10기 데모데이를 다녀왔다. 10기로 활동을 하진 않았지만, 단기 스터디로 다시 9기 때부터 진행해온 개발 블로그 쓰기 스터디 를 맡아서 진행했고, 해당 스터디를 다음 기수에도 이어서, 그리고 규모를 조금 키워서 진행할 예정이기에 데모데이에 개블스 발표를 진행하려 참여했다. 같은 데모데이를 준비하며 주변에서 발표하는게 떨린다, 걱정된다라는 이야기를 하는 친구가 있었다. 나에게 있어서 발표와 특히 사람들에게 앞에서 이야기 하는 것은 전혀 어렵지 않았다. 8기 교육팀과 운영진을 하고 프로젝트 팀장으로 1년 넘게 회의를 진행해오면서 이전에 실제 들었던 발표도 꽤 잘했다고 생각했기에 부담없이 하라고 다소 마음 편한 얘기를 했다. 나도 늘 하던대로 발표 준비를 하고 데모데이 장소에 도착했다. 도..
TaskScheduler를 통한 동적 스케줄링
·
프로젝트/COTATO.KR
TaskScheduler를 통한 동적 스케줄링코테이토 프로젝트에서 출석 입력 기능을 개발 이후, 운영진의 출결 입력 안내가 없더라도 사용자들이 세션 시작 시간이 되면 출결 입력을 할 수 있었으면 좋겠다는 니즈가 있었다.따라서, 출석 입력이 허용되기 시작하는 시간에 사용자들에게 출결 입력 알림을 전송이란 기획이 추가되었다.해당 기능 개발을 위해 2가지에 대한 고민이 필요했다.서버가 클라이언트에게 출결 입력 시작을 알리는 방법유저가 지정한 시간에 알림을 전송하는 방법첫번째 고민에 대해서는 서버 → 클라이언트의 단방향 전송을 위한 Server Sent Event를 사용하기로 결정했다.(구체적인 이야기는 다른 글에서 다루도록 하겠다.)이 글에선 두 번째 고민인 유저가 지정한 시간에 동적으로 서버에서 스케줄링을 ..
Redis는 왜 빠를까?
·
카테고리 없음
COTATO 프로젝트를 하면서 회원 가입, 캐시, 선착순 요청 처리, 동시성 처리등 redis를 많은 부분에서 활용하고 있다. 최근 올라오는 백엔드 개발자 취업 공고에도 redis는 우대 사항이 아닌, 자격사항에 포함된 경우가 많다. 레디스는 싱글스레드, 인메모리 DB등의 특징이 있는데 레디스가 주목받는 이유는 여러가지가 있지만 그 중 하나는 ‘빠른 속도’이다. 실제로 우리 서비스에 레디스를 사용하는 이유 중 하나도 ‘빠른 처리 속도’ 중 하나인데 정작 왜?에 대한 고민을 해보진 않을 것 같다.실제 redis.io에도 Redis는 빠르다 빠르다 하는데 그 이유가 뭘까? 하는 고민을 하던 중 최범균님의 유튜브에 레디스가 빠른 5가지 이유라는 제목의 영상이 올라왔다.https://www.youtube.com..
25년도
·
글을 써봐요/그냥 글
난 백엔드 개발자(였)다.25년 초 퇴사를 했다. 3개월의 시간이었지만 회사와 맞지 않는 부분이 있었고 그 결정 끝에 퇴사를 결정했다.다시 개발자로 취업을 준비하는 지금 지난 3개월을 돌아보고 25년 목표를 작성해보고자 한다.진로많은 고민을 해봤지만 나는 최종적으론 ‘필요한 서비스를 만들 능력이 있는 소프트웨어 엔지니어’가 되고 싶다. 그러한 소프트웨어 엔지니어가 되기 위해선 백엔드부터 범용적인 기술과 이론에 대해 이해가 필요하다고 생각한다. 여러가지 시작점이 있겠지만, 지난 3개월 간의 경험을 돌이켜봤을때 Java 백엔드 개발자로 계속 도전하고 싶다는 생각이 아직은 명확하게 든다. 이렇게 커리어를 시작해 최종적으론 한 기업의 CTO까지 커리어를 확장하고 싶다. 그래서 올해는, 지금은 ‘서비스를 만들 능..
두달차 개발자의 반성문
·
글을 써봐요/그냥 글
지난 10월 7일 입사 후, 어느덧 두 달 조금 넘는 시간이 지났다.나름 개블스 1,2기 팀장에 ‘글쓰는 개발자 유쓰’라는 타이틀을 달아놓고 취업을 확정 지은 3달간 아무글도 안썼다.어떤 주제로 블로그를 다시 시작해볼까 고민하다가. 짧게 두달차 신입 개발자의 느낀점과 소소한 반성문을 작성해볼까 한다.진짜 처음이라고요사실 난 인턴 경험조차 없고 시작한 첫 직장, IT업계에서 그리고 스타트업에선 보기 드문 생 리얼 신입이다.입사 후 회사사람들과 커피챗을 8번정도 진행하는데 비슷한 시기에 입사사람들의 이야기를 들어보면 생생생 신입은 진짜 거의 나 밖에 없었다. (여기가 첫회사라고 하면 다들 놀라곤 한 걸보면 ..) 프로젝트 팀을 1년 이상 유지하고 실서비스를 운영했고 그 팀의 팀장이었다해도 어디까지나 학생 수..
ThreadLocalRandom을 활용한 성능 개선기
·
프로젝트/COTATO.KR
ThreadLocalRandom을 사용해 성능 개선하기문제현재 이메일 인증 랜덤 코드를 발생할때 요청 이후 인증코드 발송까지 꽤 오랜시간이 걸리는데, 클라이언트에서 인증코드 발송 요청을 보낸 후 요청이 성공했다는 서버의 응답이 오면 아래와 같은 팝업을 띄운다.문제는 서버에서 response자체가 오래걸려 인증 메일 발송 완료 팝업 이 뜨는데 오래 걸리고, 인증 메일 발송 버튼이 계속 활성화 되어 유저가 여러번의 인증 메일 발송을 요청하는 문제가 있었다.즉, 서버의 응답 시간이 늦어 유저가 여러 요청을 하게된 것이다.우선적으로 프론트엔드에서 응답이 오지 않더라도 팝업을 띄우고 버튼을 비활성화하는 방법을 마련했지만, 서버측에서도 요청시간을 줄일 필요를 느꼈다.Random 클래스 사용현재는 java.util...
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 수업 때 스프링을 처음 했는데 뭐 교수님이 많은 설명을 한 것 같지도 않은데 슥삭슥삭 해내는 사람들을 보며 “학교에서 분명 안가르쳐줬는데 왜 잘해 ??? 어떻게 해??” 이런 생각이 들었다. 이러한 갭을 극복하기 위해선 어떤 내용을 공부해야하는지, 어떤 프로젝트를 해야하는지 알기 위한 네트워크가 강하게 필요했다...
유쓰응
글쓰는 개발자 Youth