전체 글 168

[TIL] 코드스쿼드 2022 백엔드 54일차 회고(11주차) - feat. Mock, Stub

오늘은 무슨 일이? 오프라인 모각코 & 페어프로그래밍 오늘은 준, 민지노, 루시드, 데이브 와 오프라인 모각코를 했습니다. 화상으로는 자주 보던 분들이지만 실제로는 처음봐서 어색하지 않을까 걱정도 살짝 했지만, 만나보니 전혀 어색하지 않았습니다! 만나자 마자 얘기 나눌 시간도 없이 10시가 되어 각자 조원들과 스크럼을 했습니다. 오전의 마스터 수업은 민지노가 스터디룸의 큰 모니터에 연결해서 봤는데, 큰 화면으로 다같이 수업을 보니대학시절로 돌아간것 같았습니다 ㅎㅎ POST 및 Redirectino 기능 추가 오후에는 루시드와 웹서버 만들기 3단계를 진행했습니다. 기존 로직을 리펙토링하고 POST 메소드 및 Redirection 을 지원하도록 구조를 변경하였는데, GET 만 지원할때 보다 더 복잡해졌습니다..

[TIL] 코드스쿼드 2022 백엔드 53일차 회고(11주차)

오늘은 무슨 일이? 오늘은 일찍 일어나서 잠도 좀 깨고, 아침에 잠시 산책을 다녀왔습니다. 상쾌한 공기도 마시고, 움직이면서 잠을 깨면서 하루를 시작하니 컨디션이 좋았습니다. 회고에 대해 아침 스크럼중에 각자 회고에 대한 얘기가 나왔는데요. 저는 개인적으로 회고를 작성하는데 동기부여를 잃어서 한동안 성실히 작성하지 못했습니다. 그래서 다른분들은 회고를 어떻게 활용하시는지 여쭤보았습니다. 반스는 아침 시작전에 회고를 읽고 시작하는것도 괜찮은 방법이라고 말씀해주셨는데요. 생각해보니 회고를 작성하기만 하고, 지난 회고를 잘 읽지 않았던 것 같습니다. 앞으로는 저도 하루의 시작전에 지난 회고를 읽으며 시작해봐야겠습니다..! 서블릿 & 리플렉션 루시드와 2단계 미션을 구현하면서, 어제 생각했던 구조를 코드로 옮겨..

데드락과 메모리관리

Deadlock Avoidance 데드락이 발생할 가능성이 있는 상황이면 safe로 아니라면 unsafe 로 분류합니다. Deadlock Avoidance 전략은 unsafe 상태에 있으면 자원을 할당하지 않기 때문에, unsafe 상태로 들어가지 않는것을 보장합니다. 관련된 알고리즘 자원 할당 그래프 알고리즘 Banker's 알고리즘 Banker's 알고리즘 Banker's 알고리즘 은 프로세스가 최대로 요청할 자원 개수를 알고있다고 가정합니다. Allocation 은 할당된 자원이고, Max는 최대로 요청할 자원 개수인데요. 이 표를 통해 앞으로 얼마만큼의 자원을 더 요청할 것인지 추측할 수 있습니다. Max - Allocation 의 결과인데요, 이게 더 요청할 가능성이 있는 ..

운영체제 2022.03.23

[TIL] 코드스쿼드 2022 백엔드 52일차 회고(11주차)

굉장히 오랜만에 TIL 회고를 작성합니다. (분명 어제 밤에 회고를 작성했는데, 다시 보니 다 날아가있어서 다시 작성합니닷..) 원래는 야행성이라 밤이 되면 더 머리가 잘 돌아가고 활기가 찼었는데, 요즘은 그렇지 않네요. 늦게자고 늦게 일어나고 있는데, 생활 패턴을 바꾸고 아침에 산책이라도 다녀와야겠습니다. 오늘은 무슨 일이? 이번주 부터 루시드랑 같이 페어 프로그래밍을 하게되었습니다. 시작하면서 이런 저런 얘기를 하던 중, 식사에 대한 얘기를 했는데요. 저는 냉장고에 있는 음식도 꺼내먹기 귀찮던데, 루시드는 생닭가슴살을 1주일치 정도 밑간 해놓고 조리해서 먹는다고 하셨습니다. (부지런킹..👍) 그외 소소한 얘기를 나누고 미션에 돌입했습니다. 어제의 index.html 을 반환하는 웹 서버 기능을 구현하..

Heroku SpringBoot 배포 체크리스트

1. Java 버전 내가 Java8 이 아닌, 다른 버전을 쓰고있는지? build.gradle 의 sourceCompatibility = '1.8' 인지? heroku 관련 아무런 설정을 해주지 않으면, heroku 배포과정의 빌드 단계에서 java8 jdk 를 기본으로 사용합니다. 저는 java11 버전을 사용해서, 빌드 과정에서 오류가 발생했습니다. 해결 프로젝트 루트 경로에 system.properties 파일 생성 java.runtime.version=11(참고 : https://devcenter.heroku.com/articles/java-support#supported-java-versions) 이 설정파일을 추가해주면, heroku 가 java11 jdk 를 사용해서 정상적으로..

[TIL] 코드스쿼드 2022 백엔드 44일차 회고(9주차)

오늘은 무슨 일이? 현재 미션에 TDD를 잘 모르고 적용하고, 핵심 비즈니스 로직에 대한 고민을 많이 하지 못한 상태로 1단계를 제출했습니다. 고쳐야할 것들이 많은데 테스트 코드 자체가 발목을 잡아서 프로젝트 전체를 뜯어고쳐야 하는 상황이 되었습니다. 사실 이전 미션들을 하면서 약간 자신감이 붙어서, 너무 고민 안하고 코드를 막 만들어낸 것 같아서 반성하게 되었습니다. 그래서 오늘은 리뷰 내용을 어떻게 고칠지 고민하고, 공부하며 하루를 지냈습니다. 공부한 내용 중에 오늘은 ATDD에 대해서 조금 공부해본 내용을 정리하였습니다. ATDD 고객, 기획자, 개발자, 테스터 등의 직군들은 같은 작업도 서로 다른 시각으로 바라볼 수 있어서, 단순히 TDD만으로 각자 작업하여 결과를 확인하는 방식으로 제품을 개발하..

토비의 스프링 1장 - 오브젝트와 의존관계

토비의 스프링 1장 - 오브젝트와 의존관계 관심사의 분리 관심사 추출 세상에는 변하는것(변할 가능성이 있는것)과 변하지 않는것이 있는것처럼, 코드도 마찬가지 입니다. DB에 회원 DAO에는 다음과 같은 로직이 필요합니다. DB 연결 회원 관련 쿼리 요청 이 로직들이 하나의 메소드에 있다면, 무조건 개선해야할 메소드이죠. 하나의 메소드는 하나의 관심사만 가져야 하지만, 이 메소드에서는 2가지의 관심사가 모두 있습니다. 그래서 변하는것과 변하지 않는것을 잘 파악해서 을 따로 추출해 내는것이 중요한데요. 변하는것을 따로 추출하면 요구사항의 변경이 있을 경우, 변경점이 하나이기 때문에 유지보수가 수월해집니다. 이렇게 관심사를 추출하는 방법에는 메소드로 추출, 상속을 통한 추출 등이 있습니다. 확장성 클래스 분리..

Java 2022.03.11

병행 제어 I

병행제어 병행성(Concurrency)이란, 두 개 이상의 프로세스가 동시에 병렬적으로 실행될 수 있는 상태를 말합니다. CPU가 여러 개인 경우에는 스케줄링이 더욱 복잡해 진다고 합니다. Homogeneous processor 인 경우 : 같은 종류의 프로세서인 경우 Queue에 한줄로 세워서 각 프로세서가 알아서 꺼내가게 할 수 있음 반드시 특정 프로세서에서 수행되어야 하는 프로세스가 있는 경우에는 문제가 복잡해짐 Load sharing 일부 프로세서에 job이 몰리지 않도록 부하를 적절히 공유하는 메커니즘 필요(웹 서버로 치면, 로드 밸런서 역할) 별개의 큐를 두는 방법 vs 공동 큐를 두는 방법 프로세스 스케줄링 방식 Systemmetric multiprocessing (SMP) 각 프로세스가 알..

운영체제 2022.03.09

[TIL] 코드스쿼드 2022 백엔드 42일차 회고(9주차)

오늘은 무슨 일이? 오늘은 스크럼때 다들 TMI를 얘기하시길래 아침에 먹은 붕어싸망코 얘기를 해드렸더니 다들 반응이 좋아서(?) 재밌었습니다 ㅋㅋ (갑붕싸...) 오늘은 모르는 부분은 영한님 강의를 찾아보며 2번째 미션을 진행하는게 목표였습니다. 그러나 스프링 컨테이너를 띄우지 않고 테스트를 하는 방법을 찾아보다가 하루가 다 갔습니다. 그래도 알게된 내용이 다른 동료들에게도 도움이 될 것이라 생각해서 그룹 리뷰시간에 공유하였습니다. 도움이 된 링크들 https://howtodoinjava.com/junit5/junit-5-test-lifecycle/ https://github.com/david-learner/java-study/tree/master/2018OKKYCON#설계 그리고 리뷰가 끝나고 뒤늦게 ..

[TIL] 코드스쿼드 2022 백엔드 41일차 회고(9주차)

오늘은 무슨 일이? 지난주에는 공부 컨디션이 별로여서, 주말에 푹 쉬고왔더니 오늘은 컨디션이 좋았습니다. 이를 스크럼때 공유했는데, 동료분들도 이 시기에 다들 비슷하셨던 것 같습니다. 뽀모도로 봇 오전에 한창 1단계 마무리를 하고있을 때, 쿠킴이 뽀모도로 타이머가 울렸다고 다같이 휴식 하자고 했습니다. 그래서 10분동안 움직이고 스트레칭을 하니 머리에 피가 돌면서 피로가 가셨습니다. 할 일이 있을때는 쭉 달리는 경향이 있었는데, 뽀모도로 봇(?) 덕분에 잠시 가지는 휴식이 주는 효과를 알게되었네요. 그래서 오후에는 휴대폰에 1시간 타이머를 해놓고 중간 중간 쉬면서 하니, 오늘은 피로감이 많이 없는 것 같습니다. 알고리즘 스터디 오늘은 처음으로 알고리즘 스터디를 하는날 이었습니다. 이번주는 아더가 DFS,..