💋 오늘 한 일 토미의 인프라 개선하기 Part 2 수업 들었다. 최근에 DB랑 대규모 인프라 관련 책을 많이 읽었더니, 그래도 좀 따라갈 수 있었다. 아직도 너무 어려움…. 이제는 이론도 이론인데 다른 기업들에서 어떻게 하는지 개발 블로그도 좀 관심갖고 읽어봐야겠음. 백엔드 4인방 모여서 쿼리 분석하기로 하고, n빵함. 모자란 인수테스트도 역시 엔빵해서 채우기로 했음. 그냥 테스트용으로 필요한 회원가입 API 호다닥 만들어서 머지했음. 엄청 빨리해서 뿌듯함 ㅎㅎㅎㅎ 쿼리를 어떻게 분석해야 할지 대체 어떤 쿼리가 성능이 좋다고 할지 그 지표와 지표 측정 방법에 대해서 고민해보는 중임….! 쿼리 분석하기 위해서 일단 패키지별로 좀 역할을 나눠봤다. 주말엔 진짜 아무것도 안하고 놀거라서, 다음주 월요일부터 ..
💋 인트로 이 포스팅은 우아한테크코스 5기 깃짱이 톰캣 구현하기 미션 후 작성했습니다. SpringBoot를 사용하게 되면 내장된 톰캣을 사용한다. 물론 알빠 NO 하고 사용해도 되지만, 어떻게 작동하는지 알 수 있다면 더 섬세하게 튜닝하고 디버깅할 수 있을 것이다. 이번 미션에서는 HTTP Server가 어떤 일을 하는지 알아보기 위해서 톰캣 서버의 역할 중 일부를 직접 구현해 보았다. 💋 코드 저장소 최종 코드: https://github.com/woowacourse/jwp-dashboard-http/tree/eunkeeee 1, 2단계: https://github.com/woowacourse/jwp-dashboard-http/pull/342 3단계: https://github.com/woowacou..
💋 오늘 할 일 미션) 푸우의 톰캣 리뷰하기 미션) Servlet 개념 공부하기 Sevlets & JSP 책을 읽어보려고 했지만, 가정통신문 같은 질감에 너무 옛날 책인 것 같아서, 읽다가 관뒀음. 무엇보다 너무 두꺼워서 잡고있는 손목이 아파서 읽는게 손해라고 판단함ㅋㅌㅌㅋ 공부) Real MySQL 실행계획 읽기 프로젝트) 데이터 스키마 변경 후 배포 관련해서 토미한테 질문할 내용 작성하기 공부) 테코톡 듣기 무중단 배포 Server Sent Events 미션) 톰캣 구현 관련 내용 정리하기 💋 오늘의 포스팅 https://engineerinsight.tistory.com/208 [우테코] 스탬프크러쉬의 인프라 개선: 현재 아키텍처와 개선 아키텍처 2가지 안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃..
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 토미의 인프라 개선에 대한 강의 이후에, 우리 팀의 현재 인프라 구조를 분석해보고, 어떻게 개선할 수 있을 지에 대해서 팀원 전체와 고민해봤다. 개선의 포인트는 가용성의 향상으로, 우리 서비스에 장애가 발생해 전체 서비스가 중단되는 상황을 피하는 방향이었다. 💋 우리 서비스에서 특별히 고려해야 할 중요한 기능 데이터베이스 상에 저장되는 정보가 카페와 고객 사이에 신뢰를 결정짓고, 금전적인 부분이 연관되어 있어서 절대 데이터를 잃어서는 안된다. 💋 현재 아키텍처에서 문제가 될 수 있다고 생각한 부분 현재..
💋 오늘 공부한 내용 데이터베이스 스키마 변경에 따라 성공적으로 데이터를 옮기고, 형상 관리 툴인 Flyway를 사용해서 스키마의 변경 과정도 추적할 수 있게 되었다. 해당 내용은 이 포스팅에서 엄청나게 자세히 다루어 놓았다. 궁금한게 많은데, 검색해도 잘 나오지 않는 내용이어서, 일단은 열심히 공식문서를 읽고 지피티와의 대화 끝에 많은 질문들을 정리할 수 있었다. 오후에는 팀원 전체가 모여서 인프라 구조 개선에 대해서 논의했다. 아래에는 논의했던 화이트보드 그림들ㅋㅋㅋㅌㅋㅋ너무 지저분해서 다시 그림으로 그려서 제출했다. 이것도 포스팅해야징 >
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 프로젝트 진행 중에 데이터베이스의 스키마가 변경되는 상황이 자주 발생했다. null 제약조건 추가 정도의 가벼운 상황이었을 때는, mysql 명령어를 통해서 직접 alter 컬럼을 해주었는데, 점점 변경이 커지고 데이터 구조 자체가 변화하다 보니 형상 관리가 필요한 지경에 이르렀다. 그중에서 우리 팀은 가장 익숙한 Flyway를 도입해서 데이터베이스 형상 관리를 하도록 했다. Flyway가 처음에는 좀 어렵게 느껴졌지만, 본질적으로는 '형상 관리'이므로 변경에 대한 내용을 추적할 수 있도록 저장하는 것..
💋 오늘 공부한 내용 오늘 수업이 있었는데, 갑자기 리오가 줌 채팅에서 나의 어제 TIL을 언급함ㅋㅋㅋㅋㅋㅋㅋㅋㅌㅌ 갑자기 core threads, max threads에 대한 토론창 찌라시의 출처였던 글렌이 정리해줌. 과연 진짤까?!! 글렌이 코드도 줌ㅋㅋ 오늘 수업에서는 Spring MVC를 만드는 미션을 받았다. 구현을 위해서 꼭 필요한 JAVA Reflection API에 대해서 간단히 소개해줬다. 웹의 발전 과정에 대해서도 소개해줬는데, 뭔가 전부터 궁금했는데... 제나랑 이야기하다가, 양이 많게 느껴지기는 하지만 사실 20년도 안된 기술이니깐 좀 역사와 발자취를 쫓아가볼 수 있지 않나? 싶어서 좀 관심이 생겼다. 관심이 생겨서, 프로가 되기 위한 웹기술 입문이라는 책을 읽었다. 놀랍게도 오후 ..
💋 인트로 이번 포스팅에서는, Java Reflection API에서 클래스의 이름을 가져오기 위해 사용하는 두 메서드에 대해서 비교해서 알아봅시다! 💋 getName() vs getCanonicalName() getName() 메서드 Class 객체의 이름을 반환합니다. 클래스의 패키지 이름을 포함한 전체 경로 getCanonicalName() 메서드 Class 객체의 정규화된 이름을 반환 클래스의 패키지 이름을 포함하지만, 내부 클래스의 경우에는 $으로 구분하여 표기 💋 코드 예시 ✔️ 실행 코드 public class ExampleClass { public static void main(String[] args) { // 클래스 객체 생성 Class classObj = ExampleClass.Inn..
💋 인트로 [프로가 되기 위한 웹기술 입문]이라는 책을 읽고, 웹 기술의 역사에 대해 간단히 정리해 보았다. 💋 웹 애플리케이션이란? 웹 애플리케이션을 이해하는 쉬운 방법은 데스크톱 애플리케이션과 비교하는 것이다. ✔ 데스크톱 애플리케이션 모든 처리는 본인의 컴퓨터(PC)상에서 진행된다 화면은 운영체제의 기능을 이용해 표시된다 애플리케이션을 PC에 설치할 필요가 있다 예시) 평소에 사용하는 워드프로세서 소프트웨어나 스프레드시트 소프트웨어, 이메일을 읽고 쓰는 데 이용하는 이메일 프로그램 ✔️ 웹 애플리케이션 주된 처리는 본인의 컴퓨터(PC)가 아니라 서버상에서 진행된다 화면은 HTML로 표현되며, 웹 브라우저에 표시된다 애플리케이션을 PC에 설치할 필요가 없다 웹 애플리케이션이 보급된 커다란 이유 중 하..
안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 지난 포스팅에서 우리 팀의 회원 데이터 연동 과정에 대해서 설명했고, 어떻게 구현할 지에 대해서도 여러 가지 시행착오에 대해 소개했다. 지난 포스팅: https://engineerinsight.tistory.com/193 [우테코] 임시 회원 ↔ 가입회원 데이터 연동기(1): 6가지 시도와 실패한 이유(JPA 상속 관계 매핑 안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcr..