분류 전체보기
-
IntelliJ IDEA: 잘못된 의존을 찾기 위한 옵션(w/layered architecture)IntelliJ IDEA 2022. 9. 30. 21:01
팀프로젝트를 진행하다가 갑자기 포스팅 아이디어가 떠올라서 급히 적어보는 글입니다. 위에 말한 팀프로젝트에서 다음주에 코드리뷰를 진행하기로 했어요. 그래서 피드백을 드릴만한 부분을 이것저것 준비하고 있는데요(제 코가 석자이지만 팀장이기 때문에...🥲). 그러려면 당연하게도 코드를 읽어야겠죠. 코드를 많이, 계속 읽다보니까 코드리뷰를 위한 요령이 조금 생겨서 공유해보려고 합니다. 💁♂️알려드리려는 옵션 인텔리제이 설정창 >> 왼쪽 메뉴에서 'Editor' 클릭 >> 오른쪽 패널에서 'Code Style' 클릭 >> 왼쪽 메뉴를 보면 현재 토글메뉴 'Code Style'에 커서가 가있을 건데, 토글을 눌러서 펼쳐준다 >> 토글 메뉴에서 'Java' 선택 >> 'Imports' 탭 선택 >> 오른쪽 패널 아래..
-
잡담: 개발 공부하면서 어려운 순간 Top 3Today I Learned & WIL, MIL 2022. 9. 23. 11:10
은 사실 어제 이야기다. TIL은 아니고 잡담이 될 것 같다. 개발 공부를 하다보면 여러 난관이 있는 듯 하다. 어려운 주제에 대해 공부하는 건 난이도는 높지만 '어려운 일'은 아니다. 그런건 그냥 붙잡고 있으면 언젠가는 이해가 된다. 코딩을 공부하면서 어려운 순간을 top 3 정도 꼽아볼 수 있을 것 같은데. 3위는 '그냥 안될 때'다. 뭘 하는데 그냥 안돼. 이게 왜 안됨? 너무 당연한건데 안되면 일단 당혹스러운 상태가 된다. 운동선수들 보면 경기 전 기싸움이 중요하다고 하는데 일단 당황하게 되니까 시작부터 지고 들어가는 느낌이다. 2위는 '그냥 될 때'. 뭘 하는데 그냥 돼. 응? 왜 돼? 돌아가면 된 거지 뭐~ 라고 긍정적으로 생각하기에는 굉장히 찝찝하다. 3위가 주는 당혹스러움과는 결이 좀 다르..
-
TIL: 오늘 Nginx랑 친해지면서 했던 몇 가지 생각들Today I Learned & WIL, MIL 2022. 9. 22. 00:00
오랜만에 적어보는 TIL. 특별히 형식 없이 적어보려고 한다. (왜냐면 잘 시간이 모자라기 때문에, 횡설수설 하고나서 퇴고할 시간이 없다...) 오늘 한 일 첫번째. 메가존에서 구매한 도메인 Route53에 갖다 붙이기. 언젠가 여유가 좀 나면 자세하게 포스팅 해볼 수 있겠지만 과정 자체에 특별히 생소한 건 없었다. 아주 짧게 당장 한 일을 요약하면 아래 두개 정도. 1. 호스팅 영역 하나 생성해서, NS 정보 나오면 복사해서 메가존 네임서버 관리 화면에 붙여넣기. 2. 필요한 서브도메인 있으면 A 레코드로 추가해놓기. 오늘 한 일 두번째...부터는 거의 nginx와 친해지기 시간이었다. https를 적용하기 위한 시도였다. 인증서는 let's encrypt의 certbot으로 설치하기로 했다. 어려운 ..
-
HTTP: Delete method에 대한 두 가지 생각생각 2022. 9. 2. 23:36
프로젝트를 진행하다 보니까 시간이 정말 없다. 시간이 없는데 코딩도 해야 하다보니깐, 코딩하면서 드는 생각들을 정리할 시간이 없어 아쉬웠다. 오늘도 저녁 즈음 코딩을 하다가 '아.. 이런걸 정리할 시간이 있어야 나의 작고 소중한 블로그에도 새 글이 꾸준히 올라올텐데...'라는 생각이 들었던 점이 있어서, 요거 한번 짤막하게 포스팅해보자! 싶어서 가져와보았다. 생각 1: Delete를 위한 payload, 괜찮을까? 딜리트(물론 소프트 딜리트)를 실행하려는 로직이 있었다. 해당 엔드포인트를 위한 핸들러를 만드는데, 단순히 삭제할 데이터의 식별자 외에 받아야 할 데이터가 조금 있었다. (당연히)보안에 치명적이지는 않지만, 그래도 사용자에게 보여주는 것보단 가려주는게 더 좋은 필드였다. 다른 말..
-
Java Multithreading [4] - 성능 최적화의 두 관점 - 지연 시간Java/Multi Threading 기초 2022. 8. 29. 08:46
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 4.1. 성능 최적화의 두 관점 - 지연 시간 프로그램의 성능을 최적화한다는 것은 구체적으로 무엇을 말하는 것일까요? 프로그램의 처리 속도를 높이는 것이 될 수도 있고, 통신의 레이턴시를 낮추는 것일 수도 있고, 정확한 응답값을 반환하는 것일 수도 있고, 정확한 조건에 동작하는 것일 수도 있고... 사실 '성능 최적화'라고만 말한다면 상황에 따라 수많은 정의가 적용될 수 있을 것 같습니다. 하지만 이번 포스팅에서는 성능을 관측하는 데에 대표적으로 쓰이는 두 가지 지표만을 공부해보려고 합니다. 첫번째는 지연 시간(latency), 두번째는 처리량(Throughput)입니다. 멀티스레..
-
useradd / adduser : 팀원들을 위해서 서버 계정을 추가해보자각종 학습 요약/Linux 2022. 8. 27. 12:06
오랜만에 적는 포스팅이네요😃 최근에 aws 프리티어로 첫 프로젝트를 가볍게 시작하고 있습니다. 그래서 팀원들이 서버에 붙어서 작업할 수 있도록 프로젝트 계정을 만들어 나눠줘야겠다는 생각이 들었는데요. 근데 혹시나 루트 계정을 줬다가... 프로젝트와 상관없는 파일을 지워버리기라도 하면 얼마나 두근두근하고 식은땀이 나겠어요... 그럴 일이 생기지 않도록 프로젝트 계정을 하나 만들어 안전하게 작업할 수 있도록 해주었습니다 👷 간단한 작업이지만 하다보면 항상 '아 근데 머였지' 하는 부분이 생기는 작업 같기도 해서 포스팅으로 남겨놓으려고 합니다. 😅 계정 추가 계정 추가는 useradd 혹은 adduser라는 커맨드를 통해 가능합니다. sudo adduser NEWUSERNAME저의 얄팍한 지식으..
-
대략적인 서버 구성기타 2022. 8. 25. 22:51
정보 전달 글은 아니고. 서버 구성에 대해 오해하고 있었던 부분이 있어서 잠깐 글을 남겨본다. 대충 짧게 적고 나중에 다시 정리해보려고 한다(reverse proxy라는 주제로). 나는 지금까지 웹서비스가 대략 이런 구조를 가지고 있을 거라고 생각했다. : client --- proxy --- upstream 하지만 실제로 (처음)구현해 보면서 한 가지 의문에 빠졌다. 정적 자원은 어떻게 처리하지? 즉시 떠오른 것은 아래의 두 가지 아이디어다. 1번) client --- proxy --- upstream --- s3 2번) client --- proxy --- upstream(static) 그러나 둘 다 좋지 않다고 생각되었다. 이미지 하나 얻을 때마다 외부로 요청을? WAS마다 똑같은 자원들을 전부 업..
-
Java Multithreading [3] - Thread#join() : Thread 간을 조정하는 방법Java/Multi Threading 기초 2022. 8. 23. 13:49
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 3. Thread#join() : Thread 간을 조정하는 방법 중 하나 지금까지 하나의 스레드가 여러 작업을 할 수 있다는 것과 여러 스레드가 동시에 동작할 수 있다는 것을 알게 되었습니다. 그렇다면 여러 스레드가 하나의 작업을 동시에 하는 것도 가능할까요? 결론부터 말하면 가능합니다. 흔히 경쟁조건Race Condition이라고 말하는 상황이죠. Race Condition에 대해 깊이 들어갈 것은 아니고요(깊이 알지도 못하고...😅), Race Condition의 여러 상황 중 하나를 예로 들어 join()을 설명하고자 합니다. 예를 들어 ThreadA와 ThreadB가 동시에 작업중이라고..