iOS 실무 1주차

CDH·2025년 3월 5일
post-thumbnail

AI별 답변 (성능)

질문 :
나는 자바 기반의 백엔드 개발자로 취업하려고 하는데, 면접 시 제일 많이 하는 질문 100개와 그에 대한 답변을 짧게 알려줘

Perplexity (30개 답변)

Claude(30개 중반)

Grok(100개 답변)

뤼튼(10개 이하)

Napkin(95 + 이미지 생성)

※ Grok이 요즘 성능이 좋다고 했는데, 정말 좋아 보인다.


질문 : 내가 대한민국의 java 기반의 백엔드 개발로 신입으로 취업을 하고 싶은데, 꼭 알아야 되는 기술들을 중요도 순서대로 알려주고, 어느 정도 시간을 투자해야 되는지도 비율과 절대적 시간으로 알려줘

한국 자바 백엔드 개발자 신입 취업 필수 기술 로드맵
1. 핵심 기술 (총 학습 시간: 약 600-800시간)
1.1 Java 기본 (배점 20%, 120-160시간)

자바 문법과 객체지향 프로그래밍
컬렉션 프레임워크
제네릭, 람다, 스트림 API
멀티스레딩과 동시성
예외 처리

1.2 Spring Framework (배점 25%, 150-200시간)

Spring Boot
Spring MVC
Spring Data JPA
Spring Security
RESTful API 개발
의존성 주입(DI)
AOP(관점 지향 프로그래밍)

1.3 데이터베이스 (배점 15%, 90-120시간)

MySQL/PostgreSQL
JPA/Hibernate
트랜잭션 관리
쿼리 최적화
인덱스 및 성능 튜닝
SQL 기본 및 고급 쿼리

1.4 개발 도구 및 DevOps (배점 10%, 60-80시간)

Maven/Gradle
Git/GitHub
Docker 기본
CI/CD 기본 개념
Jenkins 기본

  1. 보조 기술 (총 학습 시간: 약 200-300시간)
    2.1 웹 기술 (배점 10%, 60-90시간)

HTTP/HTTPS 프로토콜
REST API 설계
Swagger
WebSocket
JSON/XML 데이터 처리

2.2 메시징 및 캐싱 (배점 5%, 30-45시간)

Redis
RabbitMQ/Kafka 기본
메시지 큐 개념
캐싱 전략

2.3 테스팅 (배점 5%, 30-45시간)

JUnit
Mockito
단위 테스트
통합 테스트
TDD 기본 개념

  1. 추가 학습 영역 (선택적, 50-100시간)
    3.1 마이크로서비스 아키텍처

Spring Cloud
서비스 디스커버리
API 게이트웨이

3.2 클라우드 기술

AWS 기본
Azure/GCP 기본
클라우드 배포 개념

학습 전략 및 팁

이론보다는 실습 중심 학습
개인 프로젝트 필수
GitHub에 포트폴리오 구축
코딩 테스트 대비
최신 기술 트렌드 관심

예상 총 학습 시간

최소: 800시간 (6-8개월)
권장: 1000-1200시간 (8-12개월)

추천 학습 경로

Java 기본 문법 및 OOP
Spring Boot 기본
데이터베이스 및 JPA
RESTful API 개발
개인 프로젝트 진행
추가 심화 기술 학습

Grok

  1. Java 핵심 (Core Java) - 중요도: ★★★★★
    왜 중요한가?: Java 백엔드 개발의 기본 언어로, 객체지향 프로그래밍(OOP), 컬렉션 프레임워크, 예외 처리, 멀티스레딩 등의 이해가 필수입니다. 대부분의 백엔드 프레임워크가 Java 기반이므로 이 부분이 약하면 다른 기술을 활용하기 어렵습니다.
    배워야 할 내용:
    기본 문법 (변수, 조건문, 반복문)
    객체지향 개념 (클래스, 상속, 다형성, 캡슐화)
    컬렉션 프레임워크 (List, Set, Map)
    예외 처리 및 기본 I/O
    멀티스레딩 기초
    시간 투자:
    비율: 30% (총 720시간 중 약 216시간)
    이유: 기초가 튼튼해야 이후 프레임워크와 실무 적용이 가능함.
  2. Spring Framework (Spring Boot 포함) - 중요도: ★★★★★
    왜 중요한가?: 대한민국에서 Java 백엔드 개발의 사실상 표준 프레임워크입니다. Spring Boot는 설정을 단순화해 생산성을 높여주며, 대부분의 기업에서 채택 중입니다.
    배워야 할 내용:
    Spring Boot 기본 설정 및 프로젝트 생성
    의존성 주입(DI) 및 IoC 컨테이너
    RESTful API 개발 (Controller, Service, Repository)
    Spring Data JPA (DB 연동)
    기본 보안 (Spring Security 기초)
    시간 투자:
    비율: 25% (총 720시간 중 약 180시간)
    이유: 실무에서 바로 적용 가능한 기술로, 프로젝트 경험과 직결됨.
  3. 데이터베이스 및 SQL - 중요도: ★★★★☆
    왜 중요한가?: 백엔드는 데이터를 다루는 일이 핵심이며, SQL과 RDBMS(관계형 데이터베이스) 이해는 필수입니다. 국내 기업은 MySQL, PostgreSQL, Oracle 등을 주로 사용합니다.
    배워야 할 내용:
    SQL 기본 (SELECT, INSERT, UPDATE, DELETE)
    조인(JOIN), 인덱스, 트랜잭션
    기본적인 DB 설계 (정규화 개념)
    JPA/Hibernate를 통한 ORM(Object-Relational Mapping)
    시간 투자:
    비율: 20% (총 720시간 중 약 144시간)
    이유: 데이터 처리 능력이 없으면 백엔드 개발자로서 경쟁력 부족.
  4. 기본적인 웹 기술 (HTTP, REST API) - 중요도: ★★★★☆
    왜 중요한가?: 백엔드는 프론트엔드와 API로 소통하므로, HTTP 프로토콜과 RESTful 설계 원칙을 알아야 합니다.
    배워야 할 내용:
    HTTP 메서드 (GET, POST, PUT, DELETE)
    상태 코드 (200, 404, 500 등)
    REST API 설계 원칙
    JSON 데이터 처리
    시간 투자:
    비율: 10% (총 720시간 중 약 72시간)
    이유: API 개발의 기본이므로 빠르게 익히고 실습으로 보완 가능.
  5. Git 및 협업 도구 - 중요도: ★★★☆☆
    왜 중요한가?: 실무에서 버전 관리와 팀 협업은 필수입니다. Git은 개발자라면 기본적으로 다룰 줄 알아야 합니다.
    배워야 할 내용:
    Git 기본 명령어 (clone, commit, push, pull, branch)
    GitHub/GitLab 사용법
    기본적인 협업 워크플로우 (PR, 코드 리뷰)
    시간 투자:
    비율: 5% (총 720시간 중 약 36시간)
    이유: 실습 위주로 빠르게 익힐 수 있는 기술.
  6. 추가 유용한 기술 (선택 학습) - 중요도: ★★★☆☆
    왜 중요한가?: 필수는 아니지만, 경쟁력을 높여줄 수 있는 기술들입니다. 채용 공고에서 우대 사항으로 자주 언급됩니다.
    배워야 할 내용:
    기본적인 Linux 명령어 (서버 배포 관련)
    Docker 기초 (컨테이너 개념)
    테스트 프레임워크 (JUnit, Mockito)
    메시지 큐 (Kafka, RabbitMQ) 기초
    시간 투자:
    비율: 10% (총 720시간 중 약 72시간)
    이유: 포트폴리오와 실무 준비를 위해 선택적으로 투자.

질문 : 간단한 iOS 앱을 만들려고 해. Storyboard, 코드, SwiftUI 세가지 방식으로 만들거야. 세가지 방식 모두 만드는 방법을 알려줘 (+ 각각의 장단점을 표로 작성해줘)

Grok


Perplexity




https://www.apple.com/kr/macos/macos-sequoia/


Swift 개념

Nil-Coalescing Operator

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/basicoperators

생성형 ai 질문 : swift에서 Nil-Coalescing Operator 에 대해서 설명해줘
Perplexity

Grok

Collection Types

제일 많이 사용하는 것은 Arrays


질문 : 함수형 언어의 특징을 잘 알 수 있는 예제를 Swift 언어로 만들고 설명해줘

Perplexity

Grok


Swift 한국어 문서

https://bbiguduk.gitbook.io/swift (현재 최신 버전은 Swift 6)

이름 10번 출력하기

let name = "CDH"
for _ in 1...10 {
    print(name)
}

결과
CDH
CDH
CDH
CDH
CDH
CDH
CDH
CDH
CDH
CDH

* 객체지향 언어의 큰 특징 : 캡슐화, 상속, 재사용

코드 편하게 보는 방법 (JSON)

데이터는 영화진흥위원회의 api 사용 및 비교

https://codebeautify.org/jsonviewer

{
  "boxOfficeResult": {
    "boxofficeType": "일별 박스오피스",
    "showRange": "20250304~20250304",
    "dailyBoxOfficeList": [
      {
        "rnum": "1",
        "rank": "1",
        "rankInten": "0",
        "rankOldAndNew": "OLD",
        "movieCd": "20244821",
        "movieNm": "미키 17",
        "openDt": "2025-02-28",
        "salesAmt": "792920440",
        "salesShare": "65.1",
        "salesInten": "-2305081740",
        "salesChange": "-74.4",
        "salesAcc": "13742880540",
        "audiCnt": "82482",
        "audiInten": "-233629",
        "audiChange": "-73.9",
        "audiAcc": "1385475",
        "scrnCnt": "1882",
        "showCnt": "6935"
      },

같은 값이다.

0개의 댓글