![[Flutter][Widget] Text 위젯](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbgBL9w%2FbtsFUZUhITI%2FAAAAAAAAAAAAAAAAAAAAAKYm5afHWA3A_A0edB8cjeCv2g7l2P-o9WP4T3mbKre-%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DKQJ939XZ%252B%252B9%252FjQP7%252BrNUbHDi6wk%253D)
개요 글자를 보여준다는 것은 프로그램의 가장 기초적인 부분이다. Flutter에서는 Text 라는 위젯을 통해 이를 보여준다. Text 외의 다른 위젯도 있지만, 이번 포스트에서는 가장 기초적인 위젯인 Text위젯을 볼 것이다. Text란? `Text`는 이름 그대로 문자를 보여주는 위젯으로 원하는 문자열을 화면에 그려준다. Text 사용예시 Text("안녕하세요 노근입니다.") `Text` 위젯은 위와 같이 간단하게 사용할 수 있다. `Text("원하는 문자열")`의 형태로 가볍게 사용할 수 있다. ▼ style 프로퍼티 (TextStyle) "근데 폰트 크기가 더 크거나, 색이 달랐으면 좋겠는데?" 그럴 때는 `style` 프로퍼티에 `TextStyle` 에 필요한 프로퍼티들을 채운뒤 넣어주면 된다...

문제 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수로 되어 있다면 이 종이를 그대로 사용한다. (1)이 아닌 경우에는 종이를 같은 크기의 종이 9개로 자르고, 각각의 잘린 종이에 대해서 (1)의 과정을 반복한다. 이와 같이 종이를 잘랐을 때, -1로만 채워진 종이의 개수, 0으로만 채워진 종이의 개수, 1로만 채워진 종이의 개수를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 3^7, N은 3^k 꼴)이 주어진다. 다음 N개의 줄에는 N개의 정수로 행렬이 주어진다. 출력 첫째 줄에 -1로만 채워진 종이의 개수를, 둘째 줄에 0으로..

저번 포스트인 노션의 핵심 데이터베이스 에서는 데이터베이스에 대해 전체적으로 훑어봤다. 어떤 기능이 있고, 어떻게 사용하는지 정도를 봤는데 아직 본격적으로 사용하기에는 무리가 있지 않을까하고 생각했다. 사실 기초적으로, 그저 데이터를 담기 위해 데이터베이스를 사용하는 거라면 속성에 대해 깊이 알 필요는 없다. 어쩌면 데이터베이스라는 것 자체도 그냥 보이는 대로 집어다가 사용하면 될 수 도 있다. 그런데 데이터베이스가 심화되고, 한 데이터베이스에 담는 내용들이 많아지면 조금 곤란한 상황이 발생할 수도 있다. 마치 코드처럼 어설픈 설계로 규모를 키우면 코드 전체가 꼬여버리는 것 처럼 말이다. 그래서 이번에는 직관적인 속성보다는 약간 추상적이고 복잡한 속성들에 대해 배워보겠다. 관계형 첫번째로 볼 속성은 관계..

문제 은진이는 지금 (X, Y)에 있고, (0, 0)에 있는 집으로 가능한 빨리 가려고 한다. 이동할 수 있는 방법은 다음 두 가지이다. 첫 번째 방법은 걷는것이다. 걸을 때는 1초에 1만큼 움직인다. 두 번째 방법은 점프하는 것이다. 점프를 하게 되면, T초에 D만큼 움직인다. 점프는 일직선으로만 할 수 있고, 정확하게 D칸만 움직일 수 있다. 위의 두 가지 방법을 이용해서 집에 돌아오는데 걸리는 시간의 최솟값을 구하는 프로그램을 작성하시오. 꼭 한 가지 방법만 사용해야 되는것이 아니고, 두 가지 방법을 적절히 조합해서 가장 빠른 시간을 구하는 것이다. 입력 첫째 줄에 네 정수 X, Y, D, T가 주어진다. 출력 첫째 줄에 집에 돌아오는데 걸리는 시간의 최솟값을 출력한다. 절대/상대 오차는 10^-9..

문제 방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다. 입력 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. 셋째 줄부터 E개의 줄에 걸쳐 각 간선을 나타내는 세 개의 정수 (u, v, w)가 순서대로 주어진다. 이는 u에서 v로 가는 가중치 w인 간선이 존재한다는 뜻이다. u와 v는 서로 다르며 w는 10 이하의 자연수이다. 서로 다른 두 정점 사이에 여러 개의 간선이 존재할 수도 있음에 유의한다. 출력 첫째 줄부터 V개의 줄..

암호화 대칭적 암호화(Symmetric Encryption) 암호화에 필요한 키가 복호화 키로도 사용이 되는 암호화 방식을 말한다. 키가 하나만 있으면 되기에 간편한 방법이지만 키를 건네줄 때 부담이 생기게 된다. 암호화된 내용도 중간에서 가로챌 수 있는데 키라고 중간에 못 가로챌 일은 또 없다. 이렇게 하나의 키로 암호화와 복호화를 모두 하게 되면 키를 교환하는데에 부담이 생기게 된다. 공개키 암호화(Public-Key Encryption) 그래서 이런 부담을 줄이고자 나온게 공개키 암호화다. 각 사용자들은 모든 사람에게 알려진 공개 암호화 키와 자신만 알고 있는 비공개 복호화 키를 하나씩 갖고 있다. 사용자가 아마존에게 암호화된 주문 정보를 보내는 것을 예시로 보자.▼ 아마존은 암호화를 해주는 pub..
![[노션 강의] 4. 노션의 핵심 데이터 베이스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FuR6MP%2FbtsFEXWzdaq%2FAAAAAAAAAAAAAAAAAAAAAJPAcO_zQWVcxklO3O4IqJq1r_C4teGRo6iUWGOySbvM%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DTzNFsOw9Ctm7KAtKlKEi2ofJBIY%253D)
앞의 포스트에서 봤던 노션의 구조, 블록은 사실 다른 메모 어플리케이션에서도 지원을 하는 내용들다. 노션이 조금 더 완성도 있게, 더 많이 지원해주는 부분이 있지만, 사실 이 블록들보다 노션이 힘을 쓰고 있는 부분은 데이터베이스다. "데이터베이스? 그거 백엔드에서 다루는 거잖아." 데이터베이스라고 하면 개발자의 전유물같은 느낌으로 받아들여지는데, 최근에는 개발자로 많은 분야의 사람들이 활동하게 되면서 그런 감각이 조금 사라진 것 같다. 사실 데이터베이스라는 것 자체가 개발자가 많이 쓰지만 개발자를 위한 것 보다는 데이터를 효율적으로 다루기 위해 나온 것이라고 보는게 더 맞을 거다. 그것을 개발자가 사용하는 것 뿐이다. 그런 감각, 그런 개념으로 접근하게 되면 노션에서 데이터베이스를 사용하는 것은 문서 ..
![[면접 질문] Flutter 기본 질문](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbMai46%2FbtsFxWjA2Vm%2FAAAAAAAAAAAAAAAAAAAAADmJYUCRwpVb6mU6ZsGKUlvoLtc6FMqxobCzcSs10N-T%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DoFDbBRixR%252FcAMaIxBZ7j5cSuCn0%253D)
Flutter란?Flutter는 구글에서 개발한 모바일 어플리케이션 개발용 오픈소스 프레임워크다. Dart언어로 작성되었으며 안드로이드 및 iOS 모바일 앱 개발 뿐만 아니라 웹, 데스크톱 및 IoT 기기 등 다양한 플랫폼에서도 실행이 가능하다. Flutter는 빠른 개발 및 확장성을 지원하고, 다양한 애니메이션 및 사용자 인터페이스 요소를 포함하고 있다. Flutter와 타 모바일 개발 플랫폼들과의 차이점React Native와의 차이점Flutter의 높은 성능Flutter의 Dart언어는 네이티브 코드로 컴파일 될 수 있다. 허나 React Native는 네이티브 모듈과 통신하기 위해 JavaScript 브리지를 사용하기 때문에 성능이 Flutter에 비해 약간 낮을 수 있다. 응용 프로그램 크기F..