
📝소프트웨어 아키텍처 모듈화 시스템의 기능들을 모듈 단위로 나누는 것 추상화 전체적이고 포괄적인 개념을 설계한 후 구체화시켜 나가는 것 정보은닉 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법 상위 설계와 하위 설계 상위 설계 하위 설계 아키텍처 설계, 예비 설계 모듈 설계, 상세 설계 구조, DB, 인터페이스 컴포넌트, 자료 구조, 알고리즘 시스템 측면 품질 속성 성능, 보안, 가용성, 기능성, 사용성, 변경 용이성, 확장성 등 협약에 의한 설계 컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유할 수 있도록 명세한 것 📝아키텍처 패턴 아키텍처 패턴 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제 레이어 패턴, 클라이언트-서버..

📝요점정리 데이터 저장소 데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축한 것을 의미 데이터베이스 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 쉽게 접근하여 처리할 수 있도록 저장 장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터 DBMS 사용자의 요구에 따라 정보를 생성해 주고, 데이터베이스를 관리해 주는 소프트웨어 필수 기능 3가지 : 정의 / 조작 / 제어 기능 데이터의 독립성 논리적 독립성 물리적 독립성 스키마(Schema) 외부 스키마 : 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것 개념 스키마 : 데이터베이스의 전체적인 논리적 구조, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 ..

📝요점정리 소프트웨어 생명 주기(Software Life Cycle) 소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것 폭포수 모형(Waterfall Model) 각 단계를 확실히 매듭짓고 그 결과를 철저하게 검토하여 승인 과정을 거친 후에 다음 단계를 진행하는 개발 방법론 프로토타입 모형(Prototype Model, 원형 모형) 실제 개발될 소프트웨어에 대한 견본품(Prototype)을 만들어 최종 결과물을 예측하는 모형 나선형 모형(Sprial Model, 점진적 모형) 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발하는 모형 보헴(Boehm)이 제안 계획 수립 -> 위험 분석 -> 개발 및 검증 -> 고객 평가 애자일 모형(Agil..

1. 채널(채팅방) 생성 파이어베이스 데이터베이스 -서버를 구축하지 않고 파이어베이스의 데이터베이스 활용. -파이어베이스에서 제공하는 파이어스토어는 NoSQL 문서 중심 데이터베이스로써, SQL 데이터베이스와 달리 테이블이나 행이 없고 컬렉션(collections), 문서(document), 필드(field)로 구성됨. -컬렉션과 문서는 항상 유일한 ID를 가지고 있어야함. 이번 프로젝트에서는 channels라는 ID를 가진 하나의 컬렉션을 만들고 생성되는 채팅방을 channels 컬렉션에 문서로 저장 예정. 파이어베이스 데이터베이스 규칙 수정 ChannelCreation.js KeyboardAwareScrollView 컴포넌트 : Input 컴포넌트를 사용할 때 자동으로 스크롤 위치를 이동하여 키보드가..

대부분의 애플리케이션은 데이터에 접근할 수 있는 유효한 사용자라는 것을 증명해야 하며, 인증 후 서비스를 이용할 수 있는 화면이 렌더링, 로그아웃 등으로 인증 상태를 해제하면 다시 인증을 위한 화면으로 이동함. 1. MainStack 내비게이션 const MainStack = () => { const theme = useContext(ThemeContext); return( ); }; export default MainStack; MainStack 내비게이션은 채널 목록 화면, 프로필 화면으로 구성된 MainTab 내비게이션을 첫 번째 화면으로 가짐. 실행 화면 2. MainTab 내비게이션 MainTab 내비게이션을 구성하는 채널 목록 화면 ChannelList.js, 프로필 화면 Profile.js ..

💡구현 목표 로그인/회원가입 : 이메일, 비밀번호를 이용한 로그인 및 회원가입 프로필 : 내 정보 확인 및 변경 채널 생성, 목록 조회 채널 : 실시간으로 메시지를 주고받는 독립된 공간 1. 프로젝트 준비 프로젝트 생성 expo init react-native-simple-chat//프로젝트 생성 npm install @react-navigation/native//리액트 내비게이션 설치 설치한 라이브러리 expo-image-picker : 기기 사진, 영상을 가져오는 기능 moment : 시간을 다양한 형태로 변경하는 등 시간과 관련된 많은 기능 제공 react-native-keyboard-aware-scroll-view : 키보드가 화면을 가리며 생기는 불편함 해결 react-native-gifted-..

일반적으로 모바일 애플리케이션은 하나의 화면이 아닌, 다양한 화면이 상황에 맞게 전환되면서 나타남. => 내비게이션(navigation)은 모바일 애플리케이션에서 가장 중요한 기능 중 하나임!! => 리액트 네이티브에서는 내비게이션을 지원하지 않는다. 외부 라이브러리를 이용해야 한다. 🤍리액트 내비게이션 리액트 네이티브 애플리케이션의 내비게이션을 쉽고 간단하게 관리할 수 있도록 도와줌 지원하는 내비게이션 종류 : 스택(stack) 내비게이션, 탭(tab) 내비게이션, 드로어(drawer) 내비게이션 구조 : NavigationContainer, Navigator, Screen 컴포넌트 Screen 컴포넌트 : 화면으로 사용되는 컴포넌트로, name과 component 속성을 지정해야함. name은 화면 ..

🤍Context API란 데이터를 전역적으로 관리하고 사용할 수 있도록 하는 기능 🤍전역 상태 관리 일반적인 리액트 네이티브(React-Native) 애플리케이션의 데이터는 부모 컴포넌트에서 자식 컴포넌트로 전달됨. 예를 들어, 어떤 데이터를 App 컴포넌트에서 관리할 경우, App 컴포넌트로부터 데이터를 필요로 하는 컴포넌트까지 props를 통해 값을 전달해 사용함. -> 하지만 props를 사용하는 방법은 번거로움. (관리하는 상태가 추가, 변경될 경우 과정에 속한 모든 컴포넌트를 찾아 수정해야함.) 이때, Context API를 생성하면 중간 과정에 있는 컴포넌트들을 거치지 않고 한 번에 원하는 데이터를 바로 받아와서 사용할 수 있다. 🤍Context API 실습 expo init react-nat..