We will find a way, we always have.

-interstellar

분류 전체보기 289

[자바] 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 하는 나에게 이 경고창이 걸리적 거렸다. 냄새나는 코드를 아주 눈에 걸리적 거리는 밑줄로 그어준다. 수정이 필요한 부분에 빨강, 주황색으로 울퉁불퉁한 밑..

[리뷰] 개발자를 위한 최소한의 실무 지식

한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다. 이 도서는 데이터베이스에서의 트랜잭션과 인덱스, 대칭키와 비대칭키, SQL 인젝션 그리고 더 나아가 좋은 코드를 만들기 위한 예외 처리 방법까지 필요한 핵심 부분들을 모아놓은 도서였다. 개인적으로 느끼는 이 책의 장점이 바로 필요한 부분을 모아놓은 요점 정리 노트인데 개념 설명까지 깔끔하게 되어 있는 점이라고 생각한다. 암호화 기법을 설명하는 부분에선 자바 코드로 java.security 패키지의 있는 코드를 사용하며 암호화, 복호화 과정을 설명하고 예제 그림을 통해 과정을 설명해주고 있다. 또 어떠한 암호화 방식은 이래서 사용하면 안되고 어떤 방식은 이런 점에 취약하다고 설명까지 해주어 쉽게 이해 되었다. 현재 나의 상황에 적절한 도서인거 같다..

Blah blah 2024.02.25

[우테코 레벨 1]: 2주차 회고

데일리 미팅 월요일 데일리 마스터로 선정이 되었다. 게임을 할까 산책을 할까 토론을 할까 고민을 했었는데, 게임은 금요일에 라이어 게임을 했고, 산책은 월요일에 날씨가 안좋을거라는 예보가 있어 토론을 하기로 정했다. 주제는 회복탄력성! 1주차에 너무 휘몰아친 나머지 서로의 회복 방법이 궁금해졌다. 나는 프리코스 4주차의 소감문을 공유하였다. 1주차, 2주차 미션에 비해 3주차가 미션을 제출하고 난 후에 보이는 미흡한 접들이 더 많이 보였다. 긍정적으로 생각하면 “매의 눈”이 생겨 메타 인지가 높아진 것일 수도 있지만, 좀 다르게 생각하면 인정하기는 싫지만, 살짝 지쳤었던 것 같기도 하다. 그런데 이게 웬걸 3주차 미션 끝난 후 코수타에서 잘 회복하는 방법에 대해 이야기했는데 딱 현재 나에게 필요한 이야기..

[리뷰] 아는 만큼 보이는 백엔드 개발

길벗 개발자 리뷰어 활동을 위해 책을 제공받아 작성된 서평입니다. 백엔드 개발자가 되기 위해서 쌓아야 하는 지식의 양은 방대하다고 생각한다. 이 도서에서 제시하고 있는 로드맵은 아래와 같다. 이 도서를 통해 위 로드맵에 대한 개념들을 쓰윽 한번 맛을 보고 앞으로 어떤 개념들을 어떤 순서로 배워야 할지 감을 잡을 수 있었다. 사실 위 그림의 모든 개념을 책 한권에 담는 다는 것은 불가능하다. 각 장마다 추천 프로젝트를 소개해주는데 이런 추천 프로젝트를 스스로 해결하고 넘어 가는 것이 좋을 것 같다. 총 3 파트로 되어 있는데 파트 1은 백엔드의 소개, 파트 2는 백엔드 로드맵, 파트 3은 DBA, 데브옵스 엔지니어, PM을 소개헤주고 있다. 모든 내용을 담으려다보니 빈약한 부분들이 보이기는 하지만 로드맵의..

Blah blah 2024.02.22

[우테코 레벨 1]: 1주차 회고

회고를 작성하는게 언제까지 지속될진 모르겠지만 일단 해보자!! 레디의 1주차 회고 시작합니다. OT 2월 13일부터 본과정이 시작되었다. 데일리 조는 제제, 비토, 백호, 커비, 종이, 안나, 테바, 러쉬, 리건이였다. 연극조는 그 중 제제, 비토, 백호, 커비 이렇게 였고, 첫 페어는 백호였다! OT때 기억에 남았던 문장들을 남겨본다. 다양한 피드백을 통해 메타인지 역량을 키움 모르는 것을 모른다고 할 수 있는 용기 빠르게 실패하기 일단 도전하기 페어 프로그래밍의 맛보기로 문자열 계산기 프로그램을 작성하는 하는 것이였다. 주어진 시간이 무척이나 짧았기에 고민보다는 GO를 하였어야 했는데 처음이다 보니 서툴렀다. 일단 기능부터 빠르게 구현하고 그 이후에 피드백을 받는 것이, 제한 시간안에 동작할 수 있는..

[Spring] query dsl Q클래스 파일 위치 설정 (스프링 버전 3.2 )

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화강의를 듣는 도중 마지막 부분에서 query dsl 도입을 하기 위해 build.gradle 파일을 설정하는데, 스프링이 버전업 되면서 기존 코드로는 설정이 되지 않아 문제가 발생하였다. 제공해주신 3.x 버전용 build.gradle 파일에서도 그래들 리프레쉬중 오류가 나거나 빌드 오류가 발생하거나 겨우 컴파일 성공하여도 Q 클래스가 main.java.generate 에 위치해있는 게 아니라 어디 저 멀리 build.generated 에 가있어 자바 프로젝트 내에서 import 가 되지 않는 문제들이 있었다. 해결 방안은 일단 컴파일 성공하는 단계에서 Q 클래스 파일 생성 위치를 알맞게 설정하는 것이다. plugins { id 'java'..

[LeetCode] 3036. Number of Subarrays That Match a Pattern II

🔈 문제 You are given a 0-indexed integer array nums of size n, and a 0-indexed integer array pattern of size m consisting of integers -1, 0, and 1. A subarray nums[i..j] of size m + 1 is said to match the pattern if the following conditions hold for each element pattern[k]: nums[i + k + 1] > nums[i + k] if pattern[k] == 1. nums[i + k + 1] == nums[i + k] if pattern[k] == 0. nums[i + k + 1] < nums[i..