본문 바로가기

General

[오브젝트] 10장 상속과 코드 재사용 전통적인 프로그래밍에서는 코드를 재사용하기 위해 하나는 원래 있던 코드를 스-윽 복사해서 붙여넣었다. 프로그래머는 중복코드를 만나면 혼란을 느낀다. '두 코드가 사실은 같은걸까?', '한 군데만 수정해도 문제가 없을까?', '동료가 실수로 놓친 것일까?' 만약 두 군데 모두 변경해야 하는데 한 군데만 변경한다면 버그로 이어질 것이다. 신뢰할 수 있고, 수정하기 쉬운 코드를 작성하려면 중복을 제거하는 것이 좋다. 단, 모양이 비슷하다고 해서 모두가 코드 중복인 것은 아니다. 코드가 중복되는가를 판단하려면, 요구사항이 변경되는 상황을 가정해보자. 요구사항이 변경되었을 때, 두 군데 모두 변경해야 한다면 코드 중복이 맞다. 객체지향 프로그래밍에서는 코드 재사용을 위해 상속 또는 합성이라는 방법을 떠올릴 수 있.. 더보기
[오브젝트] 2장 객체지향 프로그래밍 사내 오브젝트 스터디에 중간에 합류하게 되었다. 객체지향이 무엇인지 아직 잘 모르지만 내가 작성한 코드를 다른 분이 이어서 작업하시는 상황이 생겼을 때, "이해하기 쉽다. 변경하기 쉽다"라고 여길 수 있는 좋은 코드 작성하고 싶다는 욕심에 참여하게 되었다. 스터디에서 활용하는 교재 는, "객체에게 적절한 역할과 책임을 부여하는 방법과, 유연하면서도 요구사항에 적절한 협력을 설계하는 방법"을 전달하는 것을 목적으로 한다. 현재 스터디 진도는 10장 이지만, 교재 전체의 흐름을 이해하고, '결합도', '응집도', '캡슐화' 등 낯선 용어에 익숙해지기 위해 2장만 따로 정리해보려고 한다. 2장에서 다루는 영화 예매 시스템 예제는 교재 전반에 이용된다고 소개되어 있어서, 그래도 2장은 미리 봐가야겠다 싶었다. .. 더보기
[테코톡 요약] 우아한테크코스 3기 레벨3 테코톡 모아보기 1. 번들러 🎤 썬 모듈: 시스템을 이루는 논리적인 일부분 2. CSS 방법론 🎤 동동 3. 프론트엔드 성능측정 🎤 서니 로딩시간 / 렌더링시간 / 메모리 + 백엔드 주제 일부 인증과 인가 🎤 나봄 인증은 '나는 누구인가', 인가는 '나의 권한은 어디까지인가' 에 관한 것이다. 인증을 유지하는 방법에는 쿠키, 세션, 토큰이 있다. 더보기
[프로젝트매니징] 이슈 관리 & 일정 추정 도전기 이 글은 캡틴 포비의 강의 내용을 정리하고, 적용해본 경험을 담은 글입니다. 💬 여기서부터는 포비(박재성 개발자님)의 목소리로 읽어주세요 :) 우아한테크코스에서는 본과정 시작 전 입문 테스트 단계인 프리코스 때부터도 To Do List(a.k.a 구현기능목록)를 만드는 연습을 하게 된다. To Do List를 만드는 작업은 바로 이슈를 만드는 작업이라고도 할 수 있다. 이렇게 기능 목록을 작은 단위로 쪼개고 그들의 우선순위를 정하는 것은 상당히 중요한 '설계' 과정이다. 이슈를 어떻게 관리하는지는 굉장히 핵심적인 부분이고, 이슈관리를 잘하는 것은 후속작업을 위해서도 중요하다. 그러나 개발자들은 이슈를 제대로 관리하지 않고 바로 개발에 들어가는 경향이 있다. 프로젝트 시작에 앞서 어떻게 이슈를 관리하고 일.. 더보기
[테코톡 요약] 우아한테크코스 3기 레벨2 테코톡 모아보기 1. 웹 접근성 & 웹 표준 🎤 미키 웹 초창기에는 웹 표준이 없어 개발자는 넷스케이프와 IE 모두 개발해야 했었다. 이후 대세가 된 IE는 호환성을 고려하지 않고 자사에 유리한 ActiveX 오직 윈도우에서만 동작하는 플러그인을 대거 채용하기도 했다. 현대에 와서는 특정 브라우저에서만 동작하는 애플리케이션은 설 자리를 잃게 되었다. '웹 표준'은 하나의 소스로 어느 운영체제나 브라우저를 사용해도 동일한 콘텐츠를 볼 수 있도록 하는 웹 개발자들 간의 약속이다. 여기서 '동일한 컨텐츠'란 완전히 동일한 것이 아니라 동등한 수준의 컨텐츠를 뜻한다. 웹 표준은 W3C에서 확정한다. 웹 표준을 지키면 기업 입장에서는 운영의 효율성을 가져다 준다. 뿐만 아니라 웹표준은 검색 엔진 최적화, 코드 상에서 구조와 표현.. 더보기
SQL 기초 & 자주쓰는 쿼리문 정리 SQL을 배워야하는 이유 데이터베이스와 SQL 우리는 일상 속에서 'DB' 또는 '데이터베이스'라는 단어를 어렵지 않게 접한다. 보통 '관리 목적으로 데이터를 모아놓은 것'을 의미할 때 사용한다. 이 '데이터베이스'는 언제부터 우리의 일상 속에 녹아들었을까? 1970년으로 거슬러 올라가 보자. 당시 대기업과 엔지니어들은 누구나 쉽게 데이터를 정리 정돈할 수 있는 전문적인 소프트웨어가 필요로 했다. 이러한 수요에 발맞춰, 영국의 컴퓨터 과학자, 에드거 테드(1923~2003)는 IBM에서 일하는 동안 데이터베이스 관리를 위한 모델을 만들었다. 그리고 그의 이론에 기반해서 여러 가지 관계형 데이터베이스가 등장하기 시작했다. 데이터베이스의 가장 핵심적인 기능은 'CRUD'이다. 각각 생성(Create), 조회.. 더보기
[테코톡 요약] 우아한테크코스 3기 레벨1 테코톡 모아보기 오늘 오후에는 우아한테크코스 3기 첫 테코톡이 있었다. 👏👏👏 크루들이 공유해준 발표 내용을 간단하게 요약해보자. + 2021. 04. 12. '[테코톡 요약] 시리즈'는 시청 상황 등에 따라 일정하게 작성하기 어려워, 레벨 별로 하나의 게시글로 묶어서 간단하게 정리하기로 했다. 이 글에는 레벨 1 기간 동안 총 7회에 걸쳐 크루들이 발표해주신 내용들을 담았다. 1. DOM/BOM 🎤 곤이 웹은 HTML(뼈대), CSS(옷), JS(기능)으로 구성된다. DOM은 텍스트 파일로 이루어진 문서를 브라우저가 이해할 수 있는 구조로 구성한 것이다. DOM 덕분에 JavaScript는 확장자가 다른 HTML과 CSS파일의 내용을 읽고 수정할 수 있다. 노드 객체의 계층적인 구조로 이루어진다. 노드에는 총 12가지.. 더보기
Git - 자주 사용하는 명령어 모음 우아한테크코스 과정을 진행하면서 자주 사용하는 git 명령어를 정리해보자. 과거의 커밋 메세지 변경하기 PR 메세지를 작성하기 전 git log를 보며 조금 더 커밋메세지를 자세하게 변경하고 싶을 때 사용한다. git rebase -i HEAD~3 // 변경하고자 하는 커밋이 몇 번째 전 커밋인지 HEAD~숫자로 표현 // 'pick'을 'edit'로 변경 후 저장 (:wq + enter) git commit --amend // 내용 수정 후 저장 (:wq + enter) git rebase --continue 단, 변경하려는 커밋을 이미 push하고 나서 이 방법을 사용하면 conflict가 발생할 수 있고 PR에도 중복되어 들어가게 된다. 이미 커밋을 했는데 add 하고 싶은 파일이 있다면 아래 방법.. 더보기