| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- 백엔드
- Slice Test
- 테스트 코드
- SelfHostedRunner
- 백엔드 회원가입 구현
- performance test
- B+Tree
- 틀린문제조회
- springboot
- docker
- 제2종오류
- backend
- EC2
- SolveGO
- JWT
- MySQL
- branch protection
- query optimization
- Integration Test
- 책임분리
- JPA
- Service Layer
- rest api
- 제1종오류
- CI
- 백엔드 로그인 구현
- Spring Boot
- ERD설게
- AWS
- Spring Security
- Today
- Total
목록SolveGO (19)
노트
농구를 하다 보면 쉽게 쉽게 하는 사람들이 있다. 화려한 드리블이나 큰 움직임 없이도 수비의 허를 찌르는 데 필요한 근육만 정확하게 사용한다. 동작은 간결하지만 날카롭고, 타이밍에는 군더더기가 없다. 특히 선수 출신과 함께 경기를 뛰어 보면 일반인과 프로 사이에는 한두 수가 아니라 열 몇 수 이상의 차이가 있다는 것을 실감하게 된다. 움직임의 정교함과 날카로움이 극에 달해 있다. 예전에는 그런 사람들과 경기를 마치고 나면 ‘나는 왜 저렇게 하지 못할까?’라는 생각에 스트레스를 받곤 했다. 하지만 요즘에는 생각이 조금 달라졌다. 농구에서 그들과 같아져야 하는 것이 아니라, 나 역시 내 분야에서 그들처럼 프로다운 모습을 보여주면 된다고 생각한다. 그들이 간결한 움직임을 보여주는 것은 가진 기술이 부족해서가 ..
인생을 살아감에 있어, 정답을 찾는다는 것은 과연 의미가 있을까? 애초에 정답은 존재하는 것일까? 그리고 설령 존재한다 하더라도, 우리는 그것을 찾을 수 있을까? 하지만 설령 정답이 존재하지 않더라도, 정답을 찾으려는 행위 자체는 충분한 가치가 있다. 그 과정에서 우리는 어떤 것이 자신의 정답이 아닌지를 하나씩 알아가며 결국 자기 자신을 탐색하게 되기 때문이다. 한때는 열정적으로 좋아했던 일에 번아웃을 겪으며 지속 가능한 열정이 아니라는 사실을 깨닫기도 하고, 과거의 자신이 옳다고 믿었던 가치관이 더 이상 자신의 정답이 아님을 뒤늦게 깨닫게 되기도 한다. 결국 인생에서 정답을 찾는다는 것은, 역설적이게도 정답을 발견하는 과정이라기보다 정답이 아닌 것들을 하나씩 제외해 나가는 과정이 아닐까. 탐색(Se..
이제 SolveGO 프로젝트의 CI까지 성공적으로 구축해두었으며, 따라서 모든 커밋을 올릴 때마다 Test code에 대한 수행 결과와 Test Coverage를 리포트로 확인할 수 있게 되었다. 또한 main 브런치에 안전한 커밋들만 merge 시킬 수 있게하여, 보다 안정적인 개발 환경을 마련했다. 한편, 지금까지의 프로젝트는 오직 나의 컴퓨터에서만 실행된다. 이는 프로그램이 내 개발 환경에만 존재한다는 의미이며, 결국 물리적으로 나의 컴퓨터를 사용할 수 있는 사람 외에는 누구도 SolveGO를 이용할 수 없다(GitHub에서 소스코드를 받아서 직접 실행하는 것이 아닌 브라우저를 통한 즉시 이용). 아무리 뛰어난 프로젝트라 하더라도, 사용자가 실제로 접근할 수 없다면 서비스로서의 가치는 퇴색되는 법...
우리는 흔히 3차원 공간에 산다고 말한다. 여기서 "차원"이라는 의미는 무엇일까?"차원"은 독립적으로 움직일 수 있는 "방향"의 수를 나타낸다. 우리는 독립적으로 우리의 신체를 x,y,z 3가지 방향으로 움직일 수 있기 때문에 3차원 공간에 존재한다고 볼 수 있을 것이다. "저 사람은 4차원적인 기질이 있다"라는 말은 이러한 관점에서 볼 때, 상당히 의미가 깊은 말이다. 흔히 우리가 이런 말을 사용하는 대상은, 기발한 생각을 하거나 어디로 튈지 모르는 사람이 될 때가 많다. 이는 우리의 세상이 움직이고 이해할 수 있는 3가지 방향에 자신만의 축이 하나 더 존재하여 추가로 다른 방향으로 움직인다는 의미이고, 다른 사람들은 그 방향을 인지하지 못하기에 기발하거나 독특하다는 생각을 하게 되는 것이다. 한편..
살다 보면, 자신의 권리를 주장하지 못할 때가 있다. 자신이 어떤 행동을 취함으로써 다른 이의 기분이 상하게 할까봐 혹은 자신이 받을 불이익이 걱정되어 자신의 권리를 포기할 때도 있다. 그리고 이런 행위가 반복되면 자신의 행동에 대한 확신 부족으로 이어지는 악습관이 되기도 한다. 더욱이 본인의 권리를 본인이 주장하지 못한다면, 자기 자신을 지킬 수 없게 되고 이는 외부 요인에 매우 취약한 상태로 만듦으로써 본인의 기준보다는 타인의 기준에 본인을 맞추게 되어, 결과적으로는 본인의 삶의 자주성을 상실한채 본인의 삶을 흘려보낼 수 있다. 그렇다면 어떻게 자신의 권리를 주장할 수 있을까? 나에게 이득을 주는 것이면 나의 권리라고 주장할 수 있을까? 농구를 예로 생각해보자. 농구 경기에서 슛을 넣는 것은 경기에..
최근 유명 게임인 League of Legends의 국제 대회인 MSI가 한창이다. 위험을 감수하고 선을 극한으로 타면서 최대한의 이득을 보려는 스타일을 가지는 T1의 오랜 팬으로서, 최근 영입된 원딜러 Peyz가 국제대회에서도 팀의 색깔과 완벽하게 조화로워지는 플레이를 보고 감탄하며 경기를 보고 있다. 그리고 예전에는 단순히 게임 내에서 진행되는 치열한 딜교환과 시야를 이용한 설계플레이를 집중해서 보았다면, 요즘에는 게임을 하기 전에 자신이 플레이할 챔피언을 고르는 단계인 밴픽 단계를 더 심도 있게 보게 된다. 이 밴픽의 결과가 이후 선수들이 플레이하는 경기의 내용과 방향을 결정짓고 게임의 승부는 물론 심지어 다음 게임의 승부에도 영향을 미치기 때문이다. 자신이 고를 챔피언들을 생각해두고 그들에게 강..
농구에는 크로스 오버라는 기술이 있다.수비수를 완벽하게 속이고, 반대 방향으로 돌파를 하는 모습이 시각적으로 극적으로 연출되어 많은 이들이 농구의 꽃이라고 부른다. 나 또한 그랬고,많은 이들이 NBA 선수들의 기술을 "따라한다"그리고 그 결과는 수비수 앞에서 흐느적 거리는 불필요한 움직임만 만들어 내기 십상이다.단순히 기술 자체를 따라하는 것을 그 기술을 "사용한다" 라고 생각할 수 있을까? 나는 한동안 같은 것을 보더라도,누군가는 빠르게 습득하고,누군가는 매우 더디게, 혹은 아예 도달하지 못할까.고민했었다. 지금까지 정리된 생각에 의하면, 그들은 사실 "같은 것을 보지 않는다"그리고 그 차이는 "숨은 본질을 보려고 노력하느냐"에서 온다고 믿는다. 농구에서의 크로스오버도, 발목을 특정 각도로 돌..
지금까지 Backend MVP 7가지의 기능을 모두 구현 완료했다.이제 Frontend 개발자에게 "노션에 API 명세 모두 작성해두었으니 그거 보고 API 호출 하시면 됩니다~" 라고 말한다면, 그건 프로가 아니다. 왜 그럴까?왜 "노션에 API 기능 모두 작성해두었으니 그거 보고 API 호출 하시면 됩니다~"라고 하는게 프로가 아닐까? 내가 생각하는 이유는 다음과 같다.첫째, API 명세를 노션에 따로 관리하면 코드와 문서가 서로 다른 방향으로 변할 수 있다.요구사항이 바뀌어 서버 코드를 수정했는데, 노션 문서를 함께 수정하지 않으면 프론트엔드 개발자는 오래된 명세를 보고 API를 호출하게 된다. 즉, "코드와 문서 사이에 불일치"가 발생한다. 둘째, Frontend 개발자 입장에서 생각해 볼때, A..
래퍼 스윙스가 대학 축제에서 한 말이다.이전에는 그를 단순히 예능 캐릭터처럼 소비되는 사람으로 알고 있었다.하지만 시간이 지나면서 그가 가진 태도와 삶을 대하는 방식이 조금씩 보이기 시작했다. 시간이 지나면서 이 사람이 가지고 있는 마인드가 느껴짐에 따라, 과거에 대한 여러 평가와는 별개로 존경할만하다는 생각을 가지고 있다. 특히 예능이나 유튜브 등에서 가끔씩 묻어나오는 스윙스의 철학이나, 팀을 이끌면서 발휘하는 그의 리더십은 배우고 싶다는 생각이 든다. 한때는 어떤 일을 잘하기 위해서는 단순히 그 일을 많이 하면 된다고 생각했다. 시간이 지나면서는,잘하기 위해서는 체계적으로 연습해야 한다고 생각하게 되었다. 그리고 더 시간이 지나자,더 근본적인 것은 결국 태도라는 생각에 이르렀다. 무언가를 끝까지 해..
지금껏 백엔드용 포폴에 초점을 맞추어 프로젝트를 진행했다.하지만 그 규모와 무관하게 포폴의 본질은 "서비스"이다.그리고 그 서비스의 본질은 "어떤 가치를 주느냐" 에서 나온다. SolveGO는 바둑 사활 문제 플랫폼이다.그렇다면 이 서비스가 사용자에게 제공해야 하는 가장 핵심적인 가치는 무엇일까?문제를 풀 수 있어야 한다. 사용자가 문제를 보고, 자신이 생각한 답을 제출하고, 그 답이 정답인지 확인할 수 있어야 한다.이 흐름이 없다면 SolveGO는 단순한 문제 저장소에 가깝다. 따라서 이번 글에서는 SolveGO의 핵심 가치인 문제 풀이 기능을 구현한다.서비스에 "심장을 꽂아보자" 설계 : 탑다운 문제를 푼다는 것은 무엇일까?먼저 문제는 정답이 있는 문제와, 정답이 없는 문제로 나눌 수 있다.그..