전체 글 12

리버스 프록시

리버스 프록시란?클라이언트와 서버(웹 서버 등)의 중간에 위치하여, 클라이언트의 요청을 대신 받아 서버에 전달하고, 서버의 응답을 클라이언트에게 다시 전달하는 역할을 하는 서버이다. 클라이언트와 서버 사이의 중개자라고 할 수 있다. 대표적인 리버스 프록시 프로그램으로는 Nginx, Apache, Cloudflare 등이 있다. 리버스 프록시의 장점보안 강화서버의 실제 IP 및 내부 아키텍처를 외부에 감추고, 클라이언트가 내부 서버에 직접 접근 방지악성 요청 필터링, 접근 제한 등 역할을 하여 DDOS 등 공격으로부터 서버 보호로드 밸런싱여러 대의 애플리케이션 서버에 요청을 분산시켜서 부하를 효율적으로 분산, 가용성과 안정성 향상캐싱 및 성능 향상캐싱 및 성능 향상자주 요청되는 정적 파일(이미지, CSS..

테크 2025.07.20

OOP와 AOP

OOP란?OOP(Object-Oriented Programming)는 객체지향 프로그래밍으로 객체를 중심으로 코드를 구성한다. 현실 세계의 사물을 객체로 모델링하여 속성과 메서드를 하나의 클래스로 묶어서 관리한다.특징추상화 : 중요한 정보만 보여주고 세부적인 구현은 숨긴다.캡슐화 : 데이터와 메서드를 하나로 묶고 외부에서 직접 접근하지 못하도록 숨긴다.상속 : 기존 클래스를 기반으로 새로운 클래스를 만들 수 있다.다형성 : 같은 타입으로 여러 형태의 객체를 다룰 수 있다.OOP를 사용하는 이유상속을 통해서 중복 코드를 제거할 수 있어서 코드 재사용성이 증가한다.코드가 모듈화되어있기 때문에 유지보수가 용이하다.새로운 기능을 추가하기가 용이하여 확장성이 높아진다.실제 사물과 유사한 구조로 설계가 가능하다.구..

테크 2025.07.09

네이티브 앱과 크로스 플랫폼 앱

스마트폰의 앱을 개발하는 방법은 2가지가 있다. 네이티브 앱과 크로스 플랫폼 앱이다. 두가지 방식의 차이점이 있다. 네이티브 앱 개발네이티브 앱 개발은 특정 플랫폼에 맞는 언어와 도구를 사용하여 앱을 개발하는 방식이다. 특징플랫폼별 맞춤 개발각 운영체제에 알맞는 언어와 도구로 개발을 진행한다. 스마트폰의 대표적인 운영체제인 안드로이드와 iOS가 있다. 안드로이드의 경우 Kotlin으로 안드로이드 스튜디오를 이용하고 iOS는 Swift로 Xcode를 이용하여 개발한다.최적화와 성능과 안정성운영체제에 맞춰서 개발된 언어를 사용하기 때문에 최적화되어있다. 실행 속도와 반응성이 뛰어나다.하드웨어 활용스마트폰의 하드웨어 기능을 자유롭게 접근하고 활용할 수 있다. 카메라, 마이크, GPS, 블루투스, 푸시 알림 등..

테크 2025.06.26

WWDC25 둘러보기

WWDC란 무엇일까?애플에서 진행하는 WWDC(WorldWide Developers Conference)는 매년 6월에 이루어지는 개발자 컨퍼런스이다. 애플 개발자들을 대상으로 새로운 소프트웨어, 기술, 개발 도구, 플랫폼의 미래 방향성을 공개한다. iOS, iPadOS, macOS, watchOS, tvOS, visionOS의 운영체제와 새로운 기능, 개발 프레임워크, API 등을 공개한다. 2020년부터 코로나19의 영향으로 온라인으로 전환된 이후 올해까지도 온라인에 무료로 세션과 키노트를 시청할 수 있다. WWDC를 통해서 애플의 방향성을 확인하고 이를 통해서 앱의 경쟁력을 높일 수 있는 방법을 모색할 수 있는 좋은 기회이다. WWDC 2025의 핵심 이슈운영체제의 명칭 변경 : 애플의 모든 운영체..

iOS 2025.06.10

정보 보안 기법

정보 보안이란?정보 보안은 정보와 정보 시스템을 무단 접근, 사용, 공개, 변경, 파괴, 중단 등의 다양한 위협으로부터 보호하는 것을 의미한다. 인가되지 않은 사용자가 정보에 접근하거나 정보를 변경, 파괴, 유출하는 것을 방지하여 정보의 안전성과 신뢰성을 확보하는 모든 관리적,기술적 활동을 포함한다. 정보 보안의 핵심 목표는 기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)이 있다. 앞의 세가지를 정보 보안의 기본 원칙으로 CIA 3원칙이라고 한다. CIA 3원칙기밀성(Confidentiality)기밀성은 인가된 사용자만 정보에 접근할 수 있도록 보호한다는 원칙이다.외부의 무단 접근, 도청, 정보 유출, 사회공학 공격 등으로부터 정보를 지키는 것이 목표이..

테크 2025.05.23

PK,FK 그리고 Index

RDBMS를 사용하면 PK,FK와 Index를 많이 사용한다. 하지만 자세한 개념에 대해서는 생각해본 적이 없다... 생각난 김에 한 번 정리를 해보려고 한다. [ Index ]Index의 개념인덱스는 DB에서 데이터를 효율적으로 검색하기 위해서 사용하는 데이터 구조이다. 테이블의 특정 컬럼에 대해서 생생되며, 해당 칼럼 값과 데이터가 저장된 위치를 연결하는 포인터가 포함된다. 이러한 구조로 인해서 전체 테이블을 스캔하지 않고 필요한 데이터를 빠르게 찾을 수 있다. Index의 장점대규모 테이블에서 데이터를 효율적으로 검색하여 데이터의 검색 속도가 빨라진다.정렬 혹은 필터링에 최적화되어있다.전체 테이블 스캔을 하는 경우가 줄어들어서 리소스가 절약된다.Index의 단점인덱스를 저장하기 위한 추가 저장 공간..

테크 2025.04.10

RDBMS와 NoSQL

최근 cs테스트에서 RDBMS와 NoSQL에 대한 문제가 나왔다. 문제를 풀다보니 두 가지 모두 사용해봤지만 정확하게 알고있지는 않았다. 그래서 이번 기회에 RDBMS와 NoSQL에 대해서 자세히 알아보려고 한다.  RDBMS란?RDBMS(관계형 데이터베이스 관리 시스템)는 데이터를 테이블 형태로 구성하고, 테이블 간의 관계를 통해서 데이터를 저장, 관리, 검색하는 데이터베이스 시스템이다. 테이블은 행과 열로 구성되었고 SQL을 사용하여 데이터를 관리한다. RDBMS의 특징테이블 형태의 구조화된 데이터 모델을 사용한다.SQL을 통해서 데이터를 조작한다.ACID(원자성, 일관성, 고립성, 지속성)를 지원하여 트랜잭션의 신뢰성을 보장한다.정규화를 통해서 데이터 중복을 최소화한다.RDBMS의 장점데이터의 무결..

테크 2025.03.25

Firebase Auth에서 카카오 로그인 사용하기

새로운 프로젝트를 준비하면서 Firebase를 사용하려고 한다. Firebase에서 Authentication,Storage,Firebase Database를 한 번에 제공하기 때문에 한 번에 여러가지를 해결할 수 있다. 기본적으로 Firebase의 Authentication은 이메일과 비밀번호로 회원가입이 가능하다. 추가적으로 Google,Apple,Facebook,Twitter등의 외부 아이디도 사용할 수 있다. 하지만...아쉽게도 해외의 서비스이다보니 우리나라에서 가장 많이 사용되는 "카카오로 로그인"을 제공하지 않는다. 아무래도 우리나라에서는 카카오톡이 거의 필수이다보니 모두가 편하게 사용한다. 🧐 그렇다면 카카오 로그인과 Firebase의 Authentication을 연결할 수 없을까? 일단 ..

iOS 2025.02.26

비동기 프로그래밍이란?

지난 글에서 짧게 지나갔던 비동기에 대해서 자세하게 알아보려고 한다. 먼저 동기와 비동기의 차이에 대해서 알아보자! 동기(Sync) 국어 사전의 동기를 검색하면 나오는 결과이다. 가장 마지막 줄의 풀이가 우리가 찾던 동기의 뜻이다.우리가 찾는 동기의 뜻이지만 아주 복잡하게 쓰여있다...😱동기 처리는 작업을 순차적으로 진행한다는 뜻이다. 순차적으로 작업이 진행되는 동안 다른 작업을 할 수 없다. 모든 작업이 다 끝나야만 다음 작업을 시행할 수 있다. 예를 들어, 검색어를 입력하고 검색을 시작하면 검색 결과가 나올 때까지 다른 일을 할 수 없다. 동기 처리를 진행하게 되면 여러 작업을 동시에 실행할 때 각 작업이 완료된 이후에 다른 작업이 진행되기 때문에 성능 저하가 발생할 수 있습니다. 하지만 동기 처리..

테크 2025.02.13

[RxSwift] ReactiveX가 뭘까

요즘 지원을 위해서 여러 곳의 채용 공고를 보다가 우대사항에 자주 보이는 단어가 있었다. 바로 RxSwift라는 단어가 자주 보였다. 도대체 RxSwift가 뭐길래 이렇게 다들 우대사항에 적어놓았는지 궁금증이 생김에 Rx가 뭔지 알아보기로 했다.🤷‍♂️ReactiveX란?An API for asynchronous programming with observable streamsReactiveX의 메인 페이지에 나와있는 문장이다. 해석해보자면 "Observable 스트림을 활용한 비동기 프로그래밍 API"라는 말이다. 데이터가 비동기적으로 생성되고 흐르는 스트림(stream) 형태로 다룰 수 있도록 지원하며, 개발자가 이런 스트림을 쉽게 관찰(observe), 변환(transform), 결합(combine..

iOS 2025.01.17