본문 바로가기

분류 전체보기151

[프로그래머스] (Swift) 이진 변환 반복하기 - Lv.2 📌 문제 코딩테스트 연습 - 이진 변환 반복하기 | 프로그래머스 스쿨 📌 풀이 (1) 문자열에서 특정 문자 제거 - filter 메서드 filter(_:) | Apple Developer Documentation filter와 클로저를 활용하여 "0"만 제거할 수 있도록 했다. var binaryString = "0101001011" // "110010101001" binaryString.filter { $0 != "0"} // "111111" (2) 이진법 변환 - radix 이니셜라이저 init(_:radix:) | Apple Developer Documentation 형 변환 메서드 String()에 radix 이니셜라이저를 넣어 해당 진법에 맞게 반환할 수 있도록 했다. String(4, radi.. 2023. 4. 28.
[네트워크] OSI 7 layer 📌 OSI 7 layer 정의 OSI(Open Systems Interconnection; 개방형 시스템 상호 연결) 모델의 7개 계층을 말한다. 다른 컴퓨터 시스템 간에 원활한 통신을 위해 제안한 표준화 프로토콜이다. ISO(International Organization for Standardization; 국제 표준화 기구)에서 1984년에 이 모델을 도입하였다. 프로토콜 컴퓨터 간에 데이터를 송/수신하기 위한 통신 규약 특징 각 계층 간에 독립성 유지 계층의 수를 적절하게 하여 시스템의 복잡도를 최소화 서비스 접점의 경계를 둬서 상호 작용을 최소화 계층 이름 특징 프로토콜 예시 데이터 단위 정보 형태 장비 Application 사용자가 OSI 환경에 접근하도록 인터페이스 역할, 응용 프로세스 간의.. 2023. 4. 28.
[세미나 기록] (우아한테크세미나) 4월 우아한 테크리더 4인의 "공감 토크쇼" 아래는 2023-04-27에 있었던 4월 우아한테크세미나를 (1) 온라인 라이브로 듣고, (2) 이를 다시 들으면서 개인적으로 적은 기록입니다. 요약하면서 원래의 세미나 영상의 내용과 정확히 일치하지 않는 부분이 있을 수 있으니 양해 부탁드립니다. 혹시나 정정해야 할 부분이 있거나 비공개로 해야 할 정보가 있다면 알려주시길 바랍니다. [우아한테크세미나] 우아한 테크리더 4인의 "공감 토크쇼" - YouTube 📌 토크쇼 연사 분들 list 영상에서 진행자 분을 제외한 맨 오른쪽부터 연사분들의 성함을 차례대로 A, B, C, D로 줄여 표기했다. A: 황준태님(채널연계플랫폼실/서버) B: 권용근님(회원프로덕트팀/서버) C: 최희준님(자율주행소프트웨어팀/로보틱스연구개발) D: 이덕우님(셀러웹프론트개발팀/웹프.. 2023. 4. 27.
[Swift] "~= " 연산자 함수로 패턴 매칭 확인하기 Xcode에서 SubString에 대한 Definition을 찾던 중 신기한 연산자(!)를 발견했다. 여기서 ~=가 연산자인 것 같은데 뭔지 궁금해서 블로그를 작성하게 되었다. 📌 애플 개발자 공식 문서 ~=(::) | Apple Developer Documentation 선언 ~= 연산자는 pattern과 bound를 매개변수로 받고 부울(Bool)을 반환하는 함수이다. static func ~= (pattern: Self, value: Self.Bound) -> Bool 매개변수 pattern → 어떠한 범위(a range) bound → 패턴에 대응하는 값(a value to match against pattern) 논의 You can use the pattern-matching operator (.. 2023. 4. 26.
[Swift] (알다가도 모를) 문자열의 접근 문자열에 대한 알고리즘 문제를 Swift로 풀어보면서 Swift에서 문자열의 접근이 되게 까다롭다는 생각이 들었다. Python에서는 문자열도 배열처럼 대괄호를 통한 인덱스 접근이 곧바로 되지만, Swift는 그렇지 않기 때문이다. 따라서 다시 문자열 접근을 하는 상황이 생겼을 때 처음보다 덜 헤매기 위해 이번 포스팅을 쓰게 되었다. 문자열 접근에 대해 복습도 할 겸 이를 정리하고 싶었다. 📌 Swift에서 배열과 문자열의 인덱스 접근 인덱스 접근의 차이점 배열에서는 대괄호[]를 사용하여 인덱스 접근이 손쉽게 가능하다. 이에 반해 문자열은 .index를 메서드를 쓰는 것도 모자라서, startIndex/endIndex라는 메서드와 offsetBy라는 매개변수 이름까지 쓰면서 접근해야 한다. 이 뭔… 예시.. 2023. 4. 25.
[프로그래머스] (Swift) JadenCase 문자열 만들기 - Lv.2 📌 문제 코딩테스트 연습 - JadenCase 문자열 만들기 | 프로그래머스 스쿨 📌 풀이 풀이의 핵심은 3가지이다. 문자열의 인덱스에 대한 반복문 대문자로 만들어야 할 조건에 대한 flag 문자열 인덱스 값에 대한 조건 3가지 조건 1: 공백일 때 → 공백을 결괏값에 추가 조건 2: flag가 1보다 클 때 → 대문자로 변환하여 결괏값에 추가 조건 3: flag가 1보다 작을 때 → 소문자로 변환하여 결괏값에 추가 📌 코드 Swift에서 문자열에 대한 인덱스 접근이 까다로워 애를 먹었다. 인덱스 하나 접근하는데 저리 복잡한 메서드가 필요하다니... func solution(_ s:String) -> String { // 필요한 변수 초기화 var flag = 1 var result = "" // 문자열.. 2023. 4. 25.
[Swift] 문자열은 참조 타입이 아닌 값 타입이다? 📌 문자열의 타입은 값 타입(Value Type) Xcode에서 String의 Definition 검색 Xcode에서 String을 입력하고 커맨드(command) 키를 누른 채로 String을 눌러 보자. Swift에서 문자열은 구조체이다. 따라서 문자열은 값 타입이다. String이 구조체(struct)로 구현되어 있는 것을 알 수 있다. 아직 블로그에서 다루지는 않았지만 Swift에서 구조체는 값 타입이다. 따라서 String은 값 타입(value type)이다. 값 타입의 특징 - 복사본의 전달/할당 값 타입의 특성 상, 문자열 값을 함수/메서드에 전달할 때나 상수/변수에 할당할 때 그 값은 복사되어 복사된 값이 전달/할당 된다. 전달/할당 된 복사본의 문자열은 원본의 문자열을 수정한다고 해서 복.. 2023. 4. 24.
[Swift] 배열과 튜플의 차이점 면접 질문 중 하나인 '배열과 튜플의 차이점을 말해보세요.' 대비하여 정리해 보았다. 나아가 차이점에 대한 피드백을 받아서 수정을 하게 되었다. 📌 코드 예시 Array var names = ["Andy", "Lucas", "Ellie", "Nora"] print(names) // ["Andy", "Lucas", "Ellie", "Nora"] print(names[2]) // Ellie Tuple let aPerson = (name: "Andy", age: 20) print(aPerson.name) // Andy print(aPerson.1) // 20 📌 차이점 - 두 가지 타입에 관하여 Swift의 타입은 크게 명명된 타입(named type)과 복합 타입(compound type)으로 나누어 볼 수.. 2023. 4. 24.
[SwiftUI] OT + 자료 모음 아직 블로그에는 포스팅을 하지 않았지만 전체적으로 Swift 문법을 한번 둘러 보았다. 문법을 배우는 족족 포스팅을 하고 싶지만 이해가 되지 않는 부분이 많기도 하고 작성하는데 시간이 상당히 소요되어 미루는 일이 허다했다. 여하간 문법을 한번 훑어 보았으니 본격적으로 프레임워크를 공부하고 싶어서 SwiftUI를 택했다. UIKit을 할지 SwiftUI를 할지 고민을 많이 했지만, 여러 이유로 SwiftUI를 골랐다. 이미 진행 중인 프로젝트를 합류하고 싶어서 들어가 보니, SwiftUI로 설계한 프로젝트였다. UIKit보다는 SwiftUI의 난이도가 비교적 쉽다고 해서 먼저 시작해 보기로 했다. 📌 Swift Tutorial 자료 기본적인 학습을 중심으로 튜토리얼 자료를 모아 봤다. YouTube (1).. 2023. 4. 23.
[네트워크] OT + 공부 자료 모음 다른 CS 과목(운영체제, 자료구조, 알고리즘 등등)에 비해 네트워크는 어떻게 공부하면 좋을지 고민을 많이 했다. 다행히도 좋은 자료가 많아서 한번 공유해 보려 한다. 📌 자료 1. 영문 원서 Computer Networking: A Top-Down Approach. 8th ed. 운영체제의 교과서인 '공룡책'처럼 네트워크에서도 이 책이 바이블 역할을 하는 것 같아서 이 책을 참고했다. James F. Kurose and Keith W. Ross. Computer Networking: A Top-Down Approach. Global ed. 8th ed., New York: Pearson, 2022. 심지어 공동 저자 중인 교수님 한 분(Prof. Kurose)께서 직접 촬영하여 YouTube로 강의를 .. 2023. 4. 22.
반응형