본문 바로가기
반응형

전체 글374

오브젝트 - 3. 역할, 책임, 협력 01. 협력 - 영화 예매 시스템 돌아보기 협력: 기능 구현을 위한 상호작용 책임: 협력에 참여하기 위해 수행하는 로직 역할: 협력 안에서 수행하는 책임들이 모여 객체가 수행하는 역할을 구성한다. - 협력 객체가 메시지를 처리할 방법을 스스로 선택한다.(자율적 존재) 자율적 존재가 되기 위해서는 자신이 알고있는 정보를 이용해 직접 요금을 계산해야 한다. (캡슐화) 메시지를 처리하던 중에 직접 처리할 수 없는 정보나 행동이 필요한 경우 또다른 객체에게 도움을 요청한다. - 협력이 설계를 위한 문맥을 결정한다. 객체의 행동을 결정하는 것은 객체가 참여하고 있는 협력이다. 협력이 바뀌면 객체가 제공해야하는 행동 역시 바뀌어야 한다. 협력 -> 행동 -> 상태 협력이 일종의 문맥(Context)를 제공한다. 0.. 2021. 8. 9.
오브젝트 - 2.객체지향 프로그래밍 1. 영화 예매 시스템 2. 객체지향 프로그래밍을 향해 - 협력, 객체, 클래스 · 어떤 객체들이 필요한지 (어떤 클래스가 필요한지 보다) 먼저 고민하라. · 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야 한다. - 자율적인 객체(상태는 숨기고 행동만 외부에 공개) · 캡슐화: 데이터와 기능을 객체 내부로 함께 묶는 것 · 접근제어: public protected, private 등 접근 수정자 제공 · public interface: 외부에서 접근 가능한 부분 · implementation(구현): 외부 접근 불가, 내부만 접근 가능 - 프로그래머의 자유 · 클라이언트 프로그래머에게 필요한 부분만 공개하여, 불필요한 접근을 방지한다. . 클라이언트 프로그래머가 알아.. 2021. 8. 8.
오브젝트 - 1.객체, 설계 1. 티켓판매 애플리케이션 구현하기 2. 무엇이 문제인가 - 모든 모듈은 제대로 실행돼야 한다(o) - 변경이 용이해야 한다(x) => 과한 의존성 => 결합도가 높다. - 이해하기 쉬워야 한다(x) 3. 설계 개선하기 - 자율성을 높이자 · 모든 객체가 자율적인 존재가 되도록 설계를 변경(TicketSeller, Audience 등) · 캡슐화 : 객체 내부의 세부적인 사항을 감추는 것 => 객체 사이의 결합도를 낮춤 => 설계 변경이 쉬워짐. - 절차지향과 객체지향 · 절차지향: 프로세스와 데이터를 별도의 모듈에 위치시키는 방식 · 객체지향: 프로세스와 데이터를 동일한 모듈 내부에 위치시키는 방식. 어떤 책임을 할당할 것이냐에 초점을 맞춤 - 책임의 이동 · 기존: 책임이 Theater에 집중됨 · .. 2021. 8. 8.
Javascript 주요 팁 1. 조건이 필요할 때 => 3항 연산자 score > 5 ? 'Good': 'Bad'; // 조건이 true이면 'Good', false이면 'Bad' 2. 조건이 필요할 때 => nullish coalescing const message = text ?? 'Nothing to display'; //text가 있으면 text, 없으면(null, undefined) 'Nothing to display' //함수 default parameter : null 인 경우에는 null을 출력 function printMessage(text = 'Nothing to display'){ console.log(text); } // Logical Or || leftExpr ?? right Expr // falsy(nul.. 2021. 8. 7.
Firebase 이미지 저장하기(storage) 업로드 content 올리기 2021. 7. 30.
Firebase 데이터 저장하기 파이어베이스 웹서버 입니다. 2021. 7. 30.
Firebase 구글 인증하기 1. 인증방식 추가 2. 앱 추가 프로젝트 개요에서 앱 추가를 진행합니다. 또는 생성된 앱을 클릭하여 SDK 소스추가 부분으로 진행합니다. 3. 소스코드 복사 아래의 스크립트 부분을 복사하여 public/index.html 파일에 붙여넣습니다. 파이어베이스 웹서버 입니다. // 구글 인증 기능 추가 var provider = new firebase.auth.GoogleAuthProvider(); // 인증하기 firebase.auth().signInWithPopup(provider).then(function(result) { // This gives you a Google Access Token. You can use it to access the Google API. var token = result... 2021. 7. 29.
Firebase API 만들기 1. 프로젝트 생성 - 로그인 / 프로젝트 생성 - firebase.google.com - Function 과 Hosting 기능을 사용하려면 Blaze 로 업그레이드가 필요합니다. 2. 로컬에 firebase 설치 및 시작 npm install -g firebase-tools 1) firebase 로그인 firebase login 2) firebase init firebase init 생성 과정에서 lint는 y로 설치해줍니다. public directory 의 이름을 지정해야 하는데 기본 설정인 public으로 진행하겠습니다. (public directory 는 html, css, js 파일들이 위치하게 될 디렉토리입니다.) rewrite all urls to /index.html 은 n 으로 입력 .. 2021. 7. 27.
Oracle 여러행의 데이터를 하나의 행에 가로로 합치기(LISTAGG) SELECT LISTAGG(필드명, 구분자) WITHIN GROUP ( ORDER BY 정렬기준필드 ASC 또는 DESC) FROM 테이블 2021. 7. 27.
Gatsby 시작하기 (with Typescript) 0. Gatsby-cli 설치 npm install -g gatsby-cli 1. Gatsby 프로젝트 생성 gatsby new [프로젝트명] or npx gatsby-cli new [프로젝트명]// gatsby-cli설치 없이 수행할 때 yarn remove gatsby-plugin-manifest gatsby-plugin-gatsby-cloud // 필요없는 라이브러리 삭제 2. 타입스크립트 설치 yarn add typescript --dev yarn add gatsby-plugin-typescript 3. gatsby-config.js 파일 수정 module.exports = { siteMetadata: { title: `Gatsby Default Starter`, description: `Kick.. 2021. 7. 4.
반응형