분류 전체보기
-
14주차 개념노트메가테라 2022. 11. 20. 22:40
Static file 이미지, 자바스크립트, CSS 파일, 동영상 등 이미 만들어진 상태 그대로 제공되는 파일을 의미한다. 서버에 올린 파일을 수정하지 않는 이상 바뀌지 않고, 따라서 캐싱을 하기 쉽다. 인수테스트 사용자 시나리오에 따라 수행하는 테스트이다. 인수 테스트를 통해 프로그램이 요구사항대로 잘 작동하는지 검증하게된다. BDD 행위 주도 개발은 애자일 소프트웨어 개발 방법의 일종인데, 요구사항을 domain-specific-language를 이용해서 사용자의 행위와 기대하는 결과를 표현하고 구현을 한다. 비즈니스 팀과 개발 팀이 동일한 언어를 이용하기 때문에 팀 간의 소통을 통일성있게 할 수 있게 된다. 어떤 기능을 추가하고자하면 유저스토리를 먼저 작성하고, 유저 스토리를 바탕으로 여러 팀이 함..
-
20221120 TIL 웹 서비스가 만들어지기까지의 A to Z (+ 애자일스럽게?!)TIL 2022. 11. 20. 22:24
수많은 웹서비스가 만들어져 있고, 지금도 만들어지고 있다. 웹 서비스는 어떤 과정을 거쳐 만들어질까? 전반적인 웹 서비스 개발 과정을 들여다보자. 웹 서비스를 만드려는 목적에 부합하는 요구사항들이 있을텐데 그 요구사항들을 바탕으로 사용자 스토리를 작성한다. 이 때 사용자 스토리는 As-I-So 형식에 따라 어떤 role에게 해당 기능이 어떤 가치를 줄 수 있는지를 중심으로 작성한다. 이 때 가치는 '고객 재방문율을 높일 수 있다' 등의 비즈니스적인 가치일 수도 있다. 전체적인 설계를 한다. 거시적으로 어떻게 구성할지(프론트, 백엔드, 디비 혹은 프론트, BFF, 백엔드, 디비 등 다양한 구조가 있을 수 있다.)를 결정하고, 각 부분에 적용할 기술(예를 들어 프론트는 리액트, 백엔드는 스프링 부트 디비는 ..
-
20221119 TIL 함께하는 것의 힘TIL 2022. 11. 19. 21:51
날씨가 추워지기도 하고 쉬는 날 없이 공부를 하다보니 조금씩 컨디션이 저하되었었다. 그래서 피로감도 꽤 쌓여있었어서 최대한 늦잠을 자고 일어 났는데, 14시간이나 되는 강의를 2일 내에 소화할 수 있을까 걱정도 되고, 진도가 잘 나가지 않고 있었다. 그리고 이번 주는 항상 제공되던 키워드가 제공되지 않고 스스로 강의에서 내가 모르는 부분을 찾아 키워드를 추출해야 하는데, 강의를 듣다가 어제 짝꿍님께서 공유 문서를 만들어서 같이 키워드를 쌓아보면 어떻겠냐는 말씀을 해주셨던 게 생각나서 구글 독스로 문서를 만들어서 공유를 했다! 이때까지는 누군가 만들어준 공유 문서에 작성을 하기만 했었지 스스로 만들어본 것은 처음이라 읽기 권한만 있는 채로 공유를 하는 실수를 했지만, 또 다른 짝꿍님께서 빠르게 편집 권한을..
-
브라우저 작동 방식을 알아보자개발 2022. 11. 18. 23:53
컴퓨터를 사용하는 사람 중 대다수는 지금도 브라우저를 사용하고 있을 것이다. 거의 모든 서비스가 웹을 통해 이뤄지고, 웹 서비스에 접근하려면 웹브라우저를 이용하기 때문이다. 그런데 웹 브라우저의 UI가 각 웹 브라우저마다 조금씩 다른 것과 그 어느 것도 자동으로 마법처럼 일어나는 것은 없다는 점을 고려하면 웹 브라우저도 결국은 개발자가 만든 프로그램이라는 것을 알 수 있다. 웹 브라우저는 어떤 프로그램일까? 웹 브라우저는 사용자가 요청한 정보를 서버에서 받아서 보여주는 역할을 한다. 한 줄로 정의하자면 HTML, CSS, JS를 바탕으로 화면을 그려내는 역할을 하는 프로그램이다. 웹 브라우저는 무엇으로 구성되어 있을까? 사용자 인터페이스는 주소 표시줄, 새로고침, 이전, 다음 버튼 등 요청한 페이지를 보..
-
20221118 TIL 직접 겪어봐야 안다TIL 2022. 11. 18. 18:32
몇 주 전에 객체 지향과 디자인 패턴에 관한 책을 읽었었다. 이번 주에 코딩을 하다가 설계적 고민이 생겼었는데, 읽었던 책과 공부한 개념이 있는데도, 어떻게 설계를 해야할지 전혀 감이 잡히지 않았다. 오브젝트 책을 읽기 시작했을 때 홀맨님께서 객체지향은 직접 적용하는 것과 책을 이해하는 것과 또다른 문제라고 하셨던 것이 떠올랐다. 객체 지향은 정말로 코드로 익히지 않으면 아무리 개념을 알고 있어도 속이 빈 강정처럼 적용할 수 없는 것 같다. 이번 주의 가장 큰 고민은 세 가지 상태에 따른 각각의 스케쥴을 반환하는 객체를 어떻게 설계할지였다. 업무 일정, 공유 일정, 휴식 일정이 각각의 duration을 가지고 있다. 이 때 각각의 duration이 바뀔 수 있어서 각각을 Schedule객체로 만들려고 했..
-
메가테라 13주차 주간회고회고 2022. 11. 18. 15:30
이번 주는 어려운 게 많았다. 과제도 진행이 어려웠고, 코딩 테스트 문제도 잘 풀리지 않았던 것 같다. 공부 방식이 효율적이지 않은 것 같아서 홀맨님께 조언을 많이 구해보았다. 먼저 고민이 되었던 부분은 크게 세 가지였다. 1. 과제가 진행이 어렵다. 2. 코딩테스트 푸는 실력이 늘지 않는 것 같다. 3. 객체 지향이 어렵다. (사실 이 문제로 인해 1번 문제가 강화되고 있다.) 물론 지금 내가 객체 지향을 잘하기를 바라는 것은 기어 다니기 시작한 아기가 뛰어다니는 것을 바라고 있는 상황이기 때문에 마음을 조금 느긋하게 내려놓는 것이 제일 중요할 것 같긴 하다. 홀맨님께서 해주신 조언을 바탕으로 액션 플랜을 세워보았다. 1. 예쁜 코드를 처음부터 짜려고 하는 것이 문제인 것 같다. 일단 구현에 초점을 두..
-
20221117 TIL 항상 코드를 더 낫게 만들 방법이 있다TIL 2022. 11. 17. 21:18
오늘은 나름 간단한 코딩 문제를 풀어보았다. 어제 풀었던 문제라 금방 풀었다. 시간이 조금 남아서 리팩토링을 해보려 했는데, 유클리드 호제법을 사용하지 않았을 때보다 코드가 이미 많이 간단해졌기 때문에 더 이상 어떻게 더 낫게 만들 수 있을지 감이 잡히지 않았다. function greatestCommonDivisor(x, y) { if (x === y) { return x; } if (x > y) { if (x % y === 0) { // 1️⃣ return y; } return greatestCommonDivisor(y, x % y); // 2️⃣ } return greatestCommonDivisor(y, x); } 그런데 홀맨님께서 너무나 깔끔한 풀이법을 올려주셨다. function gcd(a, ..
-
20221116 TIL 다시 만난 자바스크립트 thisTIL 2022. 11. 16. 08:18
몇 주 전에 날을 잡고 반드시 this를 정복하리라 하고 this개념 정리를 했었는데, (https://yomiju.tistory.com/254) 객체 지향적으로 UI 상태 관리를 하면서 this를 다시 만나게 되었다. 처음에는 원하는 대로 동작하지 않아 매우 당황스러웠고, 도대체 무엇이 문제인지 한참 찾아보았다. 그래도 한 번 정리를 해둔 덕분에 2시간 만에?! 문제를 해결할 수 있었다. 사실 정리를 했음에도 쓰면서 this가 무엇을 가리키는지 판단하지 않고 자바스크립트 클래스에서 자바처럼 썼다가 계속 있어야 되는 필드가 undefined여서 프로그램이 터지는 일이 발생했다. 모든 코드를 다 돌아보다가 잘못된 부분이 없어서 믿고 있던 해당 부분의 this.schedule을 로그로 찍어봤는데 계속 에러가..