We will find a way, we always have.

-interstellar

분류 전체보기 256

[우테코 레벨1] 7주차 회고 (데일리, 커피챗, 웰컴 키트)

첫 정시 퇵은 전에 알바하던 사람들이랑 저녁 약속이 생겨 6시에 나왔다. 사실 이날이 우테코 입과후 첫 6시 퇴근이다🤗 (아 생각해보니 미션 끝날 때마다 회식할 때도 6시에 나왔다) 6시에 끝나고 바로가면 7시 반이나 되어야 집에 도착하니 잠실서 밥을 먹게 되고, 밥을 먹었으니 밥값은 하고 가야지!라는 마인드로 남아서 더 하게 되었다. 그렇게 레벨 1을 보내고 있었다. 브라워니 데일리 통합 데일리 미팅 시간에 브라운 X 워니 합병 데일리를 진행하였다. 커비 조조의 더블 퍼실리데이터였다. 아주 야무진 게임을 준비해왔다. 인물퀴즈와 앞사람이 춤추면 줄줄이 앞사람이 췄던 춤추고 제일 마지막 사람이 어떤 춤인지 맞추는 게임을 했다. 종이의 ASAP과 백호의 LOVE DIVE로 게임을 초토화 시켰다. 댄동 다온도..

[자바] ENUM에서 equals() vs ==, NPE(NullPointerException)의 고찰

서론 자바는 상수를 우아하게 관리하기 위해 enum을 제공한다. 이때 enum 값들은 전부 상수로 관리되는데 이 값들을 비교할 때 equals 메서드를 사용하느냐 아니면 == 으로 비교하느냐에 대해 토론의 장이 열렸다. 스택 오버플로우에도 쏼라쏼라 말이 많은 주제인 듯 하다. 본론으로 가기전 짚어야 할 점은 enum의 equals 메서드는 final로 정의되어 있어 재정의가 불가하며, 안에서 ==을 사용하여 비교를 한다. 본론 첫번째로 enum의 값을 비교할 때 ==를 사용할 것인가 equals를 사용할 것인가에 대한 토론을 하였다. ==을 사용했을 때 얻을 수 있는 장점은 컴파일 타임에 체크가 가능하다는 것이고, 또한 NPE(NullPointerException)을 피할 수 있다는 것이었다. 그렇게 자..

[우테코 레벨 1] 6주차 회고(를 가장한 일기)

블랙잭 미션 회식🍻 블랙잭 미션이 끝난 기념으로 데일리조끼리 회식을 갔다. :브라운꽃: 뽕족에서 족발을 먹었는데 꽤 맛있었다. 7명이 가서 소소하긴 했지만 재미있었다. 사실 저어기 옆테이블에는 브리조가 앉아있었다. 1차는 서로 진대(?)하느라 조인하진 않았고 2차에서 join table 하였다. 서로 자기소개하면서 나이를 공개했는데 이후로 애기 취급받는다😑 평어😏 브라운과 평어를 사용하기 시작했다. 평어는 쉽게 말해 반말인데 예의 갖춘 반말이라고 볼 수 있다. 존댓말과 반말로 위아래를 나눠 대화의 높낮이를 따지지 않는 대화 방식이다. 22학번이랑 '반말 모드'하는 50대 교수의 정체 / 스브스뉴스 데일리 미팅 때 위 영상을 보면서 시작하였는데, 어색하면서도 색달랐다. 학교 다닐 때 상급과정에서부턴 선생님..

[리뷰] 게임 AI를 위한 탐색 알고리즘 입문

"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 일반 코테를 위한 알고리즘이라 하면 DP, 그리디, 완전탐색, 구현, 그래프 탐색이 있다. 그리고 좀 더 나아간다면 kmp, 비트마스킹, digit dp, 세그트리 등등이 있는데 이 책에서는 완전 다른 세계의 알고리즘을 알려주어 재미있게 읽을 수 있었다. 게임 AI를 위한 탐색 알고리즘 입문에서는 플레이어 수, 컨텍스트 존재 유무, 플레이 진행 순서에 따라 크게 네 종류의 게임으로 구분한다. 이 네 종류의 게임은 다시 세부 조건을 확인해 빔 탐색, Chokudai 탐색, 담금질 기법, 미니맥스 알고리즘, 알파-베타 가지치기, Thunder 탐색, 순수 몬테카를로 탐색, MCTS 몬테카를로 트리 탐색, DUCT(Decoupled Upper Co..

Blah blah 2024.03.24

[우테코 레벨1] 5주차 회고 (Are You 레디?)

5주차에는 중간중간에 틈틈히 회고 적을 시간도 없이 후루룩 지나갔다. 시간복잡도가 $O(N)$에서 $O(logN)$로 변경된거 같다고 해야하나 뭔가 버그가 있는 듯 하다. 블랙잭 미션 월요일 블랙잭 미션의 리뷰어는 수달이었는데 재미있게 미션을 진행하였다. 좀 오랫동안 고민하고 리뷰 요청을 해서 많은 리뷰를 오고 갔던 것은 아니었지만 그 만큼 깊이 있었다. 화요일 고민이 많았던 블랙잭 미션,, 네이밍, 컨벤션, 구조 등등 열심히 토론하며 미션을 하였다. 이번에는 Participant를 상속받는 Player와 Dealer를 어떻게 배치해야 할지가 고민이었다. 저번주에도 했던 고민이었는데 그때는 그냥 '고민' Thinking 만 했었다면 이제는 고민한 것을 '구현'해보았다. Participant 가 사실 Ha..

[오브젝트] 15장 디자인 패턴과 프레임워크

애플리케이션을 설계하다 보면 요구사항을 구현하기 위해 과거와 비슷한 방법으로 문제를 해결하는 경우가 있다. 이렇게 설계를 재사용하는 것이 디자인 패턴의 목적이다. 디자인 패턴을 익힌다면 변경의 방향과 주기를 이해하는 것만으로도 필요한 역할과 책임, 역할들의 협력 방식을 순간적으로 떠올릴 수 있게 된다. (과연 정말 그런가..?) 디자인 패턴이 설계의 재사용이라면 프레임워크는 설계와 코드를 재사용하기 위한 것이다. 프레임워크는 애플리케이션의 아키텍쳐를 구현 구현 코드의 형태로 제공하며, 각 애플리케이션 요구에 따라 적절하게 커스터마이징할 수 있는 확장 포인트도 제공한다. 디자인 패턴은 특정한 변경을 일관성 있게 다룰 수 있는 협력 템플릿을 제공하고, 프레임워크는 특정한 변경을 일관성 있게 다룰 수 있는 확..

OOP 2024.03.16

[우테코 레벨1] 4주차 회고 (회식, 메타인지, 블랙잭, 읽기 좋은 코드)

회식 월요일에 사다리 타기 미션이 끝난 기념으로 브라운과 얼굴들 회식을 했다. 🐻😁 시간가는줄 모르고 웃고 떠들고 했던 거 같다. 브라운이 한 말중 기억에 남았던 말은 너희가 왜 뽑혔는지 스스로를 못믿겠다면, 너희를 뽑은 코치를 믿어라 시간과 알코올이 더해져 약간은 각색되었을 수도 있는데, 아무튼 여전히 왜 뽑혔는지 의문이 있고, 의심이 된다면 우릴 뽑은 코치를 믿어라~ 요론 바이브의 멋진 말을 해주셨다.🤗 메타인지 말하기 스터디 이번주부터 메타인지 말하기 스터디를 시작하였다. 브라운이 모집을 하였는데, 브라운과 얼굴들(데일리조 이름)에서 얼굴들이 빠지면 섭하지! 나중에 들어보니 데일리조 전부가 참여한 조는 우리조밖에 없다고 하였다 :브라운꽃: 스터디 방식은 미션을 진행하면서 새로 배운 내용이나 공유 하..

[자바] VO와 Record

우테코 메타인지 말하기 스터디때 준비한 글 VO (Value Objects) VO는 Value Objects의 약자로 값 객체를 나타낸다. 자바에서 VO를 사용하는 이유는 명확한 의미전달 및 책임 캡슐화이다. 단순히 원시값을 사용할 때와는 달리 이 객체가 어떤 역할을 담당하고 있는지를 이름을 통해 전달할 수 있다. 그리고 요구사항이 주어졌을 때 해당 객체 내에서 요구사항을 구현하여 캡슐화를 지킬수 있다. VO 사용시 유의사항 equals() && hashcode() VO를 만들었다면 필수로 equals() && hashcode() 메서드를 구현해줘야 한다. equals() && hashcode()가 구현되지 않았다면 객체의 값을 비교하는 것이 아니라 객체의 주소를 비교하기 때문에 원하는 대로 동작하지 않..

[우테코 레벨 1]: 3주차 회고 (유연성 강화, 사다리 게임, 생일, 클라이밍)

레디의 회고 작심삼주 성공!🥳 🎢 오프닝 이번주 시작을 여는 월요일 데일리 미팅은 석촌호수에서 진행하였다. 테바가 사주는 커피도 마시며 한 40분동안 산책하였다. 오랜만에 산책을 했었는데 꽤 재미있었다. 롯데월드에 가서 놀고 싶은 마음도,,, 🙌 유연성 강화 소프트 스킬 교육 시간에 유연성 강화를 위한 활동으로 나에게 부족한 점 찾고 해결 방안을 찾는 시간을 가졌다. 소프트 스킬 강화를 열심히 해야 하는 이유는 여기서 확인할 수 있다. "기업들, 이력서상 S급 인재보다 태도 좋은 A급 인재 선호" 로버트월터스 분석…"불황에 신규 채용보다 기존 인력 유지 집중" 불황으로 기업들이 보수적인 채용 기조를 강화하면서 신규 채용보다는 기존 인력 유지에 집중하는 것으로 나타났다. 글로벌 n.news.naver.co..

[클린코드] SonarLint를 사용해야 하는 10가지 이유

누군가 내가 작성한 코드를 수시로 분석하여 지적하는 플러그인이 있다면 사용해보겠는가? SonarLint가 바로 그런 플러그인이다! 🎈사용계기소나린트를 처음 알게 된건 구구의 추천 덕분이었다. 클린코드를 작성하고 싶다는 욕구에 바로 설치하고 사용해보았다. 하지만 하루 정도 써보고 이건 아니다 싶어 제거를 하였다.. 사용할 때 느꼈던 불편한 점들 커밋시 경고창이 한번 뜬다. 님 SonarLint가 제안한 내용 안지켰음. 수정하고 커밋하셈이라는 내용의 메시지가 한번 뜬다. ctrl + k 로 git add 하고, ctrl + enter 로 git commit 하는 나에게 이 경고창이 걸리적 거렸다. 냄새나는 코드를 아주 눈에 걸리적 거리는 밑줄로 그어준다. 수정이 필요한 부분에 빨강, 주황색으로 울퉁불퉁한 밑..