본문 바로가기

Programming/프로그래밍 이론10

[프로그래밍 이론] HTTP forward와 redirect HTTP forward와 redirect HTTP 통신에서 request를 다른 URL로 보내버리는 기법인 forward와 redirect를 알아보자. 포워딩 (Forwading) 포워딩은 클라이언트의 request를 서버 내부에서 다른 리소스로 전달하는 기법이다. 모든 처리가 서버 내부에서 이루어지기 때문에 클라이언트는 이 과정을 알 수 없으며, 클라이언트는 처음 요청한 URL을 유지하게 된다. 단일 요청/응답 구조를 가진다. 리디렉션 (Redirection) 리디렉션은 클라이언트의 request를 새로운 URL로 이동하도록 서버가 클라이언트에게 재안내하는 기법이다. 서버는 클라이언트에게 HTTP 상태코드와 함께 새로운 URL을 제공하여 다시 request를 보낼 것을 명시적으로 알린다. 클라이언트는 .. 2023. 12. 7.
[프로그래밍 이론] In-app browser, External browser In-app browser, External browser 모바일 프로그래밍 환경에서의 인앱 브라우저와 외부 브라우저의 특징과 차이점을 알아보자 사전 지식 브라우저의 정의 웹 브라우저 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 웹 브라우저 또는 브라우저(영어: web browser 또는 browser, 문화어: 열람기)는 웹 서버에서 이동하며(navigate) 쌍방향으로 통신하고 H ko.wikipedia.org 인앱 브라우저와 외부 브라우저를 나누는 기준 간단하다, 브라우저가 "특정 어플리케이션에 종속되었는지의 여부"를 따지면 된다. In-app browser란? 인앱 브라우저(In-app browser)는 내장 브라우저(Internal brow.. 2020. 7. 3.
[프로그래밍 이론] 두 점 사이의 절대각도를 재는 atan2 두 점 사이의 절대각도를 재는 atan2 프로그래밍 언어에서 역탄젠트를 계산하는 함수 atan2의 특징을 알아보자 아크탄젠트란? 아크탄젠트(arctangent)는 역탄젠트라고도 하며 탄젠트의 역함수이다. 아크탄젠트를 이용하면 위 사진에서의 θ의 각도를 구할 수 있다. 모든 프로그래밍 언어에는 아크탄젠트를 계산할 수 있도록 Math 모듈에 atan(y / x)과 atan2(y, x) 함수를 지원한다. atan과 atan2의 차이점 atan과 atan2은 두 점 사이의 θ의 절대각을 구하는 함수인데 왜 두가지로 나뉘었을까? atan은 두 점 사이의 탄젠트값을 받아 절대각을 -π/2 ~ π/2의 라디안 값으로 반환한다. (-90 ~ 90도) atan2는 두 점 사이의 상대좌표(x, y)를 받아 절대각을 -π .. 2020. 6. 3.
[프로그래밍 이론] 반각문자 @와 전각문자 @ ▶ 주제 : 반각문자 @와 전각문자 @ 반각문자와 전각문자에 대해 알아보고 실제 프로그래밍 상황에서 어떤 문제가 발생하는지에 대해 알아보자. ▶ 상황 다국어를 지원하는 모바일 앱을 개발 및 테스트 하던 도중 일본어 환경에서 회원가입이 되지 않는 문제가 발생하였다. 정규식을 통해 이메일 형식 아이디를 입력받게 구현되있었는데, 제대로 입력했음에도 정규식이 통과하지 않는 것이었다! ▶ 원인 위의 상황이 발생한 원인은 일반적인 자판의 반각 골뱅이표시(@)와 일본어 자판의 전각 골뱅이표시(@)가 서로 다른 문자이기 때문에 반각 골뱅이표시만으로 이메일 형식을 검사하는 정규식에 통과하지 못했던 것이다. 즉, 두 골뱅이표시를 나타내는 유니코드가 각각 다르다. 완전히 다른 문자라는 것이다. (이 글을 보고있는 환경에 따.. 2019. 10. 10.
[프로그래밍 이론] JWT (Json Web Token) ▶ 주제 : JWT (Json Web Token). 서버가 클라이언트의 권한 및 인증정보가 표현된 JSON을 암호화 후 Token으로 발급하여, 클라이언트가 서버에 통신할 때 Session 없이 상태를 표현할 수 있도록 해주는 인증방식. ▶ Stateless (상태없음) JWT를 왜 사용하는지에 대해서는 Stateful&Stateless 서버의 차이점부터 알아야 한다. ▷ Stateful 서버 : 서버가 클라이언트의 상태정보(Session)를 보유 및 유지하며, 상태정보를 바탕으로 클라이언트에게 서비스를 제공한다. 상태정보는 서버 컴퓨터의 메모리 혹은 DB에서 관리된다. ▷ Stateless 서버 : 서버가 클라이언트의 상태정보를 보유하지 않으며 클라이언트측의 요청만으로 서비스를 제공한다. 상태정보라는 .. 2019. 4. 19.
[디자인 패턴] 팩토리 메소드 패턴 (Factory method pattern) ▶ 주제 : 팩토리 메소드 패턴 (Factory method pattern). 생성 패턴의 하나. 팩토리라는 인터페이스를 정의하고 인스턴스화를 해내는 부분을 서브 클래스에 위임하는 패턴이다. ▶ 관련 문서▷ 추상 팩토리 패턴▷ 위키피디아 ▶ 구조 팩토리 인터페이스를 정의하여 이를 서브 클래스가 상속받아 구현하는 형태이다. 서브 클래스는 Product 타입 객체를 생성하고 반환하는 createProduct 함수를 정의해야한다. ▶ 예시 아래 예시는 C#을 기반으로 작성하였다. public interface IFactory { IProduct CreateProduct(); } 팩토리 인터페이스를 정의한다. 인터페이스에는 특정 타입을 반환할 함수가 선언되어야 한다. public interface IProduc.. 2019. 3. 20.
[디자인 패턴] 복합체 패턴 (Composite pattern) ▶ 주제 : 복합체 패턴 (Composite pattern). 구조 패턴의 하나. 복합 객체 그룹(전체)과 단일 객체를 동일하게 취급하거나 다룰 수 있게 해주는 방식으로, 재귀적 특성을 띄며 트리(tree) 구조에 가까운 패턴이다. ▶ 구조 복합체 패턴의 구조는 크게 4가지로 분류된다.▷ 첫 번째 : 컴포넌트 인터페이스(추상클래스도 가능) : Leaf와 Composite를 같은 타입으로 취급하기 위한 인터페이스로써, Leaf와 Composite가 동일하게 가져야 할 함수를 여기에 선언한다.▷ 두 번째 : 리프 클래스 : 단일 객체를 표현할 클래스로, 그룹의 구성원 역할을 하며 트리구조로 따지면 가장 밑단에 존재하는 나뭇잎 역할을 한다고 보면 된다.▷ 세 번째 : 컴포지트(복합체) 클래스 : 복합 객체 그.. 2019. 3. 12.
[디자인 패턴] 빌더 패턴 (Builder pattern) ▶ 주제 : 빌더 패턴 (Builder pattern). 생성 패턴의 하나. 클래스 설계에서 생성 부분을 분리하여, 객체를 깔끔하고 유연하게 생성 부분만 담당하는 빌더를 고안한 패턴이다.직접 구현할 일이 흔하지는 않지만, 프레임워크에서 제공해주면 생각보다 흔하게 쓴다.특히, 안드로이드 개발자들은 빌더 패턴을 반드시 본 적이 있을 것이다. ▶ 예시 여러 물건을 소유한 사람을 클래스로 표현한다고 쳤을 때 아래 예시처럼 표현할 수 있다.아래 예시는 C#을 기반으로 작성하였다. public class Human { private int _money; private string _name; private float _height; private float _weight; public Human (int money.. 2019. 3. 9.
[디자인 패턴] 추상 팩토리 패턴 (Abstract factory pattern) ▶ 주제 : 추상 팩토리 패턴 (Abstract factory pattern). 생성 패턴의 하나. 비슷한 속성의 제품(객체)들을 인터페이스로 규격화된 공정(팩토리)에서 일관된 방식으로 생성하고, 생성된 제품끼리는 쉽게 교체될 수 있도록 고안한 패턴이다. ▶ 구조 추상 팩토리 패턴의 구조는 크게 4가지로 분류된다.▷ 첫 번째, 추상 팩토리 인터페이스(추상클래스도 가능) : 추상 제품을 생산하는 인터페이스 제공▷ 두 번째, 구현 팩토리 클래스 : 구현된 제품을 생산하는 방법 구현▷ 세 번째, 추상 제품 인터페이스(추상클래스도 가능) : 제품에 대한 추상적 인터페이스 제공▷ 네 번째, 구현 제품 클래스 : 팩토리가 생성할 구체적인 제품 ▶ 예시 기타(Guitar) 공장에서 통기타, 일렉기타 등 여러 종류의 .. 2019. 2. 14.
[디자인 패턴] 싱글톤 패턴 (Singleton pattern) ▶ 주제 : 싱글톤 패턴 (Singleton pattern). 생성 패턴의 하나. 싱글톤 패턴이란, 객체지향 언어에서 프로그램 시작 후에 어떤 클래스가 단 한 번만 인스턴스를 생성하여 메모리에 할당하고, 이후에 이 클래스의 인스턴스가 필요하면 미리 만들어진 인스턴스를 전역 공간에서 불러와서 사용하는 패턴이다. ▶ 예시 아래 예시는 C#을 기반으로 작성하였다. class Program { static void Main(string[] args) { var singletonInstance = Example.GetInstance(); } public class Example { private static Example _instance; private Example() { } // 인스턴스화 하거나 이미 생성.. 2019. 2. 13.
반응형