분류 전체보기

디자인 패턴 중 하나인 커맨드 패턴은 요청을 객체로 캡슐화하여 서로 다른 요청을 객체로 다룰 수 있게 해줍니다!이번에는 Swift에서 커맨드 패턴을 구현하는 방법을 알아보겠습니다. 커맨드 패턴이란?커맨드 패턴은 실행될 기능을 캡슐화하여 클라이언트와 실행 객체를 분리하는 패턴입니다. 이를 통해 명령을 매개변수화하고, 요청을 큐에 저장하거나 로깅하며, 실행 취소 기능을 쉽게 구현할 수 있습니다.  커맨드 패턴의 구성 요소 1. Command 프로토콜: 실행될 명령의 인터페이스를 정의합니다. 2. Concrete Command: 실제 실행될 명령을 구현합니다. 3. Invoker: 명령을 실행하는 객체입니다. 4. Receiver: 실제로 명령을 수행하는 객체입니다. 스피커 예시로 알아보기스피커를 예제로 들어..
들어가기 전에들어가기 앞서서 먼저 메서드와 함수의 차이를 알고 계신가요?함수와 메서드는 비슷해보이지만 차이가 있답니다. 메서드는 특정 작업을 수행하는 함수와 비슷하지만, 객체 내부의 데이터에 접근할 수 있다는 점에서 차이가 있습니다. 함수는 독립적으로 존재하며, 특정 타입에 속하지 않습니다.반면에 메서드는 클래스, 구조체, 열거형 등의 특정 타입에 속해 있으며, 해당 타입의 인스턴스에 연결되어 사용됩니다. 둘의 차이를 이해했다면, 이제 메서드에 대해 알아봅시다.  Swift의 메서드Swift는 다음과 같은 네 가지 주요 메서드 유형을 제공합니다: 인스턴스 메서드, 타입 메서드(클래스 메서드, 정적 메서드)입니다. 각각의 특성과 사용 예시를 살펴보겠습니다.  1. 인스턴스 메서드 (Instance Meth..
코딩테스트에서 테스트케이스는 다 맞았는데 히든 케이스에서 다 런타임 에러를 내버린 경험!!!!!이 있다.. 테케를 조금이라도 맞혔으니까,, 일단 다음문제로 넘어갔다가 다시 해당 문제를 고민했는데,10분도 채 남지 않은 상태여서 알고리즘에 문제가 있나만 생각하다가 시험이 종료되었다. 테스트가 끝난 후 씻으면서 생각을 했는데, 자료형을 고려하지 못해서 에러난 것 같다!!!라는 생각을 그제서야 했다.해당 범위가 -10^9 ~ 10^9 이었는데,, 산술할 때 범위를 고려했어야 안전했었겠다란 생각... Int 자료형에 대해 머리에 넣어놔야 또 실수를 안할 것 같아서 정리해보려고 한다 ! 😥    다들 아시겠지만 !Int 뒤에 붙은 숫자는 비트를 의미합니다.스위프트에서의 Int는 Int8, Int16, Int32..
· 🛠️ OS
파일 시스템이 파일과 디렉터리를 보조기억장치에 할당하고 접근하는 방법대표적인 파일 시스템의 종류(FAT 파일 시스템, 유닉스 파일 시스템) 학습파티셔닝과 포매팅이제 막 공장에서 생산되어 한 번도 사용된 적 없는 새 하드 디스크 / SSD ?파티셔닝, 포매팅 하기 전까지는 사용할 수 없다파티셔닝저장 장치의 논리적인 영역을 구획하는 작업포매팅파일 시스템을 설정어떤 방식으로 파일을 관리할지 결정, 새로운 데이터를 쓸 준비하는 작업파일 시스템에는 여러 종류가 있고, 파티션마다 다른 파일 시스템을 설정할 수도 있다포매팅까지 완료하여 파일 시스템을 설정했다면 이제 파일과 디렉터리 생성이 가능해진다 1. 파일 할당 방법포매팅까지 끝난 하드 디스크에 파일을 저장하기운영체제는 파일/디렉터리를 블록 단위로 읽고 쓴다즉, ..
· 🛠️ OS
1. 파일 시스템 (file system)파일과 디렉터리를 관리하는 운영체제 내의 프로그램파일과 디렉터리를 다루어 주는 프로그램 2. 파일과 디렉터리보조기억 장치의 데이터 덩어리 3. 파일보조기억장치에 저장된 관련 정보의 집합의미 있고 관련 있는 정보를 모은 논리적 단위파일을 이루는 정보파일을 실행하기 위한 정보 + 부가 정보(=속성, 메타 데이터)파일의 속성 (운영체제마다 다름)유형: 운영체제가 인지하는 파일의 종류를 나타낸다 → 확장자로 힌트를 준다 (ex. c, c++, zip, lib, mov, mp3, .exe)크기: 파일의 현재 크기와 허용 가능한 최대 크기를 나타낸다보호: 어떤 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지를 나타낸다.생성 날짜: 파일이 생성된 날짜를 나타낸다마지막 접..
1. Reactorkit 소개Reactorkit은 Swift로 작성된 리액티브 프로그래밍 라이브러리로, 주로 상태 관리와 데이터 흐름 제어를 쉽게 하기 위해 사용됩니다. 이 라이브러리는 iOS 앱 개발에서 리액티브 패턴을 채택하여 일관된 상태 관리와 반응형 UI 업데이트를 가능하게 합니다.이번 글에서는 Reactorkit의 기본 개념과 작동 방식, 어떤 장점이 있는지 리드미를 번역해보며 소개해드리려고 합니다. 2. Reactorkit의 기본 개념Reactorkit의 정의 ReactorKit은 Flux와 Reactive 프로그래밍의 조합이라고 합니다. 사용자액션과 뷰의 상태는 관찰 가능한 스트림을 통해 각 레이어에 전달됩니다. 이 스트림은 단방향으로 이루어져 있습니다. 뷰는 액션만 내보낼 수 있고, 리액터..
· 💬 Review
정보처리기사 공부 방법 요약시나공 정보처리기사 필기 기본서 - 1회독시나공 정보처리기사 필기 기본서 기출문제 - 1회독맞추다 앱으로 2000 문제 풀기수제비 카페 필기시험 복원 내용 둘러보기 -  https://cafe.naver.com/soojebi  정보처리기사 필기 공부 방법시작하기 전에 책을 먼저 추천드리고 싶은데요,책은 위에도 언급되어있지만 시나공 참고서 을 왕왕 추천해요! 시나공 책 장점1) 1,2와 3,4,5과목이 분리할 수 있어서 들고다니기 편하고2) 개념 설명이 잘 되어있고3) 중요도도 같이 알려주며4) 어떤 개념에서 자주 출제되는지 출제연도를 같이 표시해주고5) 문제마다 해설이 바로 아래에 달려있어서, 따로 여기저기 찾아보지 않고 빠르게 해설을 확인할 수 있어요 !!+ 다른 책보다 디자..
https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 그래프, 다익스트라 연습을 하려고 시도했던 문제이다. 기존에 그래프를 순회할 때 아래처럼 많이 사용했었는데, 시간초과가 나서 idx로 큐에 접근하는 방법으로 수정했다. while let q = queue.isEmpty() ? nil : queue.removeFirst() X부터 큐(일반 배열)에 넣음 (거리배열dist는 ma..
JINiOS
'분류 전체보기' 카테고리의 글 목록