📖 오늘의 학습개발을 하던 도중, Html을 렌더링을 해야하는 상황이 생겼다. 이 부분은 flutter_widget_from_html이라는 패키지를 이용해서 큰 힘을 들이지 않고 구현을 했으나, 문제가 하나 있었다. 바로 CustomScrollView의 Lazy Loading이다. Lazy Loading은 화면에 보이는 영역에 가까운 위젯만 동적으로 생성하고, 화면에서 벗어난 위젯은 자동으로 폐기시킨다. 문제는 html 패키지가 html을 파싱 하고 태그에 맞게 위젯으로 변환하여 보여주는데, 거기에 있는 사진들도 새롭게 렌더링을 한다는 것이다. 사진이 몇 개나 있을 지, 그리고 사진 크기가 어떻게 될 지는 해당 패키지 입장에서 전혀 모르기 때문에, 높이는 전부 렌더링 한 뒤에 정확한 값을 갖게 된다. ..
📖 오늘의 학습 오늘은 RestAPI 명명법에 대해 생각을 해봤다. 회사에서 백엔드 팀과 논의하는 과정에서 RestAPI URL은 어떻게 할 지가 안건으로 나왔다. 사실 그동안에는 프론트엔드 입장에서 RestAPI 명세는 헷갈리지만 않으면 되는 문제라고 생각을 했었는데, 오늘 다시 생각해보니 그러면 어떻게 해야 안 헷갈리게 할 수 있을까 하는 생각이 들었다. 뭐든 그렇겠지만 각자의 입장에서 편한 부분이 존재한다. 백엔드는 백엔드의 관점에서 편한 부분이 있고, 프론트엔드는 프론트엔드의 관점에서 편한 부분이 존재한다. 너무 한쪽이 편한대로만 하는 것도 문제인데, 그것보다 더 큰 문제는 서로서로 괜찮다고 상대의 요구만 들어주는 것이다. 일종의 배려라고 할 수 있지만, 이게 반복된다는 것은 주관이 없다는 것..
📖 오늘의 학습지금까지의 개발: View 레벨의 상태관리 지금까지의 Flutter 개발을 할 때에는 View 단위로 개발을 하곤 했었다. 상태관리를 View 레벨로 정의를 하여, 내부의 위젯들에 변화가 생기면 전체를 리로드 하는 방식으로 개발을 했다. 이게 권장 사항은 전혀 아니지만, 나름의 장점이 존재한다. View 레벨 상태관리의 장점 View 레벨로 상태관리를 할 때의 장점은 개발이 굉장히 빠르고 간편해진다는 것이다. 그도 그럴 것이, 위젯 각각이 상태를 가지는 것이 아니라 페이지 하나가 상태를 가지고 그 상태를 해당 페이지 내에서 공유를 하는 방식이기 때문이다. 중앙 집중 방식이기에 이해도 쉽고 코드 짜는 것도 간편해진다. 일종의 MVC 패턴의 성격을 보인다. View 레벨 상태관리의 단점 그러..
📖 오늘의 학습 국제화나 다크모드, 라이트모드 적용은 프로젝트가 시작할 당시 모두 세팅을 해두어서 이제부터는 피쳐 개발을 진행하면 된다. 그래서 오늘은 간단하게 회원가입 페이지를 마무리했다. 회원가입 페이지의 마지막에 있는 이 체크 이미지에 대한 명세에는 애니메이션이 없었다. 그런데 그냥 이렇게만 있으면 상당히 밋밋하기도 하고 디자이너도 여기에 큰 의도를 담지 않았기에 내 마음대로 애니메이션을 넣기로 했다. ▼ 가운데의 이미지는 그대로 두고 주변을 도는 점들이 확 퍼지면서 주위를 천천히 돌게 했으면 하는게 내가 원하는 애니메이션이다. Flutter에는 두 가지 종류의 애니메이션이 있는데 하나는 암묵적, 다른 하나는 명시적이다. 지금 이 애니메이션 같은 경우에는 움직임의 경로에 따른 움직임이 나타나..
🚀 오늘의 문제풀이 글은 여기에 있습니다. ▼ 백준 9655번 돌 게임 - C++문제돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사noguen.com 📖 오늘의 학습기초적인 다이나믹 프로그래밍 문제라고 되어있지만, 사실상 수학 문제다.그것도 필승 전략이 나와있는 '베스킨라빈스 31 게임'과 거의 동일하다. ▼ 위와 같이 정리해볼 수 있다.그러므로 짝수면 CY를, 홀수면 SK를 출력하면 되는 문제였다. 🤔 오늘의 회고오늘은 오랜만에 사람들을 만나 이런저런 얘기를 하며 진로 얘기를 했다.사실 진로 얘기가 많진 않았는데 그게 가장 기억에 남은거 같다...내가 ..
문제천수는 여러 종류의 주사위를 가지고 쌓기 놀이를 하고 있다. 주사위의 모양은 모두 크기가 같은 정육면체이며 각 면에는 1부터 6까지의 숫자가 하나씩 적혀있다. 그러나 보통 주사위처럼 마주 보는 면에 적혀진 숫자의 합이 반드시 7이 되는 것은 아니다.주사위 쌓기 놀이는 아래에서부터 1번 주사위, 2번 주사위, 3번 주사위, … 의 순서로 쌓는 것이다. 쌓을 때 다음과 같은 규칙을 지켜야 한다: 서로 붙어 있는 두 개의 주사위에서 아래에 있는 주사위의 윗면에 적혀있는 숫자는 위에 있는 주사위의 아랫면에 적혀있는 숫자와 같아야 한다. 다시 말해서, 1번 주사위 윗면의 숫자는 2번 주사위 아랫면의 숫자와 같고, 2번 주사위 윗면의 숫자는 3번 주사위 아랫면의 숫자와 같아야 한다. 단, 1번 주사위는 마음대로..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이완전 탐색과 BFS가 섞인 문제다.오늘도 피곤 이슈로... 대략적인 풀이만 올리고 다음에 몰아서 풀이를 올릴 예정이다. 우선 n이 작고, 제공되는 간선의 수도 100 보다 작기 때문에 모든 경우의 수를 다 해볼 수 있다.그러면 첫번째부터 마지막 간선까지 선을 하나씩 제거해나가며 BFS를 돌려보면 된다. 문제 조건이 하나만 끊어도 둘로 나눠지게 설계되어있기에 모든 간선을 한 번씩 끊어보며 확인해보면 된다. 그런데 처음에는 두 번 다 돌려야 하나? 했는데 양 쪽 구간을 모두 확인한다고 두번 돌릴 필요는 없다.n이 정해져있기 때문에 한쪽이 k개라면,..
문제상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 DFS로 하는 완전탐색자세한 풀이는 나중에... C++ 코드#include #include using namespace std;int answer = 0;bool V[8] = {0};void dfs(int C, int K, vector> &dungeons) { if (C > answer) answer = C; for (int i = 0; i > dungeons) { dfs(0, k, dungeons); return answer;}
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이우선 수식을 세워 확인을 해봤다. $2x + 2(y - 2) = brown$$2x + 2y - 4 = brown$ $(x - 2)(y - 2) = yellow$$xy - 2x - 2y + 4 = yellow$ $소거법...$$xy = brown + yellow$ 간단한 수식을 세워보면 $xy = brown + yellow$가 나오게 된다.하지만 해당 수식을 만족하는 $x$와 $y$값이 무조건 맞는 것은 아니다. 이는 $x$와 $y$에 대한 수식일 뿐, $brown$과 $yellow$에 대한 수식은 아니기 때문이다.따라서 $x$와 $y$값이 나오면..