전체 글

개발은 좋은데 뭘로 개발할까
알고리즘 (PS)/알고리즘 이모저모

[python] set.add() vs set(list) 속도 비교

백준에서 정렬 문제를 풀다가 궁금한 점이 생겼다. https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀던 문제는 이 문제다. 어렵지 않은 정렬 문제다. 근데 내가 5달 전에 파이썬으로 푼 코드와 오늘 파이썬으로 푼 코드의 길이가 비슷한데 시간차이가 많이 났다. 그래서 처음에는 set.add() 로 아이템 개수만큼 추가하기 vs 리스트에 담아둔 걸 set 으로 감싸서 리스트 객체로부터 set 객체 만들기 이 방법 차이로 시간이 많이 차이..

자기계발/생각 정리

군대 & 2022년 회고

어느덧 2022년이 끝났다. 1년동안 정말 많은 일들이 있었던 것 같다. 그래서 지난 1년동안 어떻게 살아왔는지 1년을 정리하며 돌아보는 글을 써보고 싶어졌다. 그런데 회고가 처음이라 어떻게 써야할지 몰라서 매달 생각나는 주요 이벤트를 적는 것부터 해보려고 한다ㅋㅋ 2022년의 전부를 군대에서 보냈다보니 그 시작점인 군대부터 적고 싶어져서 입대 전부터 지금까지의 내용을 정리해봤다 21년 군 입대 준비와 자대 배치 21년 5월, 2학년 1학기로 학교에서 비대면 수업을 한창 듣고 있던 때다. 이때 나는 정보처리가능사 자격증을 공부하면서 군입대를 준비하고 있었다. 근데 느긋하게 수업들으면서 수업과 과제시간 이외에는 PS를 하거나 게임을 주로 했다ㅋㅋ 그리고 지난 방학 때 인턴하면서 어깨너머로 배운 클라우드 지..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 10. 4, 5차 멘토링 & 의견 구현 & 발표자료와 리드미 만들기

기간 : 10/22 ~ 10/30 마이페이지 디자인을 하면서 ul 태그를 썼는데, 팀원 분이 작업한 ul 태그의 css가 영향을 전역적으로 주고 있어서 문제가 발생했다. 프론트에서 협업할 때는 이런 문제가 있을 수도 있겠구나 하는 걸 새로 알게 됐다. 그리고 멘토링을 받았는데, 구현은 잘 했으니 이제 발표자료를 준비하면 되겠다는 말을 들었다. 그래서 다음 멘토링때 발표자료에 대한 초안을 가지고 멘토링을 하자고 하셨다. 근데 우리는 아직 구현을 해야하는 부분이 남아있어서 그 부분을 최대한 끝내보기로 했다. 찜한 특기를 마이페이지에서 볼 수 있게 연동하는 기능을 추가하려고 한다. 이를 위해 회원가입시 빈 데이터셋의 유저 데이터를 만드는 기능을 추가했다. 그리고 의견에 대한 구현도 의논했다. 파이어베이스 타임..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 9. UX 개선 & 마이페이지 만들기

기간 : 10/17 ~ 10/21 팀원분이 프론트에서 열심히 군지원 기능을 구현하시는동안 나는 마이페이지 구현 작업을 하기로 했다. 그래서 나도 처음으로 리액트 프레임워크를 써보게 됐다ㅋㅋ 보내주신 영상을 보면서 세부적인 구현 사항도 의논..? 하고 멘토링 시간도 의논했다. 해커톤 막바지 달리는 기간이 휴가 기간과 겹쳐있어서 슬펐다ㅠㅠ 나의 지원 정보를 입력하는 부분에 대해 논의했다. 여전히 군지원 부분에서 자격증을 하나 하나 콤보박스에서 고르는 식으로 구현되어있어서 말씀드렸던 부분이다. 내가 생각했던 건 자격증이 아니라 자격증 '종류' 였다. 자격증을 하나 하나 입력하는건 병무청에서도 할 수 있으니까? 또 지원해볼 특기를 선택하는 부분에서 플로우를 수정해서 UX 를 개선하자고 의견을 내주셨다. 마이페이..

알고리즘 (PS)/Programmers

[프로그래머스/python3] 다트 게임 (2018 KAKAO BLIND RECRUITMENT [1차])

난이도 : 레벨 1 다트 점수 현황이 문자열로 주어질 때, 해당 문자열로부터 다트 점수를 계산하는 문자열 구현 문제이다. 내가 무식하게 푼 방법과 다른 사람의 코드를 보면서 배운 점을 적어보고자 한다. 평소에 구현을 무식하고 우직하게 하다보니 시간도 오래걸리고 실수도 정말 많이 해서 힘들었는데 이런 쉬운 깡구현 문제를 많이 풀면서 연습을 해야겠다는 생각이 들었다. 1. 다트는 3번 던진다. 2. 각 기회에서 점수는 0~10 사이의 점수가 주어진다. 3. 각 점수 이후에 해당 점수를 몇 제곱할지 S, D, T 가 주어진다. 4. 이후에 해당 점수와 기존 점수에 연산을 진행하는 옵션 *, #이 주어질 수도 있고 주어지지 않을 수도 있다. def solution(dartResult): point_list = ..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 8. 2,3차 멘토링 & UX 개선 논의 & 마이페이지 목업

기간 : 10/13 ~ 10/16 13일에는 멘토링을 받았다. 멘토링을 정리한 내용은 아래와 같다. 심사는 동영상과 ppt를 위주로 이루어진다고 한다. 결과물 퀄리티보다 잘 홍보하는게 중요하다고 느껴졌는데, 개인적으로 홍보하는 걸 잘 못한 것 같아서 아쉽다. 그리고 다른 팀에서도 웹 서비스를 정말 많이 하고 있어서 그런 팀과 차별을 두려면 도커같은 여러 기술적 고민도 필요할 것 같다는 조언도 해주셨다. 그리고 군지원 화면의 클릭 수가 많아서 UX가 별로 좋지 않으니 클릭수를 최대한 줄이는 쪽으로 구현해보라고 조언해주셨다. 10/15 갑자기 코드스페이스가 안된다. 해당 팀 계정에 할당된 돈을 다 썼다고 한다ㄷㄷ 그래서 일단 로컬에 프로젝트를 내려받은 뒤 윈도우에 노드를 설치해서 실행했다. 다행히 8기가 램..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 7. 군지원 기능 만들기 & 로그인 유지하기

기간 : 10/7 ~ 10/12 군지원 기능을 구체적으로 어떻게 구현할 지 고민하기 시작했다. 팀원분이 화면을 기획하기로 하셔서 피그마로 목업을 만드신 후 설명을 보내주셨다. 그리고 내 의견을 보내드렸다. 팀원분도 내 의견에 공감해주셔서 군지원은 간편함을 밀고 가기로 했다. 그리고 로그인을 구현하다가 문제가 생겨서 팀원분께 도움을 요청했었다. 결국 끙끙대다가 해결은 성공했다. (https://chinpa.tistory.com/168) 크롬에서 막아서 생긴 문제였다. 이거 고민하면서 지난 포스팅에 적었던 문제도 나름대로 고민해서 해결했다. 근데 쿠키 설정을 하다보니 중간에 cors 문제가 다시 발생했다. 근데 이렇게 해도 나는 이상하게 안되는 문제가 발생했다. 왜 로컬호스트는 막는 것일까? 암튼 해결함! ..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 6. 특기 상세 정보 화면 구현하기

기간 : 10/6~10/10 특기 상세 정보 화면에는 해당 특기에 대한 자세한 설명이 들어가 있다. 이 설명에 대한 데이터들을 어떻게 통일된 구조의 공간에 저장할 수 있을까? 이것이 이 당시 내가 했던 고민이다. 이 당시 내가 나름대로 고민해서 저장했던 특기 상세 데이터베이스이다. 이렇게 특기 요약, 주요 업무, 지원 자격 등 내용 구성을 미리 정해두고 각 섹션 별로 데이터를 저장했었다. 그런데 만약 특기마다 적고 싶은 내용이 다를 경우, 이 구성은 유연성이 매우 떨어지는 저장방법이라 각 특기들의 독특한 특징들을 효과적으로 보여줄 수 없다는 문제가 있었다. 이게 특기 상세페이지를 구현할 때 만났던 첫번째 문제이다. 그리고 '표를 어떻게 보여줄 것인가' 에 대한 문제에 부딪혔다. (두번째 문제) 근데 각 ..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 5. 특기 상세 페이지의 의견탭 구현하기 & 로그인 구현하기

기간 : 10/3~10/5 프론트에서 특기 자세히 화면의 탭 부분 UI 구현이 완료되었다. 스샷을 찍어두진 않았지만 비록 UI 를 클릭했을 때 데이터가 없어서 빈화면이 보이지만 내가 피그마로 그렸던 것과 정말 똑같이 구현해주셨다ㅋㅋㅋ 10/4 해당 부분 데이터는 나중에 만들어서 추가하기로 하고 다음엔 군지원 기능을 만들기로 했다. 군지원 기능에 대해 서로의 의견을 확인하고 프론트 구현이 시작되었다. + 로그인 화면도 구현이 완료되었다. 진짜 내가 예상한 것보다 너무너무 깔끔하고 멋있는 화면이라 엄청 놀랐다. 디자인에 재능이 있으신걸까.. 이제 로그인 화면도 만들어졌겠다. 로그인 기능이 작동하도록 구현하는 것도 부탁드렸다. 그리고 모군 플랫폼의 로고 디자인도 고민을 하기 시작했다. 참고로 팀원분이 알려주신..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 4. 특기 상세 페이지 만들기 & 멘토링 1회차

기간 : 9/29~10/2 팀원분이 내가 PPT로 간단하게 만들었던 레이아웃을 참고해서 PPT로 레이아웃을 잡아주셨다. 결과물을 보고 생각을 하다가 서로 디자인까지는 같이 하기로 이야기를 했다. 해커톤하면서 느낀점이 백엔드가 필요없는 건 아닌데, 단기간에 결과물을 보여줄 필요가 있는 해커톤 특성상 프론트와 디자인의 역할이 정말 중요하다고 느꼈다. (해커톤 하실 분들 참고하세용..) 그리고 초기에 프론트가 무에서 유를 창조하는 동안 나는 제이슨 데이터만 넘겨줄 API만 딱 만들면 되서 상대적으로 시간적 여유가 있었던 것도 사실이다. 이후로는 우선 특기 상세 페이지에 어떤 내용이 들어가면 좋을지 의논했다. 그러다가 새로운 기능 추가에 대한 의견이 생겨서 이것도 논의 했다. 중간에 서로 에러가 다르게 나오는 ..

에버듀
Blog. 에버듀