Web 개발
-
OAuth2.0 - AccessToken, Role, RegisterWeb 개발/Web 기본 지식 2023. 5. 5. 12:12
3가지 point가 존재 예를 들면 사용자가 Service에 접속해 글을 작성하거나 글을 봤다고 가정하면 해당 Service 사용자를 대신해서 Their(구글,페이스북, 트위터) 구글과 같은 서비스에 캘린더에 날짜 기록을 한다던지, 또는 페이스북에 글을 썼다거나 글을 봤다는 걸 공유 해준다던지 이러한 것들을 하기 위해서는 Service에서 User로 부터 User가 사용하고 있는 Their Service에 접근할 수 있도록 허가를 받아야한다. 일단 Their Service에 사용자의 Id, Password가 존재할 것이다. 그것을 User로 부터 전달 받아 Service에서 User의 Id, Password를 기억하고 있다가 실제로 User를 대신해서 Their Service에 접속할 때 기억한 Id,P..
-
GraphQL - GraphQL로 정보 주고받기Web 개발/Web 기본 지식 2023. 3. 23. 17:05
GraphQL로 정보 주고 받기 REST API는 어떤 라이브러리나 기술이 아니라 정보를 주고 받는 형식이다. 그래서 해당 형식에 따라서 여러 라이브러리들이 정보를 주고 받을수 있다. 위 화면은 Apllo라이브러리에서 제공하는 UI이다. 위 UI로 만들고 있는 GraphQL프로젝트에 여러 명령어들을 실행 할 수 있는 UI를 제공한다. REST API에서 사용되는 PostMan과 같은 기능을 한다고 생각하면 된다. GraphQL 사용해 보기 teams정보 받아오기 query는 REST API에서 GET과 같은 것이다. 그 다음에 받아올 객체인 teams{ }을 입력하고 그 안에 team객체에서 받아오기를 원하는 모든 속성을 입력해준다. 일단 위 그림에서는 team에 존재하는 모든 속성을 입력한 다음에 재생..
-
디자인 원칙 - 구현이 아닌 인터페이스에 대해 프로그래밍Web 개발/디자인 패턴 2022. 12. 21. 19:16
구현이 아닌 인터페이스에 대해 프로그래밍 구현이 아닌 인터페이스에 대해 프로그래밍하라, 또 구상 클래스에 의존하는 대신 추상화에 의존하라 기존의 코드를 망가뜨리지 않고 쉽게 확장할 수 있다면 그 디자인은 충분히 유연하다고 말할 수 있다. 만약 두 클래스가 서로 같이 작업하도록 만들려면 둘 중 하나를 다른 클래스에 의존하게 만드는 것으로 시작할 수 있다. 그런데 객체간의 공동 작업을 만드는 더 유연한 방법이있다. 한 객체가 다른 객체에서 정확히 무엇을 필요로하는지 확인하세요 어떤 메서드들을 실행하나요? 새 인터페이스 또는 추상 클래스에서 이러한 메서드들을 설명하세요. 다른 객체에 의존하는 (dependency인) 클래스가 아닌 인터페이스를 구현하도록 하세요. 이제 두 클래스를 구상 클래스가 아닌 이 인터페..
-
디자인 원칙 - 변화하는 내용을 캡슐화Web 개발/디자인 패턴 2022. 12. 20. 11:49
소프트웨어 설계에는 몇 가지 보편적인 원칙들이 있다. 변화하는 내용을 캡슐화 당신의 프로젝트에서 변경되는 부분들을 식별한 후 변하지 않는 부분들과 구분하세요. 이 원칙의 가장 큰 목적은 변화로 인해 발생하는 결과를 최소화하는 것이다. 독립된 모듈에서 변경되는 프로그램의 일부를 따로 떼어내면 코드의 나머지 부분들을 역효과로부터 보호할 수 있을 뿐 만아니라 변경 사항들을 구현하고 테스트하는 데 걸리는 시간을 줄일 수 있다. 매서드 수준에서 의 캡슐화 전자 상거래 웹사이트를 개발하고 있다고 가정해보자 코드 어딘가 세금을 포함한 주문의 총계를 계산하는 getOrderTotal메서드가 있다. 이때 쉽게 미래에 세금과 관련한 코드를 변경해야 할지도 모른다는 것을 예측할 수 있다. 왜냐면 세율은 거주하는 국가,주,도..
-
디자인패턴 - 소개Web 개발/디자인 패턴 2022. 12. 19. 15:33
디자인패턴 분류 기분 복잡성 상세도 설계중인 시스템에 적용 범위 의도 목적 가장 기본적인 하위 수준 패턴을 이디엄이라고 한다. 일반적으로 이디엄은 하나의 프로그래밍 언어에만 해당한다. 가장 보편적인 상위 수준 패턴은 아키텍쳐 패턴이다. 개발자들은 거의 모든 언어로 이러한 패턴을 구현할 수 있다. 아키텍쳐 패턴은 애플리케이션 전체구조(아키텍처)를 설계하는데 사용할 수 있다. 디자인 패턴의 주요 세가지 그룹 생성 패턴 : 기존 코드를 재활요하고 유연선을 증가시키는 객체 생성 매커니즘을 제공한다. 구조 패턴 : 구조를 유연하고 효율적으로 유지하면서 객체와 클래스를 더 큰 구조로 조합하는 방법을 설명한다. 행동 패턴: 객체 간의 효과적인 의사소통과 책임 할당을 처리한다. 디자인 패턴은 객체지향 설계의 일반적인 ..
-
객체 간의 관계(의존성,연관관계....)Web 개발/디자인 패턴 2022. 12. 19. 14:55
객체 간의 관계 상속 및 구현 외에도 객체들 사이에는 다른 유형의 관계들이 있다. *STL(Stabdard Template Library,표준 템플릿 라이브러리): 개체들을 보관하기 위한 다양한 자료구조와 이들 자료구조에 보관된 개체들을 반복적으로 순회할 수 있게 해 주는 반복자, 사용자에서 정의한 코드를 입력 인자로 전달받아 처리할 수 있게 추상화한 함수 개체, 다양한 문제 해결 방법이 구현된 함수들로 구성된 알고리즘 등으로 구성되어 있다. *컴포넌트: 소프트웨어에서도 단자의 규격 같은 장치가 필요하다. 객체지향 언어에서는 이러한 장치를 인터페이스(Interface)로 제공해준다. 인터페이스는 사용자에게 해당 소프트웨어를 사용하기 위한 메소드(=장치)를 공개하고, 규격화된 메소드 환경에서 소프트웨어를 ..
-
OOP의 기초Web 개발/디자인 패턴 2022. 11. 18. 09:40
OOP의 기초 부모클래스와 자식클래스 상속 자식 클래스들은 부모로부터 상태와 행동들을 상속 받고, 그 중에서 부모와 무언가 다른 것들만을 정의한다. 연관된 비지니스 요구사항이 있다면, 여기서 더 나아가 Organisms(모든 생명체)라는 더욱 일반적이 클래스를 추출할 수도 있다. 이 클래스는 Animals(동물들) 및 Plants(식물들)에 대한 부모 클래스가 될 것이다. 이러클래스들의 피라미드가 바로 계층구조이다. 이러한 계층구조에서 Cat(고양이) 클래스는 Animal(동물)과 Organism(생명체) 클래스 양쪽의 모든 내용을 상속받는다. 자식클래스들은 무보 클래스들에서 상속한 메서드들의 행동을 오버라이드(Override)할 두 있다. 또 자식 클래스들은 디폴트 행동들을 완전히 대체하거나 몇 가지 ..