전체 글

2025 정보처리기사 필기 합격 수기 (3주간 퇴근 후 공부)
·
IT 공부
오늘은 2025년 정보처리기사 제 3회 필기시험일이었다.집근처 대한상공회의소 인력개발원 고사장으로 신청했고 오전 8시 40분까지 갔다.주차장 루트 반대편으로 도착해서 그냥 입구 근처에 적당히 주차하고 시험실로 들어갔다.안내해주시는 분들이 많아서 잘 찾아 들어갔고 CBT 시험은 처음 응시해봐서 신기했다. 필기시험 공부 기간은 3주정도로 잡았고그동안 공부 패턴은 퇴근후 저녁먹고 좀 쉬다가 10시부터 하나의 회차(100문제)씩은 꼭 풀자고 스스로 다짐했었다.시나공 사이트에 기출문제가 올라와있어서 정말 고마웠다. https://www.sinagong.co.kr/pds/001001001/past-exams 시나공컴활, 정보처리, 워드프로세서 등 IT 자격증 전문. 해설 포함 CBT, 최신 기출 자료 무료, 실기 ..
칭찬은 고래도 춤추게 한다.
·
인턴 업무일지
새로운 회사에서 인턴업무를 시작한지 3일차다.첫날은 회사까지 가서 직원들, 대표님이랑 점심도 먹고 공유오피스인지라 지하1층에서 쾌적하고 조용하게 업무하기도 너무 좋았다.다만 가깝진 않아서 왕복 3시간정도 소요됐던것 같다. 그런데 전회사보다 직원도 적고 회사 규모도 작지만 사람들이 너무너무너무너무 좋다.다들 웃으면서 공손하게 말하고, 혹여나 상대에게 상처가 될만한 말은 최대한 돌려서 말하는 분위기가 느껴졌다.직원들중 여자가 많아서인것 같기도하고, 대표님 부터가 성격이 너무 좋으셔서 본인의 회사 분위기를 좋게 이끌어 가시려고 하는 느낌도 들었다. 첫째날은 업무파악과 약간의 샘플로 앱을 만들어보았는데, 대표님이 칭찬을 정말 많이 해주셨다.간단한 작업이라서 3시간정도 소요시간이 걸린다고 말씀드렸는데 생각보다 빠..
Day 7 - 정각알람 기능 만들기(2)
·
개발일지 : 모멘톡(momentalk)
서론2달 전 마지막 개발일지를 작성하고 너무 오랜만에 글을 쓴다.그동안 개발은 열심히 했는데 작업하다보니 개발일지 쓰는걸 매번 깜빡하거나 미뤘었는데..지금부터라도 다시 복기하며 개발 내용을 되짚어봐야겠다. Notification Helper 만들기아래와 같이 백그라운드에서 호출될 초기 헬퍼 파일을 만들었다.강의에서 배운거 그대로 써먹기..ㅋㅋ 컴파일(Compile)컴파일이란 개발자가 작성한 코드를 기계어(기계가 이해할 수 있는 형태)로 바꾸는 과정이다.Dart같은 언어의 경우 사람이 이해하고 사용하기는 좋지만 기계가 이해하지 못한다.컴퓨터가 이해할 수 있는것은 0과 1로 이루어진 코드 뿐이다.이를 영어로 Binary 또는 Machine Code라고 한다.컴파일 방식은 AOT / JIT 두가지가 있다...
격파르타 SQLD 챌린지 후기 및 단기 합격인증!!
·
IT 공부
며칠 전 합격한 SQLD 자격증을 준비하면서 수강했던 격파르타 SQLD 챌린지 후기를 남겨보려고 한다.초반엔 비전공자도 따기 쉽다는 이야기를 많이 들어서 시험일 2주 전부터 본격적으로 공부를 시작했는데,QLD 시험의 교과서인 노랑이(SQL 자격검정 실전문제) 책만 사서 공부하고 있었다.https://link.coupang.com/a/cB6qzK SQL자격검정 실전문제 - 신규/기타자격증 | 쿠팡현재 별점 4.8점, 리뷰 248개를 가진 SQL자격검정 실전문제! 지금 쿠팡에서 더 저렴하고 다양한 신규/기타자격증 제품들을 확인해보세요.www.coupang.com 근데 이 문제집 수준이 굉장히 어려운 것이다..ㅎㅎ설명이 자세하지 않고 실전 모의문제들이 담겨있다 보니 핵심 개념들을 포함한 문제들이 많이 출제되어..
Flutter 웹빌드시 안정적인 초기화 설정을 위한 index.html 파일 설정
·
Flutter
html문서는 다루는법을 아직 잘 몰라서 조금씩 필요한 코드를 찾아서 추가해봤다. 1. Flutter 웹 앱이 루트가 아닌 경로에서 제공될 경우, 상대 경로를 기준으로 리소스를 찾도록 도와준다고 한다.Flutter 웹 앱을 root가 아닌 특정 경로에 호스팅할 때정적 리소스(CSS, JS, 이미지) 경로 문제를 해결하기 위해 태그를 삽입해야하며flutter build web --base-href "특정경로" → 이 값이 index.html의 태그에 자동으로 치환된다.출처 : https://docs.flutter.dev/ui/navigation/url-strategies Configuring the URL strategy on the webUse hash or path URL strategies on..
KakaoCDN(Contents Delivery Network) 이미지 로드 안될때
·
Flutter
회사서버에 저장된 여러 이미지들을 flutter web 빌드를 진행하며 불러오기 하는 과정중이미지가 안불러와지는 것들도 몇개 있었는데,그중 여러개가 kakaocdn 이라는 주소로 연결된 이미지들이었다. 다양한 방법들을 시도해보다가 ai에게 물어보니..카카오에서는 하나의 이미지 리소스를 여러 CDN서버에서 동시에 제공하면서 트래픽을 분산하기때문에하나의 이미지가 로드되지않을때 앞쪽 도메인만 바꿔봐도 로드되는 경우가 많다고한다. 또 일부 서버에서만 CORS를 허용하기 때문에 이미지가 로드되는 주소로 바꿔보는것을 추천받았다.그래서 st로 시작하는 url을 img1, img2 등으로 바꿔보니CORS가 허용된 이미지들이 뜨는경우도 많았다.
Flutter Web Build에서의 오류 수정
·
Flutter
Flutter 웹 빌드를 계속해서 시도해보고 있는데 생각보다 웹에서의 제약조건이 많다.아무렴.. Flutter는 모바일에서 주로 쓰일 목적으로 만들어졌는걸..ㅎㅎ 무튼 웹에서는 지원되지 않는 여러 메서드들이 있다. 1. subscribeToTopic() 메서드 미지원웹에서는 해당 메서드가 지원되지 않는다. 이 메서드는 어떤 주제를 구독한 사용자들에게 전부 메시지를 보내는 메서드이다.주로 많은 인원에게 메시지를 한 번에 보낼 때 유용하다. 파이어베이스와 연동이 되어있어야 사용이 가능한데 원래는 한글을 사용할 수 없었다고 한다.그런데 찾아보니 오픈라이브러리를 만든사람이 있어서 데이터를 저장하고 불러올때마다 변환을 하면 한글도 사용이 가능하다. 2. 로컬 알림 미지원웹에서는 로컬 알림 플러그인을 초기화..
Flutter 웹에서 Firebase사용시 오류 해결법
·
Flutter
요즘 회사에서 Flutter Web Build를 하고있어서 정말.. 매일매일이 오류대잔치다. Flutter Web에서 Firebase를 사용할땐 firebase_core 초기화시 웹 전용 FirebaseOptions를 반드시 명시해야 한다고 한다.모바일 앱에서는 google-services.json (Android) 또는 GoogleService-Info.plist (iOS) 파일을 사용하는데이 파일들이 앱 번들에 포함되어 Firebase가 자동으로 설정을 읽어온다.따라서 firebase-options.dart 파일 없이도 앱이 작동한다. 그러나 웹에서는 firebase-options.dart 파일이 반드시 필요하다.웹에서는 네이티브 설정 파일을 사용할 수 없고 Firebase 설정이 JavaScript..
Day 6 - 정각알람 기능 만들기(1)
·
개발일지 : 모멘톡(momentalk)
서론본격적으로 가장 먼저 정각 알림 기능을 만들어보려고 한다.이 과정이 이렇게 힘들줄은 몰랐는데 생각보다 기기 자체에 알림기능을 넣는다는게 쉬운일은 아니었다..AI 도움으로 시작은 어찌저찌 해봤는데 과정이 생각보다 험난하다..^^ㅋㅋ LocalNotification 구현하기Flutter에서 로컬 알림 기능을 구현하는 방법은 내일배움캠프 강의에서 아래와 같은 방식으로 학습했다.로컬알림은 flutter framework에서는 자체적으로 지원하지 않는 기능이기 때문에,안드로이드 네이티브의 NotificationCompat APIs, iOS 네이티브의 UserNotification APIs 를 사용하여 구현 후 플러터와 연동해야 한다고 한다.그런데 정말 고맙게도, 이를 이미 연동해놓은 flutter_local..
Day 5 - 내비게이션 바, 타임라인 만들기
·
개발일지 : 모멘톡(momentalk)
오늘도 개인 프로젝트를 계속 진행해봤다.바텀 내비게이션 바, 그리고 타임라인을 아래와 같이 구성해봤다.Figma 와이어프레임에서는 각 시간별로 가운데에 동그라미 표시를 넣어서완료여부를 표시하려고 했는데, 아무래도 구현이 어려워서 시간만 표시하도록 했다.그리고 시간별 구분선을 넣어서 깔끔하게 디스플레이를 구성햇다. 커스텀 체크박스 위젯은 직접 만들었는데, 화면 크기에 따라 입력가능한 글자수를 조정할 수 있도록 했다.아래와 같이 화면 가로길이에 맞게 입력글자수 조정 코드를 넣어봤다. @override Widget build(BuildContext context) { final double screenWidth = MediaQuery.of(context).size.width; final doub..
Day 4 - To Do List Section Layout 수정
·
개발일지 : 모멘톡(momentalk)
오늘은 오랜만에 모멘톡 데일리 플랜 페이지의 레이아웃 수정을 다시 해봤다.1차로 완성된 To Do List 레이아웃은 아래와 같다.체크박스를 몇개 넣을까 하다가 일단 8개를 넣었다.근데 이 부분이 너무 많은 공간을 차지하는 느낌도 들어서 이부분을 접었다 폈다 하는 토글기능을 넣을까 싶기도 하다. 각각의 체크박스는 아래와 같이 컴포넌트화 하여 만들었다.import 'package:flutter/material.dart';import 'package:momentalk/core/constants/app_colors.dart';import 'package:momentalk/core/constants/app_textStyle.dart';class CustomCheckbox extends StatefulWidget..
큐센 (QSENN) Q87 키보드 (크림치즈) 리뷰
·
리뷰
서론 내일배움캠프 Flutter 5기 교육을 수료하고, 최종 발표에서 최우수 프로젝트상을 수상하여이렇게 큐센 키보드를 상품으로 받아서 리뷰하게 되었다. 최종 프로젝트 : https://apps.apple.com/kr/app/%EC%9C%84%ED%8A%B8/id6741675110 ‎위트‎AI 맞춤 추천으로 쉽고 빠르게 여행 계획! 위트는 사용자가 간단한 키워드를 선택하면, AI가 이를 분석하여 최적의 여행지를 추천합니다. 사용자는 단 몇 번의 터치만으로 자신의 스타일과 취apps.apple.com  구매 링크 : https://link.coupang.com/a/cjrSbt (공식 사이트보다 저렴) 큐센 풀윤활 가스켓 블루투스 유무선 기계식 텐키리스 키보드 V1 - 기계식키보드 | 쿠팡쿠팡에서 큐센 풀윤활..
내일배움캠프 Flutter 5기 수료 소감
·
내일배움캠프 (Flutter 5기)
초창기에는 5개월이라는 시간이 길게 느껴졌지만, 지금은 눈깜짝할 사이에 지나가버린 것 같아 아쉽기도 하다. 그동안 함께한 모든 인원들에게 너무 감사했고, 소중한 경험, 기억, 인연들을 너무나 많이 얻어가는 것 같아 뿌듯하다. 무엇보다 이번 기회를 통해 '내일배움캠프'라는 훌륭한 교육기관에 대해 자세히 알게 되어 좋았다. 뿐만 아니라, 좋은 동료들, 튜터님들, 매니저님들과 함께 유의미한 시간을 보내고 훌륭한 결과물도 얻을 수 있어서 굉장히 기쁘다.특히나 나는 팀장을 많이 맡게 되었는데, 소통과 중재의 즐거움을 크게 느낄 수 있었다. 불협화음을 맞춰가는 과정의 재미를 깨달았고, 프로젝트 문서화 과정에서 제가 팀 대시보드를 꾸미고 최신화하는 것을 좋아한다는 것도 이번 기회에 알게 되었다. 이는 프로젝트 진행에..
Day 3 - Figma 추가 작업중
·
개발일지 : 모멘톡(momentalk)
오늘도 어제에 이어 개인 프로젝트 Figma  작업을 진행했다.우선적으로는 내가 필수적으로 넣고싶은 아래 기능들을 먼저 넣었다. - 스플래시- 날짜 표시 및 이동 기능- 그날의 To Do List 작성 및 완료 표시 기능- 시간별 원래의 계획과 결과 입력하고 색깔로 분류하기   (경제활동 / 자기계발 / 휴식 / 집안일 등 필수작업 / 시간낭비)- 알람설정 + 30분마다 추가 알람- 정보 페이지 (문의처, 이용약관 및 개인정보 처리방침)  MVP (Minimum Viable Product) 우선출시가 목표이기 때문에내가 정말로 필요로했던 최소 기능들만 우선적으로 작업할 예정이다. 로그인 기능을 넣을까 했지만 일단은 로컬저장소에 데이터를 저장해두고 불러오는 방식으로 구현해봐야겠다. 내가 이 어플을 기획하게..
Day 2 - Figma 작업
·
개발일지 : 모멘톡(momentalk)
어제에 이어서 오늘도 개인프로젝트 피그마 작업을 해봤다.매일 일정을 계획하고 결과를 기록할 수 있도록 데일리 플랜 페이지를 아래와 같이 구성해봤다.  먼슬리, 위클리도 넣고싶은데 일단 MVP 구현을 우선적으로 하기 위해 데일리 플랜 페이지만 넣기로 했다.바텀 내비게이션바에는 알람설정과 마이페이지 이동버튼을 넣을 계획이다.근데 확실히 디자이너님이 만져주실때랑은 다르다.. 확실히 아마추어 느낌..ㅎㅎㅎ그래도 최대한 열심히 작업해봐야겠다!ㅎㅎ
Day 1 - 앱 이름, 컨셉 정하기
·
개발일지 : 모멘톡(momentalk)
ChatGPT 한테 시간의 소중함과 매 순간을 의미 있게 보내자는 메시지를 표현한 귀엽고 예쁜 이미지를 하나 만들어달라고 했더니 너무 유아틱한 귀여운 이미지가 생성되어서 ㅋㅋ 이번엔 제미나이에게 부탁해봤는데 위와 같이 예쁜 이미지가 잘 생성되었다. 내가 만들고 싶은 앱은 사후기록 알람 앱이다.시간의 소중함을 더욱 깊이 느끼고 내가 직전시간을 어떻게 보냈는지에 집중하게 도와주는 앱을 만들고싶다.그래서 생각해낸 이름은 모멘톡이다. 순간을 나타내는 Moment, 그리고 대화를 뜻하는 Talk을 붙여서 이름지었다. 대화식으로 만들지, 아니면 리스트식으로 타임테이블을 채우는 식으로 만들지 고민인데,대화식으로 만들려면 많은 시간이 소요될 것 같아 아무래도 타임테이블 채우기 식으로 만드는것이빠른 MVP 출시로 가는 ..
Flutter - Riverpod 상태관리
·
Flutter
1. Riverpod 이란?Riverpod은 Flutter에서 사용하는 상태관리 패턴중 하나이다. (이외에도 Provider, Bloc 등이 있음) 클릭한 버튼의 상태, 입력한 텍스트, 불러온 데이터 등을 쉽고 안전하게 관리할 수 있고변하는 데이터(상태)를 저장, 관리하면서 화면(UI)을 자동으로 업데이트해준다. 초보자도 실수 없이 쓰기 좋고, 안전하고, 테스트하기 쉽고, 가독성이 높은 코드를 작성할 수 있게 도와준다.특히 클린아키텍처와 의존성 주입을 잘 지원하여 복잡한 앱에서 유지보수하기 쉬워진다. 앱 실행중 메모리(RAM)에 데이터를 보관한다.그래서 앱이 꺼지거나 다시 실행되면 Riverpod에 있던 데이터들은 사라진다. 캐싱 서비스는 로컬 위치에 저장해서 앱을 껐다 켜도 데이터가 유지되고,네트워크 ..
Flutter - 상수 클래스
·
Flutter
서론Flutter 개발을 하다보면 생각보다 상수를 활용하게 되는 때가 많다.앱전반에서 변하지 않는 값들에 대해 재사용을 많이 하는데,여기에는 문자열, 경로, 숫자, 패딩, 색상, 여백, 그림자 설정 등 정말 다양한 요소들이 해당된다. 이런 설정들을 일일이 적어 사용하다보면, 보다 간소화시켜서 사용하고자 하는 욕구가 생긴다.이럴 때 주로 상수화를 시켜서 사용을 많이 하는데 간편하다는 장점 말고도 여러 좋은 점들이 많다.  상수 클래스 사용이유유지 보수 용이성 : 상수값을 한 곳에 모아두면, 상수값이 변경될때 해당 상수 파일만 수정하면 되니까 편리하다.오타, 실수 등 Human Error 방지 : 같은 설정을 상수화하지 않고 여기저기 사용하다보면 수정시에 굉장히 불편하다.특히나 빠트린 부분, 잘못 수정한 부..
Flutter - ListView
·
Flutter
서론어제 상태관리에 대해서밖에 제대로 공부를 안했는데 오늘 오전에 모의면접에 참여했다.그동안 쌓았던 얕은 지식들을 총동원하고 약간의 합법적인(?) 컨닝페이퍼와 함께 어찌저찌 답변을 하긴 했는데 아무래도 얕은 밑천은 금방 드러나버렸다. 그래도 오늘부터 차근차근 핵심 개념들에 대해 다시 돌아보고자 한다. Flutter 숙련ℚ. ListView, ListView.builder, SingleChildScrollView + Column 3가지의 차이점은?𝔸. 리스트뷰, 리스트뷰 빌더, 싱글차일드스크롤뷰에 칼럼을 넣은 세가지 구조의 차이점을 알아보려면 일단 각 위젯에 대한 이해가 필요하다.  ListView여러개의 위젯을 세로로 나열하여 보여주는 위젯이다. 쉽게 말하면 우리가 핸드폰에서 자주보는 스크롤 가능 목록..
Flutter - 상태(State)란?
·
Flutter
서론정신없이 최종프로젝트 준비를 하다 보니 어느새 모의 면접 준비단계에 들어섰다. 모의면접 시뮬레이션 학습 가이드에는 본인의 답지를 만들어볼 것을 권장한다고 쓰여있다.예상 문제를 준비해서 미리 공부한다는 느낌으로 대비하면 된다고 하셨다. 포커스를 둘 부분은, 말을 잘하는 법이다.내가 이해한 것을 바탕으로 개념에 대해 잘 설명할 수 있어야 한다.절대 준비한 자료를 읽으면서 답변하면 안 된다고 하셨다.실제로 정말 면접을 본다 생각하고 임해야겠다. 나의 경험이나 구체적인 예시를 들면 좋다고 하며, 순차적으로 말하는 연습을 해야 한다.잘 알지 못하거나 하지 못하는 부분에 대해서는 최대한 진실성 있게 말해야 한다. ChatGPT의 도움을 얻어 나만의 답안지를 작성해 봤다. Flutter 숙련ℚ. Flutter 앱..
디버그용 / 릴리즈용 DB 분기하기 + get 명령어 사용법
·
Flutter
Flutter 프로젝트를 준비하는 와중에, Firebase상에서 데이터를 주고받는 DB에 대해디버그 / 릴리즈 용도분리를 해야한다는 사실을 뒤늦게 깨달았다.이와 관련하여 팀원분이 사용법을 정리해주셨는데 아래와 같이 복기해보고자 한다.1. 디버그용 / 릴리즈용 DB 분기하기import 'package:flutter/foundation.dart';/// firestore DB 분기class FirestoreConstants { bool get isDebugMode => !kReleaseMode; String get usersCollection => isDebugMode ? 'users_test' : 'users'; String get packagesCollection => isDebugMode ? 'p..
DataSource / Repository / Implement 에 대한 차이점 정리
·
Flutter
클린아키텍처로 flutter 프로젝트를 진행하고 있는데 비슷한 용어가 여기저기서 다양하게 사용되다보니개념이 헷갈려서 아래 구성항목들에 대해서 오늘 다시한번 정리해보려고 한다. Data SourceData Source ImplementRepositoryRepository ImplementData Source역할 : 외부로부터 데이터를 가져오거나 저장하는 방법을 정의한다.→ 데이터의 출처(DB, API 등)에 접근하는 방법(상호작용)을 추상화 한다.여기서 추상화란 ?: 복잡한 시스템의 세부사항을 숨기고 핵심적인 부분만 드러내는 것비유 : 요리 레시피 + 주방→ 필요한 재료와 메서드 순서 등을 정의하지만 실제로 요리하지 않는다.→ 어떤 데이터를 어디서 가져올것인가(레스토랑 밖이 될 수도 있음)에 대한 메서드만..
Firebase API Key 보안설정 (.env)
·
Flutter
서론Flutter Project 진행을 하면서 Firebase 옵션설정을 할 기회가 많았다.Firebase와 프로젝트를 연동하면서 생성되는 FirebaseOptions 파일에는 다양한 보안설정들이 저장되어있는데,이중 어떤 값들을 암호화 해야하는지 몰라서 ChatGPT의 도움을 받아 아래와 같이 정리해봤다.API Keyapi 키는 프로젝트에 대한 인증 없이 공용 데이터를 읽거나, 일부 API호출을 허용한다.이때 누군가가 이 키를 사용하여 프로젝트의 설정을 오용하거나 데이터를 노출시킬 수 있다고 한다.따라서 이는 비공개로 관리 (.env) 하면서 환경변수로 외부에 노출되지 않도록 해야한다.또는 Firebase 보안규칙을 설정하여 인증되 않은 액세스를 제한 할 수도 있다. 그러나 프로젝트를 깃허브에도 저장하고..
데이터 모델이란?
·
Flutter
클린 아키텍처에서 Entity는 데이터 모델 클래스이며, 도메인 레이어에 속한다고 배웠다.여기서 드는 의문은, 데이터 모델이란 개념은 정확히 무얼 의미하는걸까? 제미나이에게 물어봤더니 아래와 같이 답변했다. 데이터 모델이란, 현실 세계의 복잡한 정보를 단순화, 추상화하여 표현하는 도구라고 한다.레고 블록으로 다양한 완성품을 만들때 필요한 것이 바로 설명서인데, 이 설명서가 모델이라고 한다. 데이터 모델에는 관계형 데이터 모델 / 계층형 데이터 모델 / 네트워크형 데이터 모델 등 다양한 종류가 있다.지금까지의 프로젝트에서는 관계형 데이터 모델을 주로 사용했던 것 같다.(엔티티마다 다양한 여러 속성을 가짐) 모델에는 아래와 같은 3요소가 있다. Entity(개체) : 현실세계의 사물, 사람, 개념 등을 나타..
클린 아키텍처 깊게 이해하기
·
Flutter
클린 아키텍처의 구조어제는 클린 아키텍처가 3가지 레이어로 나뉜다고 정리했다.(Presentation, Domain, Data Layer)여기에는 Entity, Use Case, Interface Adapters, Frameworks and Drivers와 같은 계층들이 아래와 같이 분류된다.Presentation LayerUI와 같은 화면표시 및 사용자 입력 처리 계층ViewModel, Widget - UI 계층컨트롤러 - UI, UseCase 간의 연결다리 역할. 사용자의 요청을 받아 UseCase를 실행하고 그 결과를 뷰모델에 전달. Domain Layer시스템의 비즈니스 로직을 담고 있는 핵심 계층Entity : 데이터 모델 클래스 (ex. User 등)UseCase : Entity로 해야할 일 ..
클린 아키텍처 / MVVM 아키텍처
·
Flutter
클린 아키텍처란?Clean Architecture말 자체의 뜻은 깨끗하다는 의미를 담고 있다. 이는 이 구조가 지향하는 목표와 관련이 깊다.클린 아키텍처는 소프트웨어를 이해, 수정, 테스트하기 쉽게 만들어준다. 1. 관심사 분리 (Separation of Concerns)소프트웨어를 독립 레이어로 분리하여 특정 역할에만 집중하도록 해준다.이를 통해 코드 복잡성이 개선되고 각 부분을 이해, 수정하기 쉽게 만들어준다. 2. 의존성 규칙 (Dependency Rule)의존성 규칙으로 레이어간의 의존성을 최소화한다. 안쪽으로 갈수록 바깥 레이어에 의지하지 않는다.이를 통해 특정 레이어가 다른 레이어에 영향을 주지 않도록 하여 안정적인 유지보수가 가능하다. 3. 테스트 용이성 (Testability)각 레이어가 ..
Dart 프로그래밍 1주차 강의요약 (1)
·
Dart
프로그램 : 컴퓨터가 이해할 수 있는 명령어의 나열명령어 or 프로그래밍 언어    =>    모두 합치면 프로그램저급 (Low-level)기계어어셈블리어고급 (High-level)CC++C#KotlinPythonJavaJavaScriptDart컴파일러Just In Tim (JIT) 컴파일프로그램 실행 중 (런타임) 에 코드의 일부 또는 전부를 컴파일하는 기술 장점바로 바로 컴파일하기 때문에 실행 결과를 실시간으로 확인할 수 있다 👍🏼 단점실행 중에 계속 코드를 컴파일하니 상대적으로 느리다Ahead-of-Time (AOT) 컴파일프로그램 실행 전에 미리 컴파일하는 기술대부분의 전통적인 컴파일러 (ex. C, C++) 가 사용하는 방식장점한 번 컴파일 되고 나면 실행 속도가 빠르다 👍🏼단점실시간으로..
Flutter 앱 개발 온보딩 주차 마무리 소감
·
내일배움캠프 (Flutter 5기)
이번주는 Flutter 앱 개발 내일배움캠프 온보딩 주차였다.사전캠프때 강의를 좀 열심히 들어두고 실습도 많이해볼걸 하고 약간의 후회가 들었다.사전캠프에서 진행했던 프로젝트는 와이어프레임과 디자인적인 요소 위주로 구상을 많이했는데내가 좋아하는 분야여서그런지 집중력있고 즐겁게 프로젝트 마무리를 했던 것 같다.과제 1등도 해서 맛있는 치킨도 먹고 >하지만 본캠프가 시작되고 나보다 훨씬 많은 사전지식들을 가진 분들이 실습정도는 가볍게 거쳐가는걸 보니나도정말 분발하긴 해야겠다는 생각이 든다.Dart문법이 아직 익숙하지 않아서 실습과제를 하면서 이해되지 않는 부분들이 너무 많았다.단순암기의 주입식 교육을 받는 느낌도 들어서 내가 상상했던것 보다는 그렇게 즐겁지 않았던 것 같기도 하다.하지만 내가 목표한 바를 설정..
Flutter 앱 개발 4, 5주차 강의내용 정리
·
내일배움캠프 (Flutter 5기)
외부와 연동해서 앱을 좀 더 풍성하고 다양하게 그리고 안전하게 서비스할 수 있는 방법대부분 서버와 통신을 하여 데이터를 관리하거나 로컬 데이터 베이스를 활용하여 데이터를 유지하여 사용자들에게 제공로컬 데이터 베이스로 이용한 경우 앱을 지우거나 앱의 캐시를 삭제하게 되면 저장되어 있던 데이터들이 없어짐파이어 베이스 : 서버를 대신할 클라우드 서비스 Google에서 지원하는 포괄적인 앱 개발 플랫폼개발자가 애플리케이션을 빌드, 개선 및 성장시키는 데 도움이 되도록 설계된 도구 및 서비스 모음을 제공실시간 데이터베이스개발자가 여러 장치 및 플랫폼에서 데이터를 저장하고 동기화할 수 있는 확장 가능한 실시간 NoSQL 클라우드 데이터베이스를 제공인증이메일/비밀번호, 전화번호, 소셜 미디어 계정과 같은 다양한 로그..
Flutter 앱 개발 3주차 강의내용 정리
·
내일배움캠프 (Flutter 5기)
상태고정되어 있지 않고 변화되는 데이터, 정보상태관리상태를 효율적으로 관리하여 UI와 동기화하는 과정UI 동기화변화되는 상태를 시각적으로도 즉시 표시플러터의 상태 관리StatefulWidget의 setState 방식서드 파트 라이브러리를 이용하여 상태 관리하는 방식  프로젝트 생성기본제공 예제소스 - StatefulWidgetFloatingActionButton을 누르면 가운데 숫자 상태의 값을 올리면서 UI가 동기화되어 변화되는 상태를 사용자가 바로 확인할 수 있는 아주 기본이 되는 상태 관리 소스코드상태변경 O / UI 동기화 X-> 더하기 버튼을 아무리 눌러도 화면에 변화 X-> 상태(데이터)는 변경됨-> 변경되는 데이터에 대해서는 debug console에서 확인가능-> 상태 관리가 잘되지 않는다..
Flutter 앱 개발 2주차 강의내용 정리
·
내일배움캠프 (Flutter 5기)
위젯 만들기플러터 기본 내장 위젯 : https://docs.flutter.dev/ui/widgets Widget catalogA catalog of some of Flutter's rich set of widgets.docs.flutter.devpub.dev에서 개발자분들이 공유하고 있는 위젯 : https://pub.dev/​ The official repository for Dart and Flutter packages.Pub is the package manager for the Dart programming language, containing reusable libraries & packages for Flutter and general Dart programs.pub.dev  본인이 직접 만..
Flutter 앱 개발 1주차 강의내용 정리 (3)
·
내일배움캠프 (Flutter 5기)
함수 : 프로그램 내에서 특정 작업(이벤트)을 수행하기 위해 코드 블록 내에 비즈니스 로직을 작성하여, 원하는 값을 반환하거나 변수를 통해 데이터를 담아두는 기능규칙 : 반환타입 함수이름(매개변수1, 매개변수2, ...) {           // 비즈니스 로직 구현부           return 반환값;           }반환타입함수가 반환하는 값의 타입 명시. 반환값이 없는 경우 void 사용반환 타입은 변수 선언 파트에서 알아봤던 타입과 동일 (int,String,bool,List,Map 등…)함수이름함수를 호출할 때 사용하는 이름함수 이름은 어떤 작업을 수행하는지 비즈니스 로직을 대표할 수 있는 명확한 이름으로 작성하는 것이 중요매개변수함수가 입력받는 값들. 콤마로 구분하여 여러 개 정의 가능..
Flutter 앱 개발 1주차 강의내용 정리 (2)
·
내일배움캠프 (Flutter 5기)
변수값을 담아두는 박스프로그램 : 많은 변수들에 값을 가공하고 꺼내와서 연산, 처리하는 결과물DartPad : Flutter에서 제공하는 공식 사이트 활용(Dart 언어 테스트) DartPad 활용var : 변수 타입 지정 (입력값의 타입 추정)string : 문자열int : 숫자bool : true/false변수 타입에 맞지 않으면 오류발생 Header.dart    * 게임의 상단 영역을 관리    * 필요한 데이터 : score 와 try count    * .toString : 문자열 타입으로 변수 변환 card_boards.dart    * CardWidget()               ->    각각의 카드 이미지 위젯    * List cards = [];     ->    cards 변수..
Flutter 앱 개발 1주차 강의내용 정리 (1)
·
내일배움캠프 (Flutter 5기)
* 1주차  - 플러터를 배워야 하는 이유  - 개발환경 세팅  - Dart 문법 * 2주차  - 플러터 위젯  - 스레드 앱, 알람 앱 만들기 * 3주차  - 상태관리 (Getx 라이브러리) * 4주차  - Firebase 데이터베이스 연동  - 외부 API 활용하여 앱 만들기 * 5주차  - 메모 앱 만들기  - 앱 배포  - 구글 애드몹 연동으로 광고 수익 * 앱 개발방법  - 네이티브 / 크로스 플랫폼 * 네이티브 앱 : 리소스 많이 필요함 / 최적화하기 좋음 / 업데이트 빠름  - iOS : Objective-C / Swift / Xcode / Mac 에서만 가능  - Android : Java / Kotlin / Android Studio * 크로스 플랫폼 앱 : 하나의 언어로 개발가능 / 업..
스타터 노트
·
내일배움캠프 (Flutter 5기)
1. 내가 Flutter 트랙에 참여한 계기는 무엇인가요?앱 개발 분야에 흥미가 생겨서 최근 진로변경을 결정했습니다. 짧은 기간동안 집약적인 학습 및 취업연계가 가능할 것 같아 내일배움캠프에 지원하였고, iOS 뿐만 아니라 안드로이드 마켓에도 앱을 출시하고싶은 마음에 Flutter 트랙으로 결정하였습니다. 2. 내가 이해한 개발자(혹은 생각했던 직무)는 어떤 역할을 하는 사람인가요?개발자는 코딩 소스를 활용해 앱 사용자의 니즈를 충족시키고, 그들을 위한 원활한 연결고리 역할을 하는 사람이라고 생각합니다. 3. 앱개발 혹은 프로그래밍 관련 경험해보셨나요? 해보셨다면 어떤 경험을 하셨는지를 작성해주시고, 아니라면 앱개발에 대해 찾아본 것을 작성해주세요.(ex. 안드로이드 개발자와 iOS 개발자의 차이점, n..