분류 전체보기196 스타트업에서 일년동안 경험하고 배운것들 서론첫 출근날인 22.11.07일, 어느덧 23.11.20일. 벌써 일년이 되고도 13일이 지났다. 근 일년간 내가 어떤걸 경험하고 배웠는지, 이참에 한번 회고 겸 되돌아보려고한다. 시작하며이전 직장에서 2년 좀 넘게 연구소에서 생활을 하다보니 이미 편해질대로 편해진, 그리고 친해질대로 친해진 사람들과 하루 하루 익숙해진 내 자신을 보면서 새로운 자극제를 넣어주어야겠다고 생각했다. 이직을 마음먹었다. (이직준비는 이때부터 해야겠다! 해서 벼락치기처럼 시작한건 아니였고, 이전부터 개발 공부를 하는게 그냥 재밌어서 꾸준히 하긴했었다.) 그래서 첫 이직준비를 함에 있어서 생각보다 엄청 분주하진않았다. 왜냐면 전부터 본격적이진 않아도 꾸준히 봐왔기에 어떤게 나의 약점인지 파악이 어느정도 되어있었다고 생각했기 때.. Self-Development/생각 정리 - 회고 2023. 11. 20. 실용적이고 안정감있는 테스트 코드 작성하기 서론 개발을 할 때면, 좋은 테스트를 작성하기 위해 매번 많은 고민을 통해 꽤 긴 시간을 허비하게된다. 현 세계에는 E2E Test, Integration Test, Unit Test 등 많은 테스트 기법들이 있지만, 현재 속해있는 조직에선 Unit Test를 위주로 작성 하고있다. 유닛 테스트만 작성하는 이유는 몇 가지가 있겠지만, 그 중 개인적으로 가장 타당하다고 생각드는 부분은 다음과 같다. 우리의 시스템은 주어진 요구사항이 Domain Model Layer에 응집되도록 하고있다. 이 응집된 Domain Model이 보통 단위의 대상이 되도록 하고있다. 따라서, Domain-Model의 테스팅이 성공된다면, 우리의 복잡한 요구사항은 얼추 만족시키게 되는것이다. 이 도메인 논리에 대해 촘촘하게 작성만.. Self-Development/Study 2023. 9. 27. 효율적인 나만의 일상 루틴을 만들어보자 위 이미지처럼 우리는 알게모르게 일상 루틴이 잡혀있는것들이 꽤나 많은 것 같다. 그러나 의식적으로 생각해야지만 만들 수 있는 루틴이 훨씬 많을 것이라 생각하여 포스팅을 작성해보려한다. 그리고 무엇보다 이 포스팅을 통해 효율적인 루틴을 만들어낸다면 앞으로의 삶이 윤택해질 수 있을 것 같다는 생각이 들었다🧖🏻 필자는 어느날부턴가 평소 일이 끝난 후 약속이 없는 날이라면, 운동과 공부를 해야한다는 인식이 박혀있어 이대로 진행이 안되면 하루가 망친것같고 불안한 기분이 든다. 걱정이 많은 타입이라 불안감을 남들보다 더 느끼는건 사실인것같다. 그래서 이 루틴을 조금 더 뾰족하고 디테일하게 설계해보고자 이번 글을 작성하게 되었다. 우선 내 평소 생활을 대략적으로 적어보면 다음과 같다. 기상 - 8:00 출근 - 8:.. Self-Development/생각 정리 - 회고 2023. 1. 15. DockerFile의 개념과 예시 정리 DockerFile이란? DockerFile은 명령이 들어있는 텍스트 파일이라고 보면된다. 물론 이 명령어들은 도커만의 고유한 것으로 도커 공식 문서에 정의되어 있다. 우리가 흔히 아는 자바나 파이썬과 같이 작성 후 컴파일러를 통해 실행되는 프로세스를 도커 파일도 동일하게 거친다. 도커에서도 마찬가지로 도커 클라이언트를 통해 도커파일을 실행하고 빌드 명령을 할 수 있다. build를 통해 DockerFile에 기술된대로 레이어된 파일 시스템을 생성한 다음 Docker 이미지를 사용하여 컨테이너를 만들 수 있다. 이 dockerfile을 이용해서 이미지를 만드는 방법과 예시는 아래를 참고바란다. DockerFile 명령어 종류 FROM 다른 이미지에서 이미지를 만들고 싶을때 사용한다. 아무것도 없는 상태에.. Infra 2023. 1. 11. "최고의 팀은 무엇이 다른가?" - 북 토크 후기 1월9일~ 10일 회사의 스쿼드 워크샵을 다녀왔다. 워크샵에서 여러가지 행사들을 진행했는데, 그 중 하나인 독서 후기 공유 시간을 가졌었다. 나는 이시간이 너무 의미깊고 팀원들과의 소속감을 더 키우는데 많이 도움이 되어 정리해보려한다. 우리는 7명의 팀원들과 위 책을 읽고 느낀점과 읽어보고 이해가 안가는 부분들에 대해 공유해보는 시간을 가졌다. 정말 오랜만에 책을 읽었는데, 생각보다 자극적이고 재밌는 사례들 덕분인지 잘 읽혔다고 생각한다. 책을 읽고 공감된 부분과 질문사항, 그리고 최종 정리까지 짧게 정리한 부분을 보여주면 다음과 같다. (아래 내용은 실제 팀원분들과 공유한 내용입니다.) 독서 후기 최고의 팀은 무엇인지를 알기위한 질문 세가지를 정리해보자면 아래 세가지로 정리할 수 있을것같습니다. 팀 내.. Self-Development/Book Review 2023. 1. 11. Docker의 개념과 사용 이유에 대해서 (+ 라이프사이클) 도커란? 컨테이너형 애플리케이션의 빌드, 배치 및 관리를 위한 오픈소스 플랫폼을 말한다. (= 오픈소스 컨테이너화 플랫폼) 이를 통해 개발자는 애플리케이션을 컨테이너로 패키징할 수 있다. 여기서 말하는 컨테이너는 애플리케이션 소스 코드를 임의의 환경에서 해당 코드의 실행에 필요한 운영체제(OS) 라이브러리 및 종속 항목과 결합하는 실행 가능한 표준 컴포넌트를 말한다. 따라서 Docker는 기본적으로 개발자가 단일 API를 통한 업무 절감 자동화와 간단한 명령을 사용하여 컨테이너를 빌드, 배치, 실행, 업데이트 및 중지할 수 있도록 해주는 툴킷이다. 특징은? 리눅스 컨테이너 기술을 기반으로 하는 오픈소스 서비스이다. 애플리케이션 실행 환경을 코드로 작성할 수 있다. OS를 공유, 격리화하여 관리할 수 있다.. Infra 2022. 12. 2. [CI/CD] Github Actions란? (개념/ 용어 정리) 서론 이번 포스팅에선 최근 CI/CD로 많이 사용되는 github actions의 기본적인 개념과 주요 용어들에 대해 간략히 정리해보려한다. 필자도 미숙한 부분이기에 공식 홈페이지 내용 과 다른 포스팅의 검색을 통해 더 알아보는것을 추천한다. Github Actions란? workflow를 자동화 할 수 있도록 도와주는 도구를 말한다. 특징 repo에서 어떤 event가 발생했을 때 특정 작업을 실행시키거나, 주기적으로 어떤 작업들을 반복해서 실행시킬 수 있다. pull request 검사 누군가 repo에 pr을 생성하게 되면 github actions를 통해 해당 코드 변경분에 문제가 없는지 각종 검사를 진행한다. 빌드 및 배포 어떤 새로운 코드가 메인 브랜치에 유입(push)되면 github act.. Infra 2022. 11. 14. 드디어 떠난 퇴사 여행 (feat.제주도) 이 블로그를 처음 쓰게 된 계기가 작년 10월쯤이였나, 처음 코로나 걸렸을 때 치료센터에서 너무 심심한 나머지 시작하게 되었었다. 그때만 해도 Daily 카테고리 하나만 있었는데 어느덧 개발 관련 내용만 약 200개 정도가 됐고 그때 당시 재직하던 회사에서도 이직을 하게됐다. 다시 생각해봐도 그동안 정말 바쁘게 달려왔던 것 같긴하다. 이제야 여유를 찾아 포스팅을 할 수 있게됐다. 이번 글은 제목 그대로 제주도에서 지낸 여행 일기다. 글을 작성하고 있는 지금도 제주 애월 하이엔드 제주 카페 에 있다. 어제까지만해도 친구 둘과 총 셋이서 이곳저곳을 돌아다녔는데 친구들은 일정이 있어 돌아가고 혼자 제주에 남아있다. 어제 애들을 보내고 혼자 숙소로 돌아가는데 너무 외롭고 두렵기만 했다. 근데 오늘 일어나서 아침.. Daily/Trip 2022. 11. 1. [Git] fatal: bad config line 1 in file .gitconfig 해결 방법 서론 git 조작을 잘못 하다가 gitconfig쪽 설정에 문제가 생겨 포스팅 제목과 같이 에러가 발생하는 경우를 접할 수 있다. 해결 방법은 정말 쉬우나 갑자기 위와 같이 에러가 발생하면 당황하여 필자와 같이 많은 시간을 투자하는 불상사가 생길 수도 있을 것 같아 포스팅하려한다. 이 경우 .gitconfig를 삭제해주면 쉽게 해결할 수 있다. 그럼 삭제해주는 방법에 대해 알아보자. 해결 방법 .gitconfig 삭제 방법 일반적으로 C:\Users\ 의 경로에 들어가보면 .gitconfig 파일이 있을 것이다. 해당 폴더에서 .gitconfig를 삭제하면 끝이다. [에러 발생 할 때] [.gitconfig 삭제 후 동작 확인] 위와 같이 제대로 동작이 되는지 확인하기 위해서 아무 git 명령어를 입력해.. Git 2022. 10. 23. [Java] 리플렉션 (Reflection)이란 무엇일까? (개념/ 예시) 서론 이번 포스팅에서 다룰 내용은 '리플렉션'이다. 최근 "리플렉션이 무엇인가요?" 라는 질문을 받았는데, 제대로 된 답변을 못한 것 같다. C# 개발을 할 때 분명 사용은 해보았지만 개념적으로 설명하기엔 많이 미비한것같아 이번 기회에 정리를 해보려한다. 리플렉션(Reflection)이란? 리플렉션은 구체적인 클래스 타입을 알지 못하더라도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API를 말하며, 컴파일 시간이 아닌 실행 시간에 동적으로 특정 클래스의 정보를 추출할 수 있는 프로그래밍 기법이라 할 수 있다. 그럼 이 리플렉션은 언제 사용할까? 동적으로 클래스를 사용해야할 때 사용한다. 다시 말해, 작성 시점에는 어떠한 클래스를 사용해야할지 모르지만 런타임 시점에서 가져와 실행해.. Programming/Java 2022. 9. 23. JPA Entity의 @Setter를 지양하는 이유에 대해서 (feat. @Builder) 서론 이번 포스팅에선 JPA의 Entity를 사용할 때 @Setter를 지양해야하는 이유에 대해 알아보려합니다. 물론 @Setter의 사용이 100% 잘못되었다는 것이 아닙니다. 양방향 바인딩 시 Setter 사용이 더 용이할 수 있으나 이번 포스팅에선 일반적인 케이스만 다뤄보도록 하겠습니다. @Setter를 지양해야하는 이유 @Setter는 사용 의도/목적이 분명치 않다. (Update인지 Create인지) Entity를 만들 때는 외부에서 쉽게 변경할 수 없게 @Setter를 사용하지않는다. 그 이유는 @Setter를 사용하면 의도가 불명확하고 변경하면 안되는 중요한 값임에도 불구하고 변경 가능한 값으로 착각할 수 있다. (== 안정성 보장이 안된다.) 그러면 만약 값을 업데이트 시켜줘야하는 상황일 .. Programming/Spring 2022. 9. 10. [Java] Codility - TapeEquilibrium 문제 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance 100% 문제 풀이 class Solution { public int solution(int[] A) { int sumAllVal = 0; for(int cand : A) sumAllVal += cand; int minDiff = Integer.MAX_VALUE; int currentDiff = Integer.MAX_VALUE; int sumLeftVal = 0; int sumRightVal = 0; for (int i = 0; i < A.length - 1; i++) { sumLeftVal += A[i]; sumRightVal = sumAllVal - sumLeftVal; currentDiff = Mat.. Algorithm/Problem Solving 2022. 9. 5. 이전 1 2 3 4 ··· 17 다음 💲 많이 본 글