우아한테크코스

프로젝트

카페인팀 서버 아키텍처를 설명해드리겠습니다

안녕하세요 우아한테크코스 카페인팀 누누입니다 이번에 카페인 팀에서 배포 아키텍처를 결정하게 되었던 과정에 대해서 정리를 해보고 싶어서 글을 쓰게 되었습니다. 아키텍처와 서버가 배포되는 과정을 보여드리면서 시작하도록 하겠습니다 서버가 배포되는 과정은 다음과 같습니다. 우아한테크코스 인스턴스에 대한 소개 우테코에서 선택할 수 있는 인스턴스는 총 2가지 종류입니다. 퍼블릭 서브넷에 있는 인스턴스 캠퍼스에서만 SSH 접근이 가능한 인스턴스입니다. 미리 열려있는 포트들만 허용이 되어 있습니다. 같은 서브넷에 있는 인스턴스끼리는 모든 포트가 허용되어 있습니다 프라이빗 서브넷에 있는 인스턴스 퍼블릭 서브넷에 있는 인스턴스를 통해서만 접근이 가능합니다. 같은 서브넷에 있는 인스턴스끼리는 모든 포트가 허용되어 있습니다...

우아한테크코스

[레벨3] 프로젝트 1주차 회고

프로젝트에 대한 소개 프로젝트 주제를 1 문장으로 표현하면? 원하는 전기차 충전소를 편하게 찾을 수 있는 서비스 or 실시간 전기자동차 충전소 지도 및 사용 통계 조회 서비스 어떤 문제를 해결하려고 이 프로젝트가 시작되었는가? 전기차 충전소가 너무 많은데, 사용자가 진짜 원하는 조건의 충전소를 찾기 어려워요 사용자가 필요로 하는 정보가 생각보다 많은데, 이 부분을 보기 편하게 만들어준 웹이나 앱이 거의 없습니다. 사용자가 원했던 정보들은 이런 것들이 있었는데요 충전기의 타입을 알고 싶어요 급속, 완속 이라고 하는 충전 방식에 따라 충전 속도가 달라지고, 배터리 수명이 달라집니다. 충전기 타입이 많아서 어댑터가 없는 경우라면 특정 타입의 충전기만 사용할 수 있습니다 충전소마다 혜택이 달라요 특정 충전소에서..

우아한테크코스

DB 에 변경된 부분만 업데이트 하려면(feat Proxy 객체, 변경감지)

JPA를 사용하지 않으면 어떻게 변경 감지를 해야 하지?? 변경감지는 어떻게 만들어져 있을까 생각해 보면서 작성한 코드이기에, 부족한 점이 많을 수 있습니다 나왔던 코드는 대부분 간소화된 코드입니다! 미리 잘 부탁드립니다 간단한 테이블 소개 노선과 구간이 1:N의 관계로 엮여있습니다 역과 구간이 1:N의 관계로 2번 엮여 있습니다 단 3개의 테이블만으로 이루어진 간단한 상황이라는 것을 기억해 주시면 좋을 것 같습니다 간단한 문제 상황 소개 처음에 코드를 짰을 때 도메인 엔티티에서 어떤 부분이 변경되어서 직접 저장해야 하는지를 파악할 방법을 쉽게 떠올리지 못해서, 가장 편한 방법을 거쳤는데요 도메인 엔티티를 변경하게 된 경우에, db에 저장하는 과정에서, 모두 삭제하고, 모두 새롭게 저장하는 과정을 거쳤습..

우아한테크코스

레벨 인터뷰 스터디 준비

레벨 인터뷰를 준비하는 과정에서 만든 간단한 정리본입니다. spring bean scope란? 싱글톤 스코프 : 애플리케이션 컨텍스트의 스코프와 동일한 생명 주기를 가지고 있다. 프로토타입 스코프 : 매 요청마다 새로운 객체가 만들어진다 request : 웹의 요청하나마다 새로운 객체가 만들어진다 session : 브라우저의 세션 하나마다 새로운 객체가 만들어진다 application : 서블릿 스코프와 동일한 생명주기를 가지고 있다 transactional annotation 이란? 하나의 논리적 transaction 을 만들기 위한 어노테이션이다 물리적 transaction 이 없다면, 새로운 transaction을 만든다. @Transactional(readonly =true) db 의 트랜잭션 i..

우아한테크코스

다른 사람의 리뷰를 훔치자

우아한테크코스의 진행 방법 우아한테크코스를 하게 되면 매주 미션이 주어지고, 그 미션을 혼자서, 혹은 페어랑 같이 진행하게 된다 각 미션에 대해서 리뷰어에게 피드백을 받을 수 있고, 질문을 받을 수 있다 더 다양하고, 깊은 리뷰를 받기 힘들다는 문제점 미션에 대한 최대한 많은 피드백을 받아보고 싶어도, 리뷰어에 시간이 한정되어있기에, 받을 수 없다 나만의 해결책 이를 해결하기 위한 나만의 방법으로 다른 사람들의 리뷰를 보는 시간을 갖곤 한다 각 미션별로 최소 50~60명정도의 리뷰를 보고 나면, 그 미션에 대한 공통적인 피드백도 눈에 들어오기도 하고, 저렇게 짜야되는구나 싶은 느낌이 드는 크루도 생기곤 한다 리뷰를 보고 나면 기억에 남는 리뷰들이 생기곤 하는데, 그 리뷰들을 나만의 저장 공간에 모아두려고..

우아한테크코스

[2주차 회고] 사다리 게임 페어 프로그래밍

우아한테크코스에서 진짜 아무것도 안 한 것 같으면서도 너무 많은 것들을 한 느낌이 드네요. 생각보다 시간이 빨리 지나가 버렸어요 우아한테크코스에서 1주일이 진짜 세상에서 제일 빨리 지나가는 것 같네요 회고를 적기로 결심했던 것은 정말 당행인 것 같네요. 1주일을 어떻게 보냈는지도 되돌아볼 수도 있는 것 같고 이번 주에 했던 실수를 쭉 되돌아볼 수도 있고, 다음 주차를 더 깔끔하게 만들려면 무조건 써야될 것 같습니다 이번주에는 저번주 미션 리팩토링을 했고, 2단계 페어프로그래밍을 진행했습니다 자동차 페어프로그래밍 리팩토링을 진행하면서 나왔던 부분들입니다 1. 입출력 어디까지 테스트해야 하는가? https://be-student.tistory.com/43 java에서 입출력 어디까지 테스트 해야할까요? 글을..

우아한테크코스

[1주차 회고] 자동차경주 페어 프로그래밍

우아한테크코스 첫 주차가 정말 정신없이 지나갔네요 최대한 있었던 일들과 배웠던 것들을 기억해두려고 매주 회고를 꼭 작성해두려고 합니다 우아한테크코스 1주차에서는 페어 프로그래밍과 연극을 통해서 아이스브레이킹과 온보딩을 하는 과정을 중심으로 진행되었는데요 회고를 매주 적으려고 한 이유기도 하지만, 정말 좋은 페어를 만나고, 코드 리뷰도 받고, 연극도 진행해보는 것들이 하나같이 다 기억에 남는 경험이었습니다 안 적으면 까먹을 것 같았거든요 자동차 경주 페어 프로그래밍 2~3일 동안 페어 프로그래밍을 통해서 진행했는데요 페어 프로그래밍이나 협업하면 당연하지만 스타일을 맞추고, 전체적인 과정을 조율하는 것에 신경을 써야 합니다 조율했던 내용들 1. 기능 목록은 어떻게 작성하는지 2. 어떤 클래스를 둘 것인지 3..

우아한테크코스

우아한테크코스 프리코스 4주차 후기

실제 제출했던 코드는 여기 있습니다 제출했던 소감문을 바탕으로 적었습니다 이번주 목표 1번만 완벽하게 만들자 1~3주차 까지는 그냥 코드를 많이 짜봐야 될 것 같다는 불안감이 있었기에 많이 짜려고만 했던 것 같습니다 실제로 2, 3주차는 다시 만들어보자는 생각을 가지고 총 3번씩 같은 코드를 작성했기에 여러 요구사항들 중 놓쳤던 부분이 있던 점이 아쉬웠습니다 꼭 프리코스만이 아니더라도 조금 안 좋은 코드임에도 요구사항을 완벽하게 지켜주는 쪽이 더 좋은 개발자라는 생각이 코수타를 통해서 들게 되었습니다 지금까지의 방식과는 거의 반대되는 느낌이라서 이 부분을 내려놓는 과정을 거쳤습니다 같은 문제를 여러번 푸는 것도 많이 배울 수 있었지만, 생각이 굳어버리는 과정이 있었습니다 그래서 하지 않았던 한 번의 코드..

우아한테크코스

우아한테크코스 프리코스 3주차 후기

우아한 테크코스 3주차 후기 마지막에 제출했던 코드는 https://github.com/be-student/java-lotto/tree/be-student 에 있습니다 이번 주차도 총 3번에 걸쳐서 코드를 만들었습니다 2주차도 3번 같은 코드를 만들고, 내다 보니 시간은 물론 많이 들지만, 많은 것들을 배웠습니다 3주차도 같은 코드를 3번 짜다보니 당연하게도 많은 것들을 배울 수 있었습니다 1번째 만드는 과정 정말 잘 짠것 같아보였던 분의 코드에 있는 기능들을 가져가보자 라는 생각으로 시작하게 되었습니다 1. @ValueSource 2. @ParameterizedTest 3. enum으로 싱글톤을 보장하는 view 객체들 4. view의 책임을 어디까지 볼 것인가 5. 커스텀 에러 6. MessageFo..

우아한테크코스

우아한테크코스 2주차 후기

우아한테크코스를 하면서 정말 많은 변화가 있었고 배우고 있습니다 실제 제출했던 소감문을 바탕으로 작성되었습니다 실제로 작성했던 코드는 여기에서 확인하실 수 있습니다 알게 되었던 점 1. 기능 목록은 진행 순서와 관계가 없다 2. 변경을 고려해서 추상화 해야 한다 3. 주석을 다는 작업이 생각보다 커다란 효용을 준다 4. 코드에 제약을 걸 수록 좋은 코드가 나온다 5. 모든 코드를 테스트 할 필요는 없다 1. 기능 목록은 진행 순서와 관계가 없다 1주차에는 진행 순서를 그대로 기능 목록으로 작성하려고 했었는데 그 순서대로 커밋을 하려니 진짜 너무너무 힘들고, 작성하기가 힘들었었던 경험이 있습니다 2주차 문제를 3번째로 새롭게 작성할 때 기능 목록과 진행 순서를 분리하고, 기능 목록을 작성하기 시작했는데 그..

be-student
'우아한테크코스' 태그의 글 목록