[iOS] Swift 문법 리뷰
프론트앤드 면접 시 자주 묻는 질문
웹의 기본적인 작동 원리에 대해 설명해 주세요.
"웹은 클라이언트-서버 모델을 기반으로 동작합니다. 사용자가 웹 브라우저를 통해 특정 URL에 접근하면, 해당 요청은 HTTP 프로토콜을 통해 서버로 전송됩니다. 서버는 요청을 받아 처리한 후, 결과를 HTML, CSS, JavaScript 등의 형태로 다시 클라이언트에게 보냅니다. 클라이언트는 받은 데이터를 브라우저에서 해석하여 사용자에게 보여줍니다."
HTML, CSS, JavaScript의 차이점은 무엇인가요?
"HTML은 웹페이지의 구조를 정의하고, CSS는 웹페이지의 스타일을 결정하며, JavaScript는 웹페이지의 동적인 기능을 담당합니다. 즉, HTML은 뼈대, CSS는 스킨, JavaScript는 근육과 같은 역할을 합니다."
반응형 웹 디자인이란 무엇인가요? 그리고 이를 구현하기 위한 방법은 무엇인가요?
"반응형 웹 디자인은 웹페이지가 다양한 디바이스와 화면 크기에 맞게 적절하게 반응하여 보여지도록 하는 디자인 접근 방식입니다. 이를 구현하기 위해선 미디어 쿼리를 활용하여 화면 크기에 따른 스타일 변화를 정의하거나, 플렉스박스 또는 그리드 시스템을 활용하여 레이아웃을 유동적으로 조정하는 방법이 있습니다."
Swift와 Kotlin 문법
SWIFT | KOTLIN |
var/let a = 10 | var/val a = 10 |
if a == 10 { } | if (a == 10) { } |
for i in 1...5 { } | for (i in 1..5) { } |
func greet(name: String) -> String { return "Hello, (name)" } | fun greet(name: String): String { return "Hello, $name" } |
switch a { case 10: print("Ten") default: break } | when (a) { 10 -> print("Ten") else -> { } } |
class MyClass { } | open class MyClass { } |
class MySubClass: MyClass { } | class MySubClass : MyClass() { } |
let list = [1, 2, 3] | val list = listOf(1, 2, 3) |
let map = ["key": "value"] | val map = mapOf("key" to "value") |
Optional<String> | String? |
do { try functionThatThrows() } catch { } | try { functionThatThrows() } catch (e: Exception) { } |
cross platform으로 웹을 만들 때 React native와 Flutter를 사용 시 장단점
Dart는 Google이 만든 객체 지향 및 클래스 기반의 프로그래밍 언어입니다. 정적 타이핑과 가비지 컬렉션을 지원하며, C-스타일 문법을 사용하여 다른 언어 사용자가 쉽게 익힐 수 있습니다. 웹과 모바일 앱 개발에 모두 사용되며, 특히 Flutter 프레임워크와 함께 사용되어 Hot Reload 기능을 통해 빠른 개발이 가능합니다.
사람인 기준 웹 개발자 공고 많은 언어
for문
1) swift
for _ in 1...10 {
print("서지호")
}
2) Kotlin
for (i in 1..10) {
println("서지호")
}
3) JAVA
for (int i 0; i < 10; i++) {
.out.println("서지호");
}
3월 7일 영화 순위
json 데이터
{
"boxOfficeResult": {
"boxofficeType": "일별 박스오피스",
"showRange": "20240306~20240306",
"dailyBoxOfficeList": [
{
"rnum": "1",
"rank": "1",
"rankInten": "0",
"rankOldAndNew": "OLD",
"movieCd": "20234675",
"movieNm": "파묘",
"openDt": "2024-02-22",
"salesAmt": "1646514458",
"salesShare": "62.7",
"salesInten": "-150610462",
"salesChange": "-8.4",
"salesAcc": "63426452903",
"audiCnt": "174679",
"audiInten": "-15860",
"audiChange": "-8.3",
"audiAcc": "6606398",
"scrnCnt": "2021",
"showCnt": "7646"
},
{
"rnum": "2",
"rank": "2",
"rankInten": "0",
"rankOldAndNew": "OLD",
"movieCd": "20236295",
"movieNm": "듄: 파트2",
"openDt": "2024-02-28",
"salesAmt": "534462770",
"salesShare": "20.4",
"salesInten": "55456524",
"salesChange": "11.6",
"salesAcc": "10582691576",
"audiCnt": "45584",
"audiInten": "5110",
"audiChange": "12.6",
"audiAcc": "951050",
"scrnCnt": "990",
"showCnt": "2658"
},
{
"rnum": "3",
"rank": "3",
"rankInten": "39",
"rankOldAndNew": "OLD",
"movieCd": "20236732",
"movieNm": "가여운 것들",
"openDt": "2024-03-06",
"salesAmt": "128182104",
"salesShare": "4.9",
"salesInten": "127607804",
"salesChange": "22219.7",
"salesAcc": "186024709",
"audiCnt": "13536",
"audiInten": "13480",
"audiChange": "24071.4",
"audiAcc": "18975",
"scrnCnt": "471",
"showCnt": "838"
},
{
"rnum": "4",
"rank": "4",
"rankInten": "8",
"rankOldAndNew": "OLD",
"movieCd": "20234789",
"movieNm": "패스트 라이브즈",
"openDt": "2024-03-06",
"salesAmt": "71103168",
"salesShare": "2.7",
"salesInten": "66201968",
"salesChange": "1350.7",
"salesAcc": "134675834",
"audiCnt": "8376",
"audiInten": "7826",
"audiChange": "1422.9",
"audiAcc": "15009",
"scrnCnt": "606",
"showCnt": "1112"
},
{
"rnum": "5",
"rank": "5",
"rankInten": "-1",
"rankOldAndNew": "OLD",
"movieCd": "20236180",
"movieNm": "웡카",
"openDt": "2024-01-31",
"salesAmt": "59841799",
"salesShare": "2.3",
"salesInten": "-5508882",
"salesChange": "-8.4",
"salesAcc": "31923696035",
"audiCnt": "6263",
"audiInten": "-634",
"audiChange": "-9.2",
"audiAcc": "3319947",
"scrnCnt": "530",
"showCnt": "881"
},
{
"rnum": "6",
"rank": "6",
"rankInten": "-3",
"rankOldAndNew": "OLD",
"movieCd": "20247074",
"movieNm": "건국전쟁",
"openDt": "2024-02-01",
"salesAmt": "46281334",
"salesShare": "1.8",
"salesInten": "-26199339",
"salesChange": "-36.1",
"salesAcc": "10374706987",
"audiCnt": "5591",
"audiInten": "-2855",
"audiChange": "-33.8",
"audiAcc": "1114199",
"scrnCnt": "397",
"showCnt": "520"
},
{
"rnum": "7",
"rank": "7",
"rankInten": "-2",
"rankOldAndNew": "OLD",
"movieCd": "20247076",
"movieNm": "귀멸의 칼날: 인연의 기적, 그리고 합동 강화 훈련으로",
"openDt": "2024-02-14",
"salesAmt": "28977400",
"salesShare": "1.1",
"salesInten": "5137800",
"salesChange": "21.6",
"salesAcc": "5302024000",
"audiCnt": "3021",
"audiInten": "658",
"audiChange": "27.8",
"audiAcc": "466199",
"scrnCnt": "174",
"showCnt": "268"
},
{
"rnum": "8",
"rank": "8",
"rankInten": "0",
"rankOldAndNew": "NEW",
"movieCd": "19970037",
"movieNm": "비트",
"openDt": "1997-05-03",
"salesAmt": "19639500",
"salesShare": "0.7",
"salesInten": "19639500",
"salesChange": "100",
"salesAcc": "29306600",
"audiCnt": "2745",
"audiInten": "2745",
"audiChange": "100",
"audiAcc": "4306",
"scrnCnt": "71",
"showCnt": "154"
},
{
"rnum": "9",
"rank": "9",
"rankInten": "0",
"rankOldAndNew": "NEW",
"movieCd": "20230614",
"movieNm": "대결! 애니메이션",
"openDt": "2024-03-06",
"salesAmt": "13590263",
"salesShare": "0.5",
"salesInten": "13590263",
"salesChange": "100",
"salesAcc": "30566263",
"audiCnt": "2122",
"audiInten": "2122",
"audiChange": "100",
"audiAcc": "4244",
"scrnCnt": "103",
"showCnt": "170"
},
{
"rnum": "10",
"rank": "10",
"rankInten": "-3",
"rankOldAndNew": "OLD",
"movieCd": "20231415",
"movieNm": "소풍",
"openDt": "2024-02-07",
"salesAmt": "10707600",
"salesShare": "0.4",
"salesInten": "-2721900",
"salesChange": "-20.3",
"salesAcc": "2931893449",
"audiCnt": "1274",
"audiInten": "-278",
"audiChange": "-17.9",
"audiAcc": "327321",
"scrnCnt": "87",
"showCnt": "96"
}
]
}
}