10월, 2025의 게시물 표시

내배캠 20일차_단축키

이미지
  1. 앱개발종합반 복습중 과제를 하려니 너무 막막해졌다. 😂 발제 영상도 안 보여서 슬펐다. 튜터님께 찾아가니 원래 있는 코드로 편집하는 거라고 하셨다. 앱개발종합반 3챕터 투두리스트 앱 만들기 못 봤기에 그거라도 보기 시작했다. 역시 너무 오래 걸린다.  그래도 튜터님께 배운 작업의 효율을 올리는 단축키들을 알아서 좋았다. control + 화살표 좌우방향키, 터치패드에 손가락 3개로 좌우로 넘기기 한 화면으로 쪼개서 안보고 화면을 전환하면서 보면 강의도, VScode도 큰 화면으로 볼 수 있다는 것. 데스크탑 여러개 열어서 강의, VScode 각각 넣어주고 보면 되는 것이었다. 이것도 몰랐다. .😂 그리고 VScode에서 cmd + 클릭 : 오류난 지점으로 이동, 관련 설명내용이 나온다. control + - (마이너스) : 뒤로가기 😊😊😊   동그란 파란색 + 아이콘 suffixIcon 기본 높이 최대 48  statelessWidget을 statefulWidget으로 바꾸는 이유 UI에 반응형 변화(데이터 변화, 입력, 애니메이션 등) 필요하면 statefulwidget으로 변경 2. 인사이트클럽 약 3000조의 가치를 창출해낸 실리콘벨리의 코치가 말하는 '협력' https://maily.so/leanx/posts/mjz63k1vzwk 과거에 회사 경험을 돌아보면 공통적으로 외로움을 많이 느끼는 것을 볼 수 있었고 그때의 나의 역할을 동기부여와 열정을 북돋아 주는 것이었다. 다양한 관점과 피드백으로 아이디어를 발전시킬 수 있고, 효율적인 업무 부담으로 효율을 높일 수도 있고, 팀을 이뤘을 때 이점이 많지만 그중에서도 정서적 지지의 역할이 상당하다고 느낀다. 매니저와 코치의 개념 차이에 대해서도 인상깊었다. 매니저는 단순히 세부 업무를 관리한다는 의미라면, 코치는 팀원의 잠재력을 이끌어내서 성장을 도와주는 역할을 한다는 것이다. 전문코치가 있으면 좋겠지만, 초반에는 그럴 수 없으니 서로가 서로의 코치 역할이...

내배캠 [4주차 WIL]

WIL : Weekly I Learned  와. 이번주가 순식간에 지나갔다. 다시 새롭게 빌딩한 팀으로 이동하여 함께한 한 주 였다. 캠프 시작과 함께 했던 처음의 팀원들이었기에 다시 만나서 반가웠다. 함께 인사이트 클럽을 나누고, 아이디어 발산을 통해 우선순위도 정해보았다. 서로의 의사소통 스타일도 알아보고,  자연스럽게 이야기를 나누며 그밖의 아이디어도 나눌 수 있었다. 확실히 함께 진행할 때 시너지가 느껴져서 좋다. 각자가 가진 경험과 관점이 달라서 나름대로 객관적인 판단을 내리는데 도움이 되는 것 같다. 어려웠던 점은 이번주 5Whys 특강을 통해 아이디어를 적용해보았는데 이상하게도 산으로 가는 흐름이었다. 문제 정의를 다시 해야하는 건지, 왜? 질문에 방향성이 너무 확대된 것인지, 다음주에 튜터님을 찾아뵈어야 할 것 같다. 플러터 강의는 어쨌든 듣고 있다. 오늘까지도 진도빼느라 과제는 다음주에 진행할 예정이다. 튜터님이 말씀해주시길 숙련 강의가 고비라고 한다.  다음주까지는 최대한 강의를 놓치지 않으려고 노력중이다. 최소 5시간은 몰입해야 한다고 하셨는데, 강의만 따라가는 데도 하루가 끝나있어서 걱정이다. 그리고 다음주 토요일은 밍글데이, 이사 온 지 얼마 안 되어서 서울가는 길이 초행길이라 걱정되고  남편이 야근인 날이라 일찍 와야해서 아쉽지만 기대된다. 이번 주 한 일. 개인 : 플러터 강의 진도 완료 팀 활동 : 아이디어 발산, 5whys 진행 중 다음 주 할 일. 개인 : 플러터 입문 과제, 플러터 강의 진도 최대한 맞추기 팀 활동 :  아이디어 발산, 5whys / 튜터님 방문, 아이디어 MVP화하기, 밍글데이 💚

내배캠19일차_BMI 계산기 앱

이미지
 1. Flutter 입문 위젯 컴포넌트화 UI 코드가 길어지니깐 의미 있는 덩어리로 잘라서 파일이나 클래스로 만들어두고, 필요할때마다 위젯처럼 불러쓰자는 것. 같은 스타일의 박스를 계속 복붙해야 함. 유지보수 어려움. 아래 코드처럼 Custom Widget으로 분리. Spacer(), SizedBox() 간격 띄우기의 차이점은 뭘까? SizedBox()는 명확한 고정값을 띄우고 싶을 때, Spacer()는 비율에 맞게 나누고 싶을 때, 사용 SliderThemeData 슬라이더 위젯의 디자인 요소를 커스터마이징 할 수 있는 테마설정 객체 inactiveTrackColor 비활성 상태의 트랙 색상을 지정하는 속성 Track : 스위치의 배경부분 Thumb : 동그라미 버튼 부분 (반대개념은 activeTrackColor) SliderTheme : 스타일 묶음 SliderThemeData : 구체적인 스타일 값 버튼, 트랙, 효과, 말풍선까지 슬라이더 UI전체 통제 가능함. WidgetStatePropertyAll(RoundedRectangleBorder()) 버튼의 모양을 항상 둥근 사각형 형태로 유지, 고정 themeMode: ThemeMode.light themeMode: ThemeMode.dark 앱의 테마를 지정 (light 밝은 모드/ dark 어두운 모드) MaterialApp 위젯에서 사용됨 ElevatedButton, OutlinedButton 차이점 Positioned Stack 위젯 안에서만 사용할 수 있는 위젯, 자식 위젯의 위치를 정확한 좌표로 배치할 때 사용. Opacity 투명도 (0~1) Navigator.push 현재 화면위에 새로운 화면(페이지)를 쌓아서 이동하는 방법 페이지 이동 = push(쌓기), 뒤로가기 = pop(꺼내기) 강의를 보면서 따라하는데 시간이 꽤 오래 걸린다. 잘 모르겠지만 일단 따라하면서 새로운 용어와 개념들을 찾아보고 있다. 따라가며 에러가 났던 것 중 하나는, 함수는 클래스 밖에 있어야 한다는 것이...

내배캠18일차_child,children

이미지
  1. Flutter 입문 우선은 강의를 보며 코드를 똑같이 작성해보면서 따라가는 중이다. 역시나 새로운 용어와 개념이 많아서 낯설게 느껴진다. 그중 가장 많이 보이는 child와 children의 차이가 궁금해졌다. child : 하나의 위젯을 넣을 때 children : 여러개의 위젯을 넣을 때 (리스트 형식) 사용한다는 것, 아래 표와 코드 예시를 참고하자. <child/children 의미, 타입, 예시 표> <코드 예시> 그렇다면,  child 안에 children이 있기도 하고 children 안에 child가 있기도 하던데, 그 포함관계가 궁금해졌다. 결론은,  child 안에 children이 있는 위젯 하나를 넣는 것은 가능하고,  children 안에 child가 있는 위젯 넣는 것은 가능하다. 하지만 child는 단일 위젯만 받기 때문에, children 자체를 받을 수 없다. children 자체가 리스트 형태이므로 즉, 복수위젯이므로. 반대의 경우도 마찬가지. children: 은 리스트 형태만 받는다. 즉 child 형태만 넣는 것은 불가하다. 그렇다면 어떤 위젯은   child를 사용하고, children을 사용하는가? tip. "레이아웃(배치)" 계열 = children (Row, Column, Center 등) "꾸미기/감싸기" 계열 = child (Container, Padding, Stack 등) 아래 표를 참고하자. 2. Bootstrapper 외부의 큰 도움 없이 자신의 역량과 가진 자원만으로 사업을 시작하고 성장시키는 사람. Bootstrapper 부트스트래퍼의 대표적인 인물. App SUMO 창업자, 유튜버, 작가인 노아 케이건. https://maily.so/leanx/posts/knrj25vwzld 1. 48시간 안에 3명의 고객에게 돈을 받아보라.  실행가능한 가장 빠른 기간, 목표 고객 수를 정해서 아이디어를 실행에 옮기자. ...

내배캠17일차_Flutter_레시피 앱

이미지
 1. Flutter 입문 :  레시피 앱 만들기 Main.dart 폰트변경: fonts 파일에 폰트파일을 옮긴 후, yaml 파일 수정, fontFamily : NotoSansKR 작성 AppBar - actions : 돋보기 아이콘, 하트 아이콘 만들기 SizedBox로  여백만들기  ListView 가장 일반적으로 사용되는 스크롤 위젯, children 내에 위젯을 배치 세로축 기본, 가로축 스크롤도 가능(scrollDirection 속성) recipe_title.dart padding EdgeInset : 위젯 내부에 여백을 넣기 <참고> EdgeInset. all(16)  : 모든방향에 동일한 여백 EdgeInsets. symmetric(horizontal : 20, vertical: 10) : 좌우, 위아래 각각 설정 EdgeInset. only(left: 10, top: 20) : 특정 방향만 설정 recipe_menu.dart MainAxisAlignment.center : 가운데 정렬 MainAxisAlignment. start 왼쪽, 위 정렬 MainAxisAlignment. end 오른쪽, 아래 정렬 recipe_list_item.dart 생성자 RecipeListItem AspectRatio 정해진 width에 맞춰서 가로세로 비율을 적용 주어진 크기(부모위젯)에 의해 width 정함. CilpRRect 둥근 사각형을 사용하여 자식을 자르는 위젯,  이미지 모서리 자를 때 사용 borderRadius: BorderRadius.circular(20), 2. 5Whys 문제 상황을 직면했을 때, 문제의 진짜 원인을 찾기 위해 꼬리에 꼬리를 물고 질문하기. 결과는 다양할 수 있음. 중요한 것은 질문과 질문 사이의 인과관계가 명확해야 한다. ex. 대한민국 성인의 문해력 점수가 OECD 평균 이하이다. 1. 왜 ? : 대한민국 성인들의 독서량이 낮기 때문이다. 2. 왜? : 책...

내배캠16일차_Flutter_스토어 앱 만들기

이미지
1. Flutter 입문 StatelessWidget을 상속받는 Myapp 클래스 ** build : 위젯이 화면에 어떻게 그려질지를 정의함  build(BuildContext context) Column : 위젯을 세로로 배치 SafeArea : Status(상태바) 영역에 padding(여백)을 넣어주는 위젯        Row 위젯 : 위젯들을 가로로 배치하는 위젯 Spacer 위젯 : Row 나 Column에서 위젯 사이의 간격을 조정, 남은 모든 공간 차지 Padding 위젯 : 자식 위젯 주변에 여백을 주는 위젯 Image 위젯  Image.network('http://링크주소') :인터넷 이미지 바로 사용 Image.asset('assets/image.png') : 프로젝트에 추가해준 이미지 사용 Image.file('디바이스_내_파일경로')) fit 속성 BoxFit.cover : 원본사진 가로 세로 비율 유지한 채로 지정한 영역에 사진을 맞춤. Expanded 위젯  Row, Column 내 남은 공간을 확장하여 공간을 채울 수 있도록 하는 위젯 2. 인사이트 아티클 2번 엑싯한 창업가의 조언 : MVP에 대한 개념을 바꾸자 https://eopla.net/magazines/35106# MVP는 기본값이다.  FMBM - Fastest Minimally Monetized Business Model 창업 성공은 현금 흐름을 얼마나 빨리 만들어 내는지에 달려있다. 자본이 아닌, 시장으로부터 신뢰를 얻어라. MVP가 "시장 반응을 보는 단계" 였다면, FMBM은 "시장이 실제로 돈을 내는지 확인하는 단계"  1) 누구보다 빠르게 움직여라. 2) 완성도보다 거래를 우선하라. 3) 제품이 아닌 구조를 팔아라. 다른 사람의 지갑을 열게 할 만한 고통(문제)은 무엇일까? 그것을 해결해줌과 동시에 수익을 낼 수 있는 구조를 고민하고 있다. 가장 가깝게는 나와 가족이 겪는 고...

내배캠15일차_map() reduce() fold()

이미지
1. dart 함수형 프로그래밍 복습 1] map() map()을 사용해서 새로운 리스트를 만들어내기. 파라미터 'x'를 사용하여 멤버 이름 앞에 블랙핑크를 앞에 붙여준  newBlackPink, newBlackPink2를 만들었다.  newBlackPink, newBlackPink2는 표현은 같지만 서로 다른 리스트임을 알 수 있다. 연속된 숫자를 split(' ')으로 분리한 뒤, x.jpg형태로 map() 적용. toList()를 통해 리스트 형태로 도출한다. 컬렉션 Map에서 key값과 value값 따로 map()을 통해 리스트 형태로 만들기  컬렉션 Set (중복허용)도 map()을 통해 리스트화, 다시 toSet()으로 만들어준 것. 2] reduce() reduce()를 통해 리스트 numbers 내의 숫자의 합계 구하기. 최고 점수 학생을 구하는 과정. 심화과제 도전문제 기능 중 하나. 1) 합계  var total = numbers.reduce((a,b) => a+b); 2) 최댓값 var max = numbers.reduce((a,b) => a > b ? a : b var topStudent = student.reduce((a,b) => a['score'] > b['score'] ? a : b (최고점 학생찾기) 3) 최솟값 var min = numbers.reduce((a,b) =>a < b ? a : b 4) 곱셈 누적 var product = numbers.reduce((a,b) => a * b 5) 문자열 합치기 var text = words.reduce((a,b) => '$a $b'); 3] fold() fold()는 매개변수 2개 필요, 첫번째 매개변수는 초기값을 할당한다.  int 초기값 0, String 초기값 ' '  final count(int)처럼 처음 컬렉션 타입(String)과 다른 타입...

내배캠 [3주차 WIL]

WIL : Weekly I Learned 1. 하루에 들어가는 정보량이 너무 많아서 TIL을 매일 적는게 부담이 되었던 것 같다. 이 기록이 나의 스토리텔링의 재료가 되어야 할 텐데, 그저 정보를 옮겨담기에 급급했고, 그마저도 방대한 양이었기에 날것 그대로의 메모장을 따로 보관하게 되었는데, 그 메모장의 파편들을 담아 꾸역꾸역 작성한 것을 생각하니 스스로 조금 부끄러워졌다. 우수 TIL 사례를 이전에 보았을 땐, 크게 와닿지 않았는데 함께 수강하는 분들의 사례를 보니, 그동안 낙서장 수준으로 정보의 파편들만 저장하고 있었다는 것을 문득 깨달았다. 앞으로는 내가 우러나서 작성하고 싶은대로, 내가 배운 것들을 자유롭게 기록하는 공간으로 블로그를 잘 활용해야겠다. 😊 2. Dart 기초강의는 어찌되었든 완강을 했다.  여전히 또렷하지는 않지만 이제 코드를 보는 눈이 조금은 생겼다고 느낀다. 이번주 내내 하루에 한번씩은 튜터님께 찾아가 질문을 드리기도 하고, 매니저님의 명쾌한 설명과 추천 강의를 통해서도 어려움이 많이 해소되었다. 마음같아선 연휴에 강의 진도를 맞추고 문제를 풀면서 복습을 하고 싶은데... 공휴일은 애기랑 같이 있기도 하고 가족들과 함께 하는 시간이라 쉽진 않을 것 같다.😭 3. 연휴가 끝나고 돌아오면 심화과제 제출을 해야하고, 새로 결성된 팀에서 아이디어 논의를 할 예정이다. Dart 스터디 모임도 이번주부터 시작하게 되었는데  혼자 스터디하는 것보다 훨씬 훨씬 집중도도 높고,  다른 분들이 고민하는 포인트나 확장될 수 있는 코드들을 함께 나눌 수 있어서 큰 도움이 되고 있다. 👍 4. 팀원 한분이 해외일정으로 이번주에 함께 아이디어 논의를 하지 못했는데, 다른 팀원 한분과 이야기를 나누면서 공통관심사와 도메인에 얽매이지 않고 pain point를 찾아보자 고 했다. 살짝 얽매인 느낌이 없지 않아 있었는데 얘기해주셔서 고마웠다. (염두할 것 : 비용은 최소화하되, 수익모델은 명확하게 하는 방향으로) 연휴동안 그동안 안...

내일배움캠프_14일차_251002

이미지
1. 인사이트 클럽 인터뷰 요청 시 보낼 메시지 구성, 콜드메일 보낼 때도 참고하자. 제 소개를 하고, 공감할 수 있는 시절에 대해 언급합니다. 새 프로젝트를 시작한다고 말하지만, 너무 자세하게 설명하지는 않아요. 20분 정도의 전화 통화나 영상 통화를 요청합니다 이런건 물어보지 말라. 이 제품을 사용하실 것 같나요? : 아마 필요하다고 할 거예요. 의미 없는 질문입니다. 어떤 기능이 추가되면 좋을 것 같나요? : 그들의 임무는 문제를 알려주는 것이지 해결책을 알려주는 게 아닙니다. 그들은 우리 제품을 만들어 줄 사람들이 아니에요. “네, 아니요” 로 끝나는 질문들 동시에 두개를 물어보는 질문들 01. 링크드인으로 유저 인터뷰 요청하는 걸 겁내지 마세요. 02. 설문조사 보다는 대화할 수 있는 인터뷰를 요청하세요. 03. 인터뷰에서 여러분이 생각한 아이디어를 이야기하지 마세요. 04. 상대방이 일하면서 겪고 있는 문제점을 들을 수 있는 질문만 하세요. 05. 어렵다면 한가지 질문만 기억하세요. "요즘 X를 어떻게 하는지 말해 주세요" 2. Dart 프로그래밍 기초 비동기 프로그래밍 작업이 완료될 때 까지 기다리지 않고, 미래의 특정 시점에 값을 반환. 결과 값이 나올때 까지 다른 모든 연산을 멈추는 것은 아님. [예시] Future <void> introduce(String name) async {   print('$name의 자기소개 시작!');      await Future.delayed(Duration(seconds:2),() {     print('안녕? 나는 $name이야');   });      print('$name의 자기소개 끝!'); } void main() async {      await introduce('홍길동');   await introduce('다람쥐');    } 홍길동...