[개발 일기] 2025.10.22 - TestFlight (Apple Developer)
·
개발 일기
💡 개요 오랜만에 진짜 개발과 관련된 내용을 정리 해보자. 🛠️ TestFlight TestFlight란 Apple Developer에서 제공하는 테스트 기술로, 앱을 최종적으로 배포하기 전, 테스터들을 초대해 테스트를 제공해주는 기술이다. 보다시피 앱 스토어에서 설치할 수 있다. 사용 방법은 다음과 같다. 일단 프로젝트의 Xcode에 들어간 후, Product → Archive에 들어간다. 그리고 Distribute App을 클릭한 후, TestFlight Internal Only로 설정한다. App Store Connect에 배포가 완료되었으면 테스터를 생성해야 한다. 테스터 생성은 배포하고자 하는 앱의 ‘내부 테스팅’ 그룹을 추가한다. 테스터 그룹을 만든 후, 원하는 테스터..
[개발 일기] 2025.10.21 - 스택 포인터가 뭔데 도대체
·
개발 일기
💡 개요 스택도 안다. 포인터도 안다. 근데 스택 포인터는 뭔데 🛠️ 스택 포인터 스택 포인터에서 스택은 스레드 별로 독립적으로 할당받는 메모리의 한 영역으로, 메서드 호출 시 지역 변수나 리턴 주소를 저장하는 데 사용된다. 그리고 스택 포인터는 스택의 가장 위를 가리키는 레지스터를 의미한다. 레지스터..? 그럼 스택 포인터도 저장소임..?→ 맞다. 스택 포인터는 CPU 내부에서 사용되는 저장소(레지스터)이다. 다음은 스택 포인터가 사용되는 예시이다. void main() { int a = 10; funA();}void funA() { int b = 5;} 1️⃣ main() 메서드 호출 main() 메서드가 호출됨과 동시에 main() 메서드가 종료될 때, 이동할..
[개발 일기] 2025.10.20 - 단위 테스트엔 @SpringBootTest을 사용하면 안된다?
·
개발 일기
💡 개요 ChatGPT왈, ‘@SpringBootTest는 통합 테스트용 어노테이션이다.’ 라고 한다. 나도 알고 있다. 통합 테스트에선 Controller - Service - Repository 각 계층의 전체 흐름을 테스트한다. @SpringBootTest 어노테이션을 사용해야 스프링 컨테이너를 사용할 수 있고, 자연스럽게 DI을 적용할 수 있기 때문이다. 그럼 단위 테스트에선 @SpringBootTest을 사용하면 안되나? 🛠️ SpringBootTest와 단위 테스트 @SpringBootTest는 실제 애플리케이션 구동 환경과 동일하게 스프링 컨테이너를 띄워 전체 빈을 로드한 뒤 테스트를 수행하는 어노테이션이다. 따라서 Controller, Service, Repository 등..
[개발 일기] 2025.10.16 - Redis가 싱글 스레드로 만들어진 이유
·
개발 일기
💡 개요 오늘은 Redis가 싱글 스레드로 만들어진 이유에 대해 정리해 보자. 🛠️ Redis가 싱글 스레드로 만들어진 이유 Redis가 싱글 스레드로 설계된 이유는 성능 최적화, 복잡성 감소, 그리고 데이터 일관성 유지하기 위해서이다. 싱글 스레드의 장점은 스레드가 하나이기 때문에 뿐만 아니라 경쟁 상태, 데드락같은 문제를 고려하지 않아도 된다. 이전 글에서도 정리했듯이 Redis와 같은 NoSQL은 데이터의 무결성, 정합성보단 성능을 더 중요시 한다. → CAP이론 더군다나 NoSQL중, Redis는 인메모리 DB로 설계되어, 매우 빠른 응답 시간을 제공해야 한다. Redis의 작업 처리 방식은 이벤트 기반 아키텍처를 채택하여 네트워크 요청을 효율적으로 처리한다. 단일 스레드 이벤트 ..
[개발 일기] 2025.10.15 - DNS 계층 구조
·
개발 일기
💡 개요 오늘은 DNS 구조에 대해 정리해 보자. 🛠️ DNS 계층 구조 인터넷에서 도메인을 IP로 변경하는 과정은 계층적 트리 구조로 이루어져 있다. 루트 → TLD → 도메인 아마 계층을 나눠놓은 이유는 현재 인터넷 상에서 사용되는 도메인이 너무 많기 때문이 아닐까..? ⚙️ 루트 DNS 서버 (Root DNS Server) 인터넷 최상위 DNS 서버이다. 모든 도메인의 시작점으로, 최상위 도메인(TLD) 서버의 위치를 알려준다. 클라이언트가 요청한 루트 도메인을 보고(com, org, net, kr) , 이것에 해당하는 TLD 서버 주소를 ISP에게 알려줌전 세계에 13개 논리 서버(IPv4 기준)가 있음, 실제는 물리적으로 더 많이 분산 ⚙️ TLD 서버 (Top-Level Dom..
[개발 일기] 2025.10.14 - 프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유
·
개발 일기
💡 개요 안다. 당연히 스레드가 프로세스보다 교환해야 하는 정보가 적기 때문에 문맥 교환이 빠르다. 오늘은 이러한 이유를 면접에서도 답변할 수 있도록 정리해 보자. 🛠️ 프로세스 문맥 교환 프로세스 간 전환은 운영체제가 CPU 제어권을 다른 프로세스로 넘길 때 발생한다. 교환 시 저장·복원해야 하는 정보는 다음과 같다. CPU 레지스터 상태 (PC, SP 등)CPU가 지금 "어디까지 실행했는, 어디서부터" 다시 실행해야 하는지를 저장하는 정보PC (Program Counter) : 다음에 실행할 명령어의 주소SP (Stack Pointer) : 현재 스택의 최상단 위치 프로세스 제어 블록운영체제가 각 프로세스를 관리하기 위해 저장해두는 정보 덩어리프로세스 ID (PID)현재 상태 (실행 중,..