1. 소프트웨어 아키텍처
- 시스템의 구성 요소와 그들 간의 관계 및 상호작용을 정의하는 구조
- SW시스템의 품질을 유지하고 확작성, 안정성, 보안성을 확보
2. 소프트웨어 아키텍처의 중요성
- 시스템의 복잡도를 관리 및 유지보수 비용 절감
- 다양한 팀 간의 협업을 효과적으로 지원
- 성능, 확장성, 보안성을 보장
3. 앱 아키텍처의 주요 구성 요소

4. 각 구성 요소의 상호 작용

5. 프론트엔드의 역할
- 사용자 인터페이스 제공
- 사용자 입력 처리 및 시각적인 콘텐츠 출력
- API 호출을 통해 백엔드와 데이터 통신
6. 데이터 베이스 설계원칙
- 정규화 : 중복 데이터를 최소화하여 데이터 무결성 확보
- 인덱스 최적화 : 검색 속도를 높이기 위한 인덱스 설정
- 보안 : 민감한 데이터를 암호화하고 접근 권한을 관리
7. 클라이언트 - 서버 모델의 장단점

8. 클라이언트란 무엇인가?
클라이언트
: 서버에 요청을 보내고, 응답을 받아 사용자와 상호작용하는 장치 또는 애플리케이션
주요역할
- 사용자 인터페이스 제공
- 사용자 입력 처리 및 시각적인 콘텐츠 출력
- API 호출을 통해 백엔드와 데이터 통신
9. 서버란 무엇인가?
서버
: 클라이언트의 요청을 처리하고 데이터 연산 및 저장을 담당하는 중앙 컴퓨터 또는 시스템
주요역할
- 클라이언트의 요청 처리 및 응답 생성
- 데이터 베이스와 상호작용
- 비즈니스 로직 실행 및 데이터 검증
10. 서버의 기술적 구성 요소

11. 데이터 통신에서의 보안과 최적화
보안
: SSL/TLS를 사용한 데이터 암호화
: 인증 토큰(JWT, OAuth) 활용
최적화
: 데이터 압축(Gzip)으로 네트워크 사용량 감소
: CDN(Content Delivery Network)으로 데이터 전송 속도 향상
: 캐싱을 통해 반복 요청 최소화
12. RESTful API란 무엇인가?
: Representational State Treansfer 원칙을 준수하는 API
- 무상태성 : 서버가 클라이언트 상태를 저장하지않음
- 리소스 기반 설계: URL로 리소스를 식별
.3. HTTP 메서드 활용 : GET, POST, PUT, DELETE
13. API응답 구조

14. 데이터 포맷의 종류와 특징
JASON
- 경형 데이터 교환 포맷
- 사람이 읽기 쉬우며 대부분의 언어와 호환
- 가볍고 처리 속도가 빠름
XML
- 데이터 저장 및 전송에 사용
- 태그 기반 구조로 유연성이 높음
- 복잡한 데이터 표현에 적합
15. API 인증의 필요성

16. 고급 인증 방식
JWT: 클라이언트가 서버와 통신할 때 인증 상태를 유지
OAuth 2.0 : 엑세스 토큰을 통해 인증 및 권한 부여 인증과 권한을 분리하여 보안강화
17. 사용자 인터페이스(UI)란 무엇인가?
UI(User Interface)
: 사용자가 앱과 상호작용하는 시각적, 물리적 구성 요소
1. 사용자가 앱의 기능을 쉽게 접근하고 이해하도록 설계
2. 복잡한 비즈니스 로직이나 데이터 흐름을 추상화하여 사용자 친화적으로 제공
18. UI 설계의 원칙
- 일관성 : 버튼, 메뉴 등 디자인 요소가 일관되어야함
- 직관성: 사용자사 쉽게 학습하고 사용할 수 있어야함
- 응답성 : 사용자 입력에 빠르게 반응
- 접근성 : 다양한 사용자(장애인)가 쉽게 사용가능해야함
19. 데이터 저장소 계층이란?
: 데이터를 저장하고 관리하는 계층으로, DB와 연결됨
1. 데이터를 안전하게 저장
2. 빠르고 효율적인 데이터 검색
3. 데이터 일관성 및 무결성 유지
20. 데이터베이스의 주요 구성 요소

21. 관계형 데이터 베이스
: 테이블 간의 관계를 기반으로 데이터를 관리
1. 데이터의 정형화된 구조
2. 관계를 통해 데이터 일관성과 무결성을 유지
22. 비관계 데이터 베이스
: 테이블 구조를 따르지 않고 데이터를 유연하게 저장
1. 비정형 데이터 처리에 유리
2. 스키마가 필요 없으며 확장성이 높음
23. 데이터 모델링
: 데이터베이스 구조를 시각적으로 설계하는 과정
데이터를 효율적으로 저장하고 관계를 정의
1. 데이터 중복 방지
2. 데이터베이스의 일관성과 무결성 보장
24. 데이터 교환 시 고려 사항
