수업이 어느새 절반이 지나고 2월을 마무리하였습니다. 그 사이에 조원이 바뀌었으며, 이전에 작업했던 도서API 프로젝트의 프런트 부분도 시작을 했습니다. 우선 도서 API 프론트 부분에서 이전에 수업시간과 다르게 백엔드를 설정해 놨기 때문에 타입에러가 발생하여 수업진행이 어려워 백엔드 부분 일부를 수정하는 시간을 가졌습니다. 수업을 100% 똑같이 진행하지 않아도 되지만 주관적으로 코드를 작성하다 보면 앞으로의 수업에도 100% 똑같이 진행을 할 수가 없을 거라는 판단을 했고, 앞으로의 수업에서 최대한 생각을 배재하고 수업을 따라가는 방향으로 진행하고 주관적인 생각을 넣는 것은 개인 프로젝트를 하면서 진행해야겠다 생각했습니다. 또한 도서 API 서버 부분도 기존에 받은 피드백 내용과 더불어 타입스크립트를..
오늘 배운 내용 📚 오픈소스를 구성하는 구성원 Contributor와 Contribution 오픈소스 커뮤니티 discussions 오늘은 오픈소스를 구성하는 구성원에 대해서 먼저 이야기를 시작해 보겠습니다. 오픈소스를 구경하다 보면 다양한 구성원을 마주 할 수 있습니다. 저작자 : 프로젝트를 만든 사람이나 조직 사용자 : 프로젝트를 가져다 쓰는 사람 이 외에도 다른 구성원이 존재하는데 아래에 작성된 구성원들은 필수 구성원이 아니기 때문에 존재할 수도 있고 없을 수도 있습니다. Maintainer : 프로젝트를 관리하는 사람으로 보통 프로젝트의 방향을 알고 있거나, 직접적으로 설정한 사람을 말하며, 책임자입니다. Committer : Contributor가 contribution을 했을 때 리뷰를 하는 ..
오늘 배운 내용 📚 오픈소스 라이선스 표기법과 분쟁사례 라이선스 문서 구조 오픈소스를 기여하기 위한 issue와 pull request 어제에 이어서 라이선스와 관련된 수업을 들었습니다. 일단 라이선스를 지키지 않았을 때 발생할 수 있는 분쟁사례로 시작을 했는데요. 앞으로 우리가 작업을 하면서 가장 많이 신경 써야 하는 일이라고 생각을 했습니다. 그래서 어떻게 오픈소스를 어떻게 사용하는지 라이선스를 사용한다면 어떻게 작성을 하는지에 대해서 예시로 구글 크롬으로 보여주셨는데 크롬에서 사용한 라이선스들을 특정 링크에 연결시키고 해당 라이선스와 깃허브/사이트로 연결이 되게 설정을 해놓은 것을 보고 많은 참고가 됐던 시간이었습니다. 그리고 프로젝트를 하다보면 오픈소스로 만들 수도 있는데 그때 참고하면 좋을 깃허..
오늘 배운 내용 📚 오픈소스와 라이선스 퍼블리셔로 일하면서 해당 부분에 대해서 따로 생각해보지 않았고 진짜 끽해야 font 정도의 라이선스에 맞춰서 작성할거라 생각했는데 앞으로 계속 일을 할 생각이라면 조금 더 진중하게 찾아보고 작업을 해야하지 않는가 생각을 했던것 같습니다. 처음 든 생각은 배포한다는 전제하에 사용하는 오픈소스의 라이선스를 기본적으로 미리 체크를 해놓고 나중에 배포할때 어떤 라이선스가 존재했는지, 한눈에 알수 있게 정리해놓자 였습니다. 그 이유는 배포할때 어떤 오픈소스를 사용했는지 package.json통해서 확인할수도 있지만 놓친게 있을수도 있기 때문에 사용하는 미리 찾아놓으면 후에 놓치지 않고 작성할수 있을것 같았기 때문입니다. (사실 대부분의 오픈소스들은 MIT 라이선스를 사용하기..
오늘 배운 내용 📚 이미지 파일 사용 export와 export default 컴포넌트와 배열 라우팅 - Route와 Link styled-components 컴포넌트의 생명주기 서버통신 Ajax 전역상태관리 react 배포 지난주 프로젝트는 react를 체험해 보는 시간이었다면, 이번주 프로젝트는 조금 더 깊이 있는 프로젝트였습니다. 또한 타입으로 인해 막막한 점이 한두 번이 아니었는데요, 에러가 났다 하면 전부 타입에러여서 어떻게 접근을 해야 할지 막막했습니다. 거기에다 따로 폴더관리를 안 하면서 수업에 맞춰가니 어디에 어떤 interface가 존재하는지도 헷갈려서 점차 interface나 재사용성이 있는 것들은 따로 관리를 해야겠다는 생각을 하게 된 시간이었던 것 같습니다. 이번주 프로젝트를 진행하..
오늘 배운 내용 📚 React를 통해 간단한 사이트 제작하기 기본적인 JSX 문법 컴포넌트와 state React의 반복문과 조건문 props 통한 동적바인딩 리액트를 이용하여 간단한 웹사이트를 만들어보는 시간을 가졌습니다. 강사님이 코드를 작성하기 전에 미리 기능을 구현을 해보는 과정에서 다양한 에러를 만나보았는데 그중 기억에 남는 에러는 onClick 이벤트였습니다. // 기존 자바스크립트 사용방식 Activate Lasers // 리액트 사용방식 Activate Lasers 이때 문제가 됐던 부분은, onClick 할 때 매개변수가 존재할 때였는데, 자바스크립트에서는 onclick="함수()" 이렇게 작성을 했다면 리액트에서는 onClick={함수()} 이렇게 작성을 하게 되면 에러가 발생을 하는데..
데브코스를 진행한 지 두 달이 지났습니다. 12월에 시작한 도서 API를 시작으로 개인 프로젝트를 주제 선정을 했습니다. 도서 API를 진행하면서 수업진도를 따라가는 게 버거워지고 조금씩 밀리게 됐습니다. 초반에 따라가는데 문제가 없었지만, 백엔드 수업이 끝나고 강사님의 조언대로 기존에 작업한 프로젝트를 조금 더 세분화하는 과정에서 시간이 많이 들게 되었습니다. 일단 문제점은 컨트롤러를 서비스와 모델로 나누면서 생기기 시작했습니다. 수업에서는 컨트롤러에 모든 작업을 진행하였는데요. 이후 분할을 하면서 컨트롤러와 서비스 모델에서 어떤 코드들을 관리하는지, 어떻게 작업을 하는지에 대해서 충분한 설명이 없었습니다. 때문에 검색을 통하여 로직분리를 시행하였는데요. 검색으로만 코드를 분리한 거 기 때문에 제가 짠..
오늘 배운 내용 📚 사용자 정의 타입 - 리터럴, 유니온 타입 별칭과 타입 가드 클래스 객체 지난 수업에 이어서 사용자 정의 타입에 대해서 수업을 진행하였습니다. 지난 수업에서 배웠던 enum과 리터럴 타입이 유사하다 느껴어서 어려움이 없었고 유니온타입같은 경우에도 여러 타입을 이용할때 any를 사용하기 보다 유니온 타입을 이용해야겠다 느꼈습니다. 그리고 이러한 사용자 정의 타입들을 정의할 수 있는 타입별칭과, 각 타입별로 대입할때 발생할수 있는 에러를 막을 수 있는 타입가드를 생각을 하고 있어야 겠다 생각이 들었습니다. 그리고 타입스크립트의 마지막으로 클래스를 알려주셨는데요 마지막인 만큼 가장 이해하기 어려웠던것 같습니다. 일단 많이 사용해보지 않아서 사실 퍼블리셔로 일하면서 클래를 사용해본적이 전무하..
오늘 배운 내용 📚 사용자 정의 타입 - class, interface 오버로딩 오버라이딩 람다 사용자 정의 타입의 마지막은 class와 interface가 장식을 했습니다. class는 수업듣기전 혼자 node 독학을 하면서 써본게 처음이자 다였습니다. 그리고 최근에 클래스형을 쓰니 함수형을 쓰니 이야기 나왔던것같아 왜 클래스형보다 함수형을 쓴다는 이야기가 나왔을까 생각을 해보았습니다. 일단 클래스형과 함수형을 비교를 하자면 일단 클래스형은 복잡하다고 느꼈고 상대적으로 함수형은 코드가 간결하다 느꼈습니다. 때문에 클래스형을 사용하지 않는건가 그래도 각 코드에는 장단점이 있으니 이번 수업을 들으면서 클래스의 장점을 찾아보자 하면서 수업을 들었습니다. 확실히 수업을 들으니 이전보다는 클래스에 대한 이해도가..