iOS실무

2025. 3. 6. 16:41iOS앱개발

HTML과 CSS의 차이점은 무엇인가요?

HTML은 웹 페이지의 구조를 정의하는 마크업 언어이고, CSS는 그 구조에 스타일을 적용하는 스타일시트 언어입니다.
반응형 웹 디자인이란 무엇인가요? 어떻게 구현하나요?

반응형 웹 디자인은 다양한 화면 크기와 디바이스에서 웹 페이지가 적절하게 보이도록 만드는 디자인 기법입니다. 미디어 쿼리와 유동적인 그리드 시스템을 사용하여 구현합니다.
JavaScript의 변수를 선언하는 방법에는 어떤 것들이 있나요?

var, let, const를 사용하여 변수를 선언할 수 있습니다. var는 함수 스코프, let과 const는 블록 스코프를 가집니다.
ES6의 주요 기능에는 어떤 것들이 있나요?

화살표 함수, 클래스, 템플릿 리터럴, 구조 분해 할당, 프라미스, 모듈 등이 있습니다.
DOM과 Virtual DOM의 차이점은 무엇인가요?

DOM은 실제 웹 페이지의 구조를 나타내고, Virtual DOM은 메모리 상의 가상 구조로, 변경 사항을 효율적으로 업데이트하기 위해 사용됩니다.
AJAX란 무엇이며, 어떻게 사용하나요?

AJAX는 비동기적으로 데이터를 전송하고 받을 수 있는 기술로, 주로 XMLHttpRequest 객체나 Fetch API를 사용하여 구현합니다.
CORS(Cross-Origin Resource Sharing)에 대해 설명해 주세요.

CORS는 웹 애플리케이션이 다른 도메인에서 리소스를 요ㄹ청할 수 있도록 허용하는 보안 기능입니다. 서버에서 적절한 헤더를 설정해야 합니다.
웹 접근성이란 무엇이며, 이를 어떻게 개선할 수 있나요?

웹 접근성은 장애인이 웹 콘텐츠에 접근할 수 있도록 하는 것입니다. 적절한 HTML 구조, 대체 텍스트, 키보드 내비게이션 등을 통해 개선할 수 있습니다.
프론트엔드 프레임워크(예: React, Vue, Angular)의 장단점은 무엇인가요?

React: 컴포넌트 기반, 큰 생태계 → 학습 곡선이 있을 수 있음.
Vue: 사용하기 쉬움, 반응성 우수 → 대규모 프로젝트에서 기능이 부족할 수 있음.
Angular: 완전한 프레임워크, 타입스크립트 지원 → 복잡성이 있음.
상태 관리(State Management)에 대해 설명해 주세요.

애플리케이션의 상태를 관리하는 방법으로, Redux, MobX, Context API 등을 사용합니다. 상태를 중앙 집중화하여 컴포넌트 간의 데이터 흐름을 쉽게 관리할 수 있습니다.

MVC: 컨트롤러가 사용자 입력을 처리하고, 뷰와 모델 간의 연결을 관리합니다.
MVP: 프레젠터가 뷰와 모델 간의 중재자 역할을 하여, 뷰의 모든 로직을 처리합니다.
MVVM: 데이터 바인딩을 통해 뷰와 뷰모델 간의 연결이 이루어지며, 뷰모델이 뷰의 상태를 관리합니다.

 

Swift 추천 사이트

https://bbiguduk.gitbook.io/swift

 

The Swift Programming Language (한국어) | Swift

Last updated 5 months ago

bbiguduk.gitbook.io

 

내 이름 10번 찍기 소스

import Foundation

let name = "구도윤" 

for _ in 1...10 {
    print(name)
}

순수 함수: 동일한 입력에 대해 항상 동일한 출력을 반환합니다.
고차 함수: 함수를 인자로 받거나 함수를 반환하는 함수입니다.
불변성: 데이터를 변경하지 않고 새로운 데이터를 생성합니다.
함수 조합: 여러 함수를 결합하여 새로운 함수를 생성합니다.

// 순수 함수: 입력에 따라 항상 동일한 출력을 반환
func isEven(_ number: Int) -> Bool {
    return number % 2 == 0
}

// 순수 함수: 입력을 받아 제곱을 반환
func square(_ number: Int) -> Int {
    return number * number
}

// 고차 함수: 배열을 필터링하고 변환하는 함수
func processNumbers(_ numbers: [Int]) -> [Int] {
    // 필터링: 짝수만 남기기
    let evenNumbers = numbers.filter(isEven)
    
    // 변환: 짝수의 제곱을 구하기
    let squaredEvenNumbers = evenNumbers.map(square)
    
    return squaredEvenNumbers
}

// 사용 예제
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let result = processNumbers(numbers)

print(result)  // 출력: [4, 16, 36, 64, 100]

1. Storyboard를 사용한 앱 개발

Storyboard는 Xcode에서 제공하는 시각적 인터페이스로, UI 요소를 드래그 앤 드롭하여 쉽게 구성할 수 있습니다.

 

2. UIView를 사용한 앱 개발

UIView를 사용하면 코드로 UI를 구성할 수 있으며, 더 많은 유연성을 제공합니다.

 

3. SwiftUI를 사용한 앱 개발

SwiftUI는 선언적 문법을 사용하여 UI를 구성하고 상태를 관리할 수 있는 최신 프레임워크입니다.

https://www.kobis.or.kr/kobisopenapi/homepg/apiservice/searchServiceInfo.do

 

영화진흥위원회 오픈API

제공서비스 영화관입장권통합전산망이 제공하는 오픈API서비스 모음입니다. 사용 가능한 서비스를 확인하고 서비스별 인터페이스 정보를 조회합니다.

www.kobis.or.kr

오픈 api로 구현가능하다

 

{
  "boxOfficeResult": {
    "boxofficeType": "일별 박스오피스",
    "showRange": "20250305~20250305",
    "dailyBoxOfficeList": [
      {
        "rnum": "1",
        "rank": "1",
        "rankInten": "0",
        "rankOldAndNew": "OLD",
        "movieCd": "20244821",
        "movieNm": "미키 17",
        "openDt": "2025-02-28",
        "salesAmt": "775125720",
        "salesShare": "61.7",
        "salesInten": "-17794720",
        "salesChange": "-2.2",
        "salesAcc": "14517970260",
        "audiCnt": "80037",
        "audiInten": "-2445",
        "audiChange": "-3",
        "audiAcc": "1465508",
        "scrnCnt": "1815",
        "showCnt": "6531"
      },
      {
        "rnum": "2",
        "rank": "2",
        "rankInten": "16",
        "rankOldAndNew": "OLD",
        "movieCd": "20249251",
        "movieNm": "콘클라베",
        "openDt": "2025-03-05",
        "salesAmt": "94182880",
        "salesShare": "7.5",
        "salesInten": "90636880",
        "salesChange": "2556",
        "salesAcc": "138151480",
        "audiCnt": "10796",
        "audiInten": "10402",
        "audiChange": "2640.1",
        "audiAcc": "15409",
        "scrnCnt": "566",
        "showCnt": "1081"
      },
      {
        "rnum": "3",
        "rank": "3",
        "rankInten": "-1",
        "rankOldAndNew": "OLD",
        "movieCd": "20240614",
        "movieNm": "퇴마록",
        "openDt": "2025-02-21",
        "salesAmt": "84353660",
        "salesShare": "6.7",
        "salesInten": "9867280",
        "salesChange": "13.2",
        "salesAcc": "3043377240",
        "audiCnt": "8905",
        "audiInten": "914",
        "audiChange": "11.4",
        "audiAcc": "318301",
        "scrnCnt": "794",
        "showCnt": "1530"
      },
      {
        "rnum": "4",
        "rank": "4",
        "rankInten": "-1",
        "rankOldAndNew": "OLD",
        "movieCd": "20242404",
        "movieNm": "캡틴 아메리카: 브레이브 뉴 월드",
        "openDt": "2025-02-12",
        "salesAmt": "43123980",
        "salesShare": "3.4",
        "salesInten": "-23243080",
        "salesChange": "-35",
        "salesAcc": "15811113026",
        "audiCnt": "4605",
        "audiInten": "-2607",
        "audiChange": "-36.1",
        "audiAcc": "1595994",
        "scrnCnt": "543",
        "showCnt": "1101"
      },
      {
        "rnum": "5",
        "rank": "5",
        "rankInten": "-1",
        "rankOldAndNew": "OLD",
        "movieCd": "20252719",
        "movieNm": "힘내라 대한민국",
        "openDt": "2025-02-27",
        "salesAmt": "34703200",
        "salesShare": "2.8",
        "salesInten": "-6101800",
        "salesChange": "-15",
        "salesAcc": "388282040",
        "audiCnt": "3915",
        "audiInten": "-699",
        "audiChange": "-15.1",
        "audiAcc": "41533",
        "scrnCnt": "114",
        "showCnt": "210"
      },
      {
        "rnum": "6",
        "rank": "6",
        "rankInten": "-1",
        "rankOldAndNew": "OLD",
        "movieCd": "20234689",
        "movieNm": "괜찮아 괜찮아 괜찮아! ",
        "openDt": "2025-02-26",
        "salesAmt": "24158200",
        "salesShare": "1.9",
        "salesInten": "-13196900",
        "salesChange": "-35.3",
        "salesAcc": "652925600",
        "audiCnt": "2778",
        "audiInten": "-1548",
        "audiChange": "-35.8",
        "audiAcc": "74251",
        "scrnCnt": "392",
        "showCnt": "561"
      },
      {
        "rnum": "7",
        "rank": "7",
        "rankInten": "0",
        "rankOldAndNew": "NEW",
        "movieCd": "20241389",
        "movieNm": "보더랜드",
        "openDt": "2025-03-05",
        "salesAmt": "15550600",
        "salesShare": "1.2",
        "salesInten": "15550600",
        "salesChange": "100",
        "salesAcc": "15550600",
        "audiCnt": "2371",
        "audiInten": "2371",
        "audiChange": "100",
        "audiAcc": "2371",
        "scrnCnt": "209",
        "showCnt": "388"
      },
      {
        "rnum": "8",
        "rank": "8",
        "rankInten": "0",
        "rankOldAndNew": "OLD",
        "movieCd": "20252058",
        "movieNm": "첫 번째 키스",
        "openDt": "2025-02-26",
        "salesAmt": "11696800",
        "salesShare": "0.9",
        "salesInten": "-601620",
        "salesChange": "-4.9",
        "salesAcc": "285966400",
        "audiCnt": "1889",
        "audiInten": "175",
        "audiChange": "10.2",
        "audiAcc": "36395",
        "scrnCnt": "154",
        "showCnt": "254"
      },
      {
        "rnum": "9",
        "rank": "9",
        "rankInten": "0",
        "rankOldAndNew": "OLD",
        "movieCd": "20244762",
        "movieNm": "서브스턴스",
        "openDt": "2024-12-11",
        "salesAmt": "17822500",
        "salesShare": "1.4",
        "salesInten": "1541400",
        "salesChange": "9.5",
        "salesAcc": "5263171980",
        "audiCnt": "1810",
        "audiInten": "135",
        "audiChange": "8.1",
        "audiAcc": "540423",
        "scrnCnt": "182",
        "showCnt": "225"
      },
      {
        "rnum": "10",
        "rank": "10",
        "rankInten": "0",
        "rankOldAndNew": "OLD",
        "movieCd": "20241093",
        "movieNm": "그 시절, 우리가 좋아했던 소녀",
        "openDt": "2025-02-21",
        "salesAmt": "15780300",
        "salesShare": "1.3",
        "salesInten": "1170000",
        "salesChange": "8",
        "salesAcc": "1314952900",
        "audiCnt": "1807",
        "audiInten": "212",
        "audiChange": "13.3",
        "audiAcc": "148074",
        "scrnCnt": "229",
        "showCnt": "308"
      }
    ]
  }
}

영화 공공데이터(영진위)

'iOS앱개발' 카테고리의 다른 글

iOS 실무 3주차  (0) 2025.03.20
iOS 실무 2주차  (0) 2025.03.13
iOS 앱개발 13주  (1) 2024.12.05
iOS앱개발 12주차  (0) 2024.11.28
iOS앱개발 10주차  (6) 2024.11.14