티스토리

Outgoing Introvert
검색하기

블로그 홈

Outgoing Introvert

hongssup.tistory.com/m

개발하는 홍홍이

구독자
33
방명록 방문하기
반응형

주요 글 목록

  • Bearer Token 이란? Bearer Token?- HTTP Authorization 헤더를 통해 클라이언트가 서버에 인증 정보를 전달하는 데 사용됨- OAuth 2.0 인증 프레임워크에서 사용되는 액세스 토큰의 일종- API에 접근하기 위해 클라이언트와 서버 간 인증 및 권한 부여를 처리 Bearer Token의 사용 방법클라이언트가 보호된 리소스에 액세스하려는 경우, 인증 서버에 요청을 보내어 Bearer 토큰을 얻고Bearer Token은 HTTP 요청의 Authorization 헤더에 포함되어 전송된다.Authorization: Bearer  서버는 토큰을 유효성 검사하여 클라이언트가 리소스에 액세스할 권한이 있는지 확인한다. Bearer Token의 특징토큰 기반 인증:클라이언트는 서버에서 인증을 받으면 토큰을 발급받고.. 공감수 1 댓글수 0 2024. 12. 22.
  • 로드밸런스 헬스체크 운영 서버 5개 쓰고 있는데api 하나 쳐도 서버 3개에 돌아서 트랜잭션 어쩌구 저쩌구 그래서 안되는 문제  로드밸런싱 (Load Balancing)로드밸런싱은 여러 서버로 들어오는 트래픽을 효율적으로 분산하여 서버의 부하를 줄이고, 애플리케이션의 가용성과 성능을 높이는 기술 주요 역할: 1. 트래픽 분산: • 클라이언트 요청을 여러 서버로 균등하게 분산하여 특정 서버에 과부하가 걸리지 않도록 함. 2. 장애 허용: • 하나의 서버가 장애가 발생하면 나머지 서버로 트래픽을 재분배하여 서비스 중단을 방지. 3. 스케일링 지원: • 서버 수를 유동적으로 늘리거나 줄이는 스케일링 작업에서 필수적으로 사용됨. 로드밸런싱 방식: 1. 라운드 로빈 (Round Robin): 요청을 순차적으로 각 서버에 분배. 2... 공감수 0 댓글수 0 2024. 10. 1.
  • 도메인 www 세션 쿠키 유지 여부 www.hongssup.com 과 hongssup.com 의 차이? 이 둘은 이론적으로 다른 도메인일 수 있지만, 대부분의 경우 동일한 웹사이트로 리디렉션된다.1. www의 의미 (서브도메인)www는 서브도메인(subdomain)으로 naver.com 도메인의 하위도메인이다.기본 도메인인 naver.com과 서브도메인인 www.naver.com은 이론적으로는 서로 다른 도메인으로 취급될 수 있지만, 대부분의 웹사이트는 동일한 사이트로 처리하도록 리디렉션 설정을 해둔다. 2. 쿠키 설정브라우저에서 쿠키를 설정할 때, 도메인에 따라 쿠키가 다르게 저장될 수 있다. www 서브도메인에서 설정된 쿠키와 기본 도메인에서 설정된 쿠키는 별도로 관리될 수 있다. 따라서 도메인에 www 가 붙는지 여부에 따라 세션 쿠.. 공감수 0 댓글수 0 2024. 9. 30.
  • DNS 와 도메인에 대하여 DNS (Domain Name System) 란?도메인 이름을 IP 주소로 변환해 주는 시스템ex) www.hongssup.com -> 172.217.16.196사람들은 기억하기 쉬운 도메인 이름을 사용하지만, 컴퓨터는 IP 주소를 사용해 서로 통신한다.DNS는 도메인 이름을 입력하면 해당하는 IP 주소를 찾아준다. 사용자가 웹사이트의 도메인 이름을 입력하면, DNS가 해당 서버의 IP 주소를 찾아 웹사이트에 연결할 수 있게 한다.즉, DNS는 인터넷의 주소록(전화번호부) 역할을 하며, 도메인 이름을 입력하면 서버의 IP 주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템. 도메인이란?웹사이트 주소 www.hongssup.kr 에서 hongssup.kr 이 도메인www 는 host name.. 공감수 2 댓글수 0 2024. 9. 30.
  • 스케일링 Scaling 스케일링 작업이란?시스템의 처리 능력을 확장하거나 축소하는 작업.사용자 트래픽 변화에 대응하기 위해 리소스를 조정하여 애플리케이션 성능과 가용성을 유지 스케일링의 종류 1. 수직 스케일링 (Vertical Scaling) • 기존의 서버 성능을 업그레이드하거나 다운그레이드하는 방식. • CPU, 메모리, 디스크 용량 등을 확장 또는 축소. • 예: 서버의 RAM을 16GB에서 32GB로 업그레이드.장점: • 구조가 단순하고 설정이 쉬움. • 소프트웨어 변경 없이 구현 가능.단점: • 하드웨어의 물리적 한계에 도달하면 더 이상 확장 불가능. • 한 서버에 문제가 발생하면 전체 서비스에 영향을 미침.  2. 수평 스케일링 (Horizontal Scaling) • 동일한 서버를 추가하거나 제거하여 시스템을 확.. 공감수 0 댓글수 0 2024. 8. 20.
  • .env 파일이란? + 생성하기 fastlane 설정하면서 .env 파일을 만들어주었다.   .env 파일이란?.env 파일은 소프트웨어 개발에서 환경 변수(environment variables)를 정의하고 관리하기 위해 사용되는 파일이다. 이 파일은 주로 프로젝트의 루트 디렉토리에 위치하며, 주로 보안이 중요한 정보나 환경별로 달라져야 하는 설정값을 이 파일에 저장한다.  .env 파일의 주요 기능1. 환경 변수 관리 .env 파일은 데이터베이스 연결 정보, API 키, 비밀 키, 서버 포트 등과 같이 환경에 따라 달라질 수 있는 설정값을 저장한다.애플리케이션에서 사용되는 중요한 설정값을 환경 변수로 관리 가능. ex) 데이터베이스 연결 정보, API 키, 비밀 키, 포트 번호 등2. 환경별 설정 분리개발 환경(development.. 공감수 0 댓글수 0 2023. 12. 15.
  • command line 명령어 GUI (Graphic User Interface): 화면에서 마우스를 통해 컴퓨터를 조작하는 그래픽 기반의 유저 인터페이스CLI (Command Line Interface): 터미널에서 텍스트를 통해 컴퓨터를 조작하는 명령어 기반의 인터페이스 Mac 사용자는 터미널을 통해, 윈도우 유저는 cmd 를 통해 명령 프롬프트 사용 가능 1. 탐색ls : 현재 경로에 존재하는 파일 확인 ** ls -al : 숨김 파일, 파일 크기, 소유자, 생성일자 등 더 자세한 파일정보 보기 가능pwd : 현재 위치한 경로 디렉토리 출력 (print working directory)cd : 폴더(디렉토리) 이동 (change directory)2. 파일 / 폴더 관리mkdir : 새폴더(새디렉토리) 생성 make direct.. 공감수 0 댓글수 0 2023. 9. 12.
  • Runtime vs. Compile time 런타임과 컴파일타임 Compile Time 컴파일타임이란? : 개발 언어(high-level programming language)로 작성된 소스코드가, compile 과정을 통해 컴퓨터가 이해할 수 있는 기계어(low-level code / machine code)로 변환되는 과정을 말한다. 컴파일 타임 동안 컴파일러는 코드의 syntax, semantic, type 을 체크한다. Compile time Error 컴파일타임 에러란? : 소스코드가 컴파일 되는 과정 중에 발생하는 에러를 의미한다. 대표적으로 Syntax error, 파일 참조 오류 등과 같은 문제들로 인해 컴파일이 방해되어 발생하는 오류들이 있다. 컴파일 에러 발생 시, 현재 문제가 되는 소스코드를 알려준다. Run-Time 런타임이란? : 컴파일 과정을.. 공감수 0 댓글수 0 2023. 2. 6.
  • Design Pattern 디자인 패턴이란? 디자인 패턴이란? 디자인 패턴은 소프트웨어를 개발할 때 발생하는 다양한 문제에 대한 재사용 가능한 템플릿 해결방법 디자인 패턴의 종류 1. Creational Design Pattern 2. Structural Design Pattern 3. Behavioral Design Pattern ( + architectural patterns ) Creational Design Pattern provides the object or classes creation mechanism that enhance the flexibilities and reusability of the existing code. They reduce the dependency and controlling how the use interac.. 공감수 0 댓글수 0 2022. 12. 20.
  • DI (Dependency Injection) 의존성 주입 보호되어 있는 글입니다. 공감수 0 댓글수 0 2022. 11. 21.
  • Process vs. Thread 보호되어 있는 글입니다. 공감수 0 댓글수 0 2022. 9. 18.
  • 네이밍 컨벤션 - camelCase, PascalCase, snake_case, kebab-case Naming Conventions 대부분의 프로그래밍 언어에서는 각 단어를 완전히 별개로 해석하기 때문에, 여러 단어가 합쳐진 한 변수 내에 공백 문자가 있을 경우 단어마다 별개의 단일 단위로 처리가 된다. 따라서 두 단어 이상으로 변수명이나 클래스 명을 작성할 때는 공백을 제거하고, 단어를 단일 문자열로 결합하는 명명 규칙을 정해서 만든다. 프로그래밍 언어에서 자주 사용되는 명명 규칙들은 다음과 같다. 표기법 종류 camelCase PascalCase snake_case kebab-case camelCase (lower camel case) 첫 문자는 소문자로 시작하고, 띄어쓰기 대신 대문자로 단어를 구분한다. ex) phoneNumber, createdAt Swift에서 변수 및 상수 표기법 Pasc.. 공감수 0 댓글수 0 2022. 9. 14.
  • Context Switching 이란? 보호되어 있는 글입니다. 공감수 0 댓글수 0 2022. 9. 5.
  • 동기화를 위한 방법들 Spinlock / Mutex / Semaphore 참고 : youtube - 쉬운코드 를 참고하여 정리한 것임 동기화 매커니즘 세 가지 - 스핀락 Spinlock - 뮤텍스 Mutex - 세마포 Semaphore race condition 경쟁 조건 : 여러 프로세스/스레드가 동시에 같은 데이터를 조작할 때, 타이밍이나 접근 순서에 따라 결과가 달라질 수 있는 상황 synchronization 동기화 : 여러 프로세스/스레드를 동시에 실행해도 공유 데이터의 일관성을 유지하는 것 critical section 임계 영역 : 공유 데이터의 일관성을 보장하기 위해 하나의 프로세스/스레드만 진입해서 실행(mutual exclusion) 가능한 영역 Spinlock mutual exclusion 을 위해 lock 을 가질 수 있을 때까지 반복해서 시도하는 방법 .. 공감수 0 댓글수 0 2022. 9. 5.
  • thread란? + 멀티쓰레드의 장단점 Process & Thread 프로세스 : 실행 중인 프로그램. 자원(resources. 메모리, CPU ...) + 쓰레드로 구성 쓰레드 : 프로세스 내에서 실제 작업을 수행. 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다. 프로세스 : 쓰레드 = 공장 : 일꾼 싱글 쓰레드 프로세스 = 자원 + 쓰레드 멀티 쓰레드 프로세스 = 자원 + 쓰레드 + 쓰레드 + ... + 쓰레드 여러 작업을 나눠 동시에 수행 가능. 보다 효율적으로 처리할 수 있다. 대부분의 프로그램은 멀티쓰레드로 작성되어 있다. 멀티쓰레드의 장단점 장점 - 시스템 자원을 보다 효율적으로 사용할 수 있따. - 사용자에 대한 응답성(responseness)이 향상된다. - 작업이 분리되어 코드가 간결해진다. 단점 프로그래밍할 때 고려해야.. 공감수 0 댓글수 0 2022. 5. 13.
  • 네트워크 기초 네트워크란? 노드들이 데이터를 공유할 수 있게 하는 디지털 전기통신망의 하나. 즉, 분산되어 있는 컴퓨터를 통신망으로 연결한 것. 서로 연결되어 있는 하나의 통신망 네트워크에서 여러 장치들은 노드 간 연결을 사용하여 서로에게 데이터를 교환한다. *노드 : 네트워크에 속한 컴퓨터 또는 통신 장비를 뜻하는 말 전 세계의 네트워크가 유기적으로 연결되어 동작하는 통합 네트워크가 바로 인터넷. (인터넷은 네트워크 망의 한 종류. 세상에서 가장 큰 네트워크 통신망) www (world wide web) 일반적으로 웹이라고 하며, 인터넷상에서 쉽게 정보를 찾을 수 있도록 고안된 세계적인 인터넷망으로, HTTP 프로토콜을 사용하기 위한 인터페이스 는 인터넷을 통해 웹과 관련된 데이터를 공유하는 것. 웹서비스 (http.. 공감수 0 댓글수 0 2022. 1. 6.
  • [네트워크] 네트워크 패킷 분석 및 Wireshark 설치 (mac) Wireshark 설치 및 http 네트워크 패킷 분석 방법 네트워크 패킷(packet) 이란? 네트워크를 통해 전송하기 쉽도록 자른 데이터의 전송단위. 패킷은 제어 정보와 사용자 데이터(페이로드)로 이루어진다. ex) IP 패킷은 헤더와 페이로드로 이루어진다. 페이로드 : 전송되는 실제 데이터. 전송의 근본적인 목적(필요한 정보)이 되는 데이터의 일부분. 함께 전송되는 헤더와 메타데이터 같은 데이터는 제외한 것. 프로토콜 오버헤드 : 네트워크를 통해 대상으로 라우팅되는 데이터와 함께 전송되어야 하는 정보. 올바른 대상에 도달하기 위해 전송중인 데이터에 추가로 보내지는 정보라고 볼 수 있다. 보통 패킷의 시작 부분, 헤더에 저장되어 Header라고도 함. 목적 : 정보 전송의 신뢰성 확보 및 시스템의 안.. 공감수 0 댓글수 0 2022. 1. 6.
  • 사용자 인증 방식 - OAuth, JSON Web Token(JWT) HTTP 인증 사용자 인증 Authorization : 하나의 세션 동안 사용자의 신원을 확인하여 인증하는 것. 사용자 인증 방식 - 기본 인증 (ID/PW) - 토큰 인증 (OAuth, JWT) - 전자 서명 로그인은 사용자 인증의 한 방식일 뿐. 단순히 http 헤더에 사용자 계정정보(Id/pw)를 넣어 서버에서 식별하게 되면 제 3자에 의해 탈취당했을 때 개인정보가 드러나기 때문에 보안에 좋지 않은 방식이라 할 수 있다. 기본 인증 방식은 보안에 매우 취약한 구조이기 때문에 OAuth JWT 같은 다른 대안들이 떠오르고 있다. 쿠키와 세션 로그인 과정에서만 계정 정보를 서버에 직접 보내고, 그 후로는 세션과 쿠키를 활용하여 인증하는 방식. HTTPS는 Stateless, Connectionless라.. 공감수 0 댓글수 0 2021. 12. 31.
  • low-level / high-level 프로그래밍 언어 고급 프로그래밍 언어 high-level programming language 사람이 이해하기 쉽게 작성된 프로그래밍 언어. 가독성이 높고 다루기 간단하다는 장점. 컴파일러나 인터프리터에 의해 low-level programming language로 번역되어 실행됨. C, 자바 등 대부분의 프로그래밍 언어는 고급언어에 속한다. 추상화의 정도에 따라 프로그래밍 언어의 high / low 레벨이 나뉨..? 저급 프로그래밍 언어 low-level programming language 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어. (기계어, 어셈블리어) 실행속도가 매우 빠르지만 배우기 어렵고, 유지보수가 힘든 것이 단점 기계어(machine code) - 특별한 변환과정 없이 컴퓨터가 직접 처리할 수 있는 유.. 공감수 1 댓글수 0 2021. 11. 22.
  • CRUD CRUD란? 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말. 사용자 인터페이스에서 새로운 정보를 추가 / 검색 / 편집 / 삭제 하는 기능을 가리키는 용어로도 사용된다. 다음과 같이 표준 SQL문으로 대응 가능하다 이름 조작 SQL Create 생성 INSERT Read(또는 Retrieve) 읽기 SELECT Update 갱신 UPDATE Delete 삭제 DELETE 공감수 0 댓글수 0 2021. 5. 21.
  • SDK? API? SDK란? Software Development Kit 소프트웨어 개발 키트 특정 소프트웨어 프레임워크, 컴퓨터 시스템, 운영 체제 등을 위한 응용 프로그램 등을 만들 수 있게 해주는 개발 도구의 집합. 응용 프로그램을 만들기 위해서는 특정한 SDK를 다운로드 받아야 하는데, 안드로이드 앱 개발을 위해서는 Java를 포함한 SDK, iOS 개발을 위해서는 Swift가 포함된 iOS SDK, MSWindows를 위해서는 .NET을 포함한 .NET Framework SDK가 필요하다. (SDK 안에는 개발에 도움이 될 개발 도구 프로그램, 디버깅 프로그램, 문서, API 등이 있다. ) API란? Application Programming Interface 응용 프로그램에서 사용할 수 있도록, 운영 체제나 .. 공감수 1 댓글수 0 2021. 4. 28.
  • http vs. https 차이 URL이란? Uniform Resource Locator : 웹 사이트 혹은 컴퓨터 네트워크 상 자원의 위치를 알려주는 참조 주소. url에 접속하기 위해서는 해당 url에 맞는 프로토콜을 알고, 그와 동일한 프로토콜로 접속해야 한다. HTTP인 경우 웹 브라우저를 사용하여 접속해야 함. HTTP란? HTTP - 하이퍼 텍스트 전송 프로토콜의(Hypertext Transfer Protocol)의 약자 : 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜 정보를 텍스트로 주고받기 때문에 네트워크에서 전송 신호를 인터셉트하는 경우 원하지 않는 데이터 유출이 발생할 수 있다. 이러한 보안 취약점을 해결하기 위한 프로토콜이 HTTPS HTTPS란? HTTPS - 하이퍼 텍스트 전송 프로.. 공감수 0 댓글수 0 2021. 4. 19.
  • [Programming Paradigm] 객체지향 vs. 절차지향 객체지향 프로그래밍과 절차적 프로그래밍은 둘 다 명령형 프로그래밍의 하위 개념으로, 객체를 사용하느냐 사용하지 않느냐에 따라 구분한 것일 뿐 서로 반대되는 개념이 아니다. Object Oriented Programming 객체지향 프로그래밍 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 '객체'들의 모임으로 파악하여 객체간의 상호작용으로 프로그램의 동작을 구현하고자 하는 것. 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다. 객체란 하나의 역할을 수행하는 '메소드와 변수(데이터)'의 묶음으로 봐야 한다. 상호작용하는 객체들의 집합 왜? Procedur.. 공감수 0 댓글수 0 2021. 4. 16.
  • [Programming Paradigm] declarative(선언형) vs. imperative(명령형) programming 명령형 imparative : 어떤 방법으로 어떻게 하려고 하는가 writing sequence of introductions that the program follows (uses statements that change a program’s state?) - 실행될 알고리즘을 명시하고 목표는 명시하지 않음 - 객체지향 프로그래밍(Swift UIKit, Java 등), 절차적 프로그래밍 등이 명령형 선언형 declarative : 무엇을 하려고 하는가 expresses the logic of a computation without describing its control flow. don’t specify how to achive - 목표를 명시하고 알고리즘을 명시하지 않음. - 함수형 프로그래밍(Sw.. 공감수 0 댓글수 0 2021. 4. 1.
  • 소프트웨어 아키텍처 패턴 Software architectural pattern 보호되어 있는 글입니다. 공감수 0 댓글수 0 2021. 1. 26.
  • 기억장치와 메모리 계층구조 저장장치의 두 가지 요건 - 단위 시간당 데이터 처리량 (throughput) = 입출력 속력 - 용량 (capacity) = 저장장치에 담을 수 있는 정보의 총량 메모리 계층 구조 빠른 저장 장치는 용량에 비해 가격이 비싸고, 용량이 넉넉한 저장 장치는 싸지만 처리 속도가 느리다. 컴퓨터가 행하는 작업은 매우 다양하기 때문에 빠른 속도가 필요한 상황도 있지만, 단순히 많은 내용을 천천히 읽고 쓰는 작업도 많다. 이러한 상황에 맞게 여러 종류의 저장 장치를 함께 사용해 최적의 효율을 낼 수 있도록 하여 싸고 성능 좋은 시스템을 구현하는 설계가 메모리 계층 구조이다. CPU에 가까운 순서대로 레지스터 - 캐시 - 메모리 - 보조기억장치 (일반적으로 CPU와 직접 접근이 가능한 레지스터, 캐시, 메모리를 주.. 공감수 0 댓글수 0 2020. 12. 30.
  • [데이터 처리] 동기식 비동기식 Synchronous Asynchronous ● 동기화, 비동기화? 데이터를 처리하는 방식에는 동기식 방식과 비동기식 방식이 존재한다. 동기식 처리 모델(Synchronous processing model) - 한 자원에 대해 동시에 접근하는 것을 제한하는 방식 - 직렬적으로 태스크(task)를 수행 (순차처리) - 어떤 작업이 수행 중이면 다음 작업은 대기하게 된다. (버퍼링이 발생) ex) 서버에 데이터를 요청하고 데이터가 응답될 때까지 이후 태스크들은 블로킹(blocking, 작업 중단)된다. 장점 : 설계가 간단하고 직관적 단점 : 결과를 볼 때까지 아무것도 못하고 대기해야함 • 동기화 : 한 메서드가 실행되는 동안 다른 메서드 실행이 불가능하도록 블락하는 것. 비동기식 처리 모델(Asynchronous processing model 또는 .. 공감수 0 댓글수 0 2020. 12. 21.
    728x90
    반응형
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.