iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (3)
2024.10.28 - [◽️ Programming/◽️ Computer Science] - iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1)2024.10.30 - [◽️ Programming/◽️ Computer Science] - iOS Swift의 자료구조, 알고리즘에 대해서 알아보자 (2) 오늘은 3번째 시간으로 Swift의 자료구조에 대해서 알아보고자 한다. 오늘 알아 볼 내용들은 평소 개발을 진행하면서 주로 많이 사용하는 Array, Dictionary 등 익숙한 개념이지만 이 내용을 그냥 단순하게 집합의 느낌 정도로 사용했다면 어떤 개념을 가지고 있는지 보다 더 자세하게 다뤄 보고자 한다. 먼저 스위프트 표준 라이브러리가 제공하는 세가지 주요 데이터 구조는 Array, Dic..
- ◽️ Programming/◽️ Computer Science
- · 2024. 11. 4.
iOS Swift의 자료구조, 알고리즘에 대해서 알아보자 (2)
2024.10.28 - [◽️ Programming/◽️ Computer Science] - iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1) iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1)오늘부터 자료구조에 대해서 자세하게 알아보는 시간을 가져보려고 한다. 앱의 효율성을 끌어올리기 위해서는 CS에 대한 이해가 뒷받침되어야 하기 때문에 총 6챕터로 나누어진 Swift 자료 구조dongdida.tistory.com 1편에 이어서 복잡도에 대해서 더 알아보자!! 로그 시간 Logarithmic time앞서 1편에서 인풋의 모든 요소가 최소 한번씩 검사되는 선형복잡도와 2차 시간 복잡도에 대해 알아보았다. 그러나 이 방법도 있지만 인풋의 서브셋만 검사하는 시나리오도 있다. 이..
- ◽️ Programming/◽️ Computer Science
- · 2024. 10. 30.
iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1)
오늘부터 자료구조에 대해서 자세하게 알아보는 시간을 가져보려고 한다. 앱의 효율성을 끌어올리기 위해서는 CS에 대한 이해가 뒷받침되어야 하기 때문에 총 6챕터로 나누어진 Swift 자료 구조 알고리즘의 자료를 한국어로 잘 번역해준 자료가 있어 이걸 통해 한번 공부해보자!https://kimdee.tistory.com/entry/Swift번역-스위프트의-자료구조와-알고리즘-섹션-1-소개-챕터3-스위프트-표준-라이브러리-Swift-Standard-Library 오늘은 전체 챕터를 한번 훑는 느낌으로 알아보도록 하자 복잡도 Complexity우리가 구현하면서 혹은 코딩테스트를 풀면서 접하는 명칭 중 하나는 바로 복잡도이다. 이 복잡도는 소프트웨어 개발의 설계 단계에서 항상 묻게되는 질문이다. 아키텍처 관점에서..
- ◽️ Programming/◽️ Computer Science
- · 2024. 10. 28.
[CS] 컴퓨터 구조에 대해서 자세하게 알아보자
컴퓨터 구조 지식은 크게 두가지로 나뉜다.컴퓨터가 이해하는 정보 : 데이터와 명령어컴퓨터의 4가지 핵심 부품 : CPU, 주기억장치, 보조기억장치, 입출력장치컴퓨터 구조를 이해하는 이유는 프로그래밍 문법만으로는 알기 어려운 성능, 용량, 비용을 고려한 개발이 가능하게 하며 문제 해결 능력을 향상 시키기 때문이다. 데이터문자 표현컴퓨터는 0과 1만 인식한다. 그러면 한글과 영어, 특수문자는 어떻게 표현될까? ‘A’는 65 (1000001)로 변환되어 표현됩니다. 이를 인코딩이라 하며 유니코드가 가장 널리 사용된다.실수 표현0.625를 2진법으로 표현하면 0.101이 된다. 이를 통해 컴퓨터에서 실수를 표현하는 두 가지 방식이 있다.고정소수점장점 : 표현 방식이 간단하다던좀 : 표현할 수 있는 버위가 적다부..
- ◽️ Programming/◽️ Computer Science
- · 2024. 7. 15.
[CS] 운영체제에 대해서 자세하게 알아보자
운영체제란 무엇인가?운영체제란 컴퓨터 전체를 진두지휘하는 핵심 프로그램을 말한다.CPU 스케줄링 : 프로그램들에게 CPU를 어떻게 할당하고 관리할 것인지 결정메모리 관리 : 메모리를 어떻게 할당하고 관리할 것인지 결정프로세스 관리 : 프로세스의 실행을 제어하고 관리파일 관리 : 파일 시스템을 관리입출력 관리 : 입출력 장치를 제어하고 활용운영체제는 커널 영역에서 실행되며, 나머지 프로그램들은 사용자 영역에 적재된다. 주요 운영체제UNIX : 1969년 벨 연구소에서 개발된 운영체제로, 이식성이 좋고 커널 크기가 작으며, 소스 코드가 공개되었다.NINUX : UNIX의 영향을 받은 리누스 토발즈가 개발한 운영체제로, 소스가 공개되어 있다.POSIX : UNIX 운영체제 기반의 인터페이스로 리눅스도 POSI..
- ◽️ Programming/◽️ Computer Science
- · 2024. 7. 13.
객체지향 프로그래밍과 SOLID원칙
SOLID는 객체 지향 프로그래밍과 설계에서 중요한 다섯가지 원칙을 나타내는 약어이다. 각 글자는 특정한 설계 원칙을 의미하고, 이 원칙들을 통해 더 유지보수가 쉽고, 확장 가능하며, 이해하기 쉬운 코드를 작성할 수 있도록 도와준다. Single Responsibilty Principle단일 책임 원칙으로써 클래스는 하나의 목적을 가져야하며, 클래스를 변경하는 이유는 단 하나의 이유여야 한다.SRP를 위반하는 예와 준수하는 예를 한번 살펴보자SRP를 위반하는 예class UserManager { func createUser(name: String, age: Int) { // 유저 생성 로직 } func sendWelcomeEmail(email: String) { ..
- ◽️ Programming/◽️ Computer Science
- · 2024. 6. 24.