NOGUEN 블로그
NOGUEN 블로그
그외
2024.06.02 02:26
Flutter 카테고리의 최신글
[Flutter][Widget] CustomPaint로 나만의 위젯 만들기
[Flutter][Widget] CustomPaint로 나만의 위젯 만들기
Widget
2024.04.08 20:35
개요 Flutter에서는 상당히 많은 기본 위젯들을 제공해준다. Container, Column, Row, Stack, ListView 등등... 많은 기본 위젯들을 제공해준다. 기본 위젯들을 잘 조합하여 새로운 위젯을 만들 수 있지만, 때로는 기본 위젯의 조합으로도 만들 수 없는 위젯들을 만들어야할 때가 있다. ▼ 이럴 때는 우리가 따로 정의하여 사용을 해야하는데, 이를 도와주는 것이 `CustomPaint`다. CustomPaint를 통해 직접 위젯의 모양을 정의하여 새로운 형태의 위젯을 만들 수 있다. 들어가기 앞서 : 기본적인 좌표계에 대해서 들어가기 앞서 좌표계에 대해 알아야 한다. 이는 `CustomPaint`에서만 사용되는 것은 아니고 앱 전반적으로 다 사용되는 내용이다. 우리가 배웠던 좌표..
[Flutter] 패키지 사용법
[Flutter] 패키지 사용법
방법론, 이론
2024.04.01 13:39
개요 개발을 하다보면 기본적으로 제공하는 함수나 기능들 외의 기능들이 필요할 때가 많다. 스스로, 혹은 개발 팀에서 이를 직접 구현할 수 있고, 그러기로 결정이 났다면 다행이지만, 그럴 여유가 없어서 그 기능을 구현할 수 없을 때가 있다. 그럴 때는 보통 라이브러리를 받아와서 해결한다. ▼ Flutter는 이를 패키지라고 부르며, 빠른 개발을 위해서라면 패키지를 사용하는 것은 필수다. 패키지 혹은 플러그인이라고도 부르는데 엄연히 따지자면 패키지가 조금 더 큰 개념이다. 굳이 구별을 하자면 Dart코드로만 이루어진 것을 패키지라고 하고, JAVA, Swift, Kotlin과 같은 다른 언어를 포함하고 있는 것을 플러그인이라고 한다. 어쨌든 이번 포스트에서는 패키지 사용법에 대해 알아볼 것이다. 패키지 검색..
[Flutter][Widget] Row, Column 위젯
[Flutter][Widget] Row, Column 위젯
Widget
2024.03.24 18:57
개요 Flutter에서 하나의 위젯을 배치하는 것은 굉장히 쉽다. 오버라이드된 `build` 메소드의 `return`에 위젯 클래스를 반환해주면 위젯을 쉽게 렌더링할 수 있다. (물론 그 과정은 굉장히 추상적이고 복잡하겠지만...) "그렇다면 여러 개의 위젯을 배치하고 싶을 때는 어떻게 해야하지?" `return` 에는 하나의 위젯만 반환시킬 수 있고, 반환 타입마저도 `List`이 아니라서 여러 개의 위젯을 반환하는 것은 사실상 불가능하다. "그럼 뭐 불가능하다는거야 뭐야?" 불가능했다면 Flutter는 이 세상에 나오지 못햇을 것이다... 당연히 가능하며, 이를 도와주는 것은 Multichild-Layout Widget들이다. Multichild-Layout Widget에는 `Row`, `Column..
[Flutter][Widget] Container 위젯 그리고 Container의 크기 설정
[Flutter][Widget] Container 위젯 그리고 Container의 크기 설정
Widget
2024.03.20 22:55
개요 특정 영역에 위젯을 배치할 때 그냥 위젯을 배치하는 것이 아니라 어느 영역을 설정한 후 위젯을 배치한다. 그럴 때 Flutter에서는 단일 위젯을 배치할 때 `Container` 위젯과 `SizedBox` 위젯을 사용하여 그 영역을 설정하곤 한다. 이번 포스트에서는 `Container` 위젯에 대해 알아볼 것이다. Container Container란? `Container`의 의미는 용기, 담을 수 있는 무언가라는 의미로 정석적인 의미와 상당히 사용하는게 비슷한 위젯이다. UI요소를 감싸고, 다양한 형태를 취할 수 있는 위젯이다. 위의 설명은 `SizedBox`와 굉장히 비슷한데, `SizedBox`와의 결정적인 차이점은 `Container`위젯은 그 자체를 꾸밀 수 있다는 것이다. 사용예시 Con..
[Flutter][Widget] Text 위젯
[Flutter][Widget] Text 위젯
Widget
2024.03.19 17:46
개요 글자를 보여준다는 것은 프로그램의 가장 기초적인 부분이다. Flutter에서는 Text 라는 위젯을 통해 이를 보여준다. Text 외의 다른 위젯도 있지만, 이번 포스트에서는 가장 기초적인 위젯인 Text위젯을 볼 것이다. Text란? `Text`는 이름 그대로 문자를 보여주는 위젯으로 원하는 문자열을 화면에 그려준다. Text 사용예시 Text("안녕하세요 노근입니다.") `Text` 위젯은 위와 같이 간단하게 사용할 수 있다. `Text("원하는 문자열")`의 형태로 가볍게 사용할 수 있다. ▼ style 프로퍼티 (TextStyle) "근데 폰트 크기가 더 크거나, 색이 달랐으면 좋겠는데?" 그럴 때는 `style` 프로퍼티에 `TextStyle` 에 필요한 프로퍼티들을 채운뒤 넣어주면 된다...
Develop 카테고리의 최신 글
[Android] Compose BOM
[Android] Compose BOM
AndroidOS
2024.06.25 20:26
개요Compose로 안드로이드 앱 개발을 할 때 한 가지 불편한 점이 있었다.바로 아래와 같이 앱 모듈 `build.gradle.kts`에 라이브러리를 추가할 때, 버전을 따로 입력해줘야한다는 것이었다. ▼ 매번 버전을 입력해서 추가를 하니까 최신 버전이 나올 때 마다 버전을 입력해줘야하고, 내가 현재 최신버전을 사용하고 있는건지 의문이 들기도 했다.물론 항상 최신버전을 유지하는 것이 좋지 않을 수도 있지만, 웬만하면 이전 버전의 버그가 고쳐진 버전이 배포되기 때문에 특별한 이유나 해당 라이브러리의 세세한 부분까지 알고 있는게 아니라면 최신버전을 사용하는게 좋지 않나 싶다. '자동으로 업데이트가 될 법 한데...' 라는 생각을 하던 도중 Compose BOM이라는 것이 있다길래 이에 대해 알아보게 됐다...
[Android] Dependency Injection (DI)
[Android] Dependency Injection (DI)
AndroidOS
2024.06.14 12:38
개요안드로이드에서 너무나도 많이 보이는 DI안드로이드 개발 공부를 하다보면 DI라는 용어는 빈번하게 등장한다.소프트웨어 공학에서 나온 용어라서 안드로이드 외의 다른 개발 프레임워크들에서도 많이 사용하기에 엄청나게 생소한 용어는 아니지만, 안드로이드에서는 이를 관리해주는 Hilt라는 라이브러리가 있어 굉장히 많이 거론되는 듯 하다. ▼ StateHoisting을 배우고, State를 Hoisting해줄 ViewModel을 인식하고, ViewModel을 UI의 어느 부분에 저장을 할 지 알아보던 중 DI와 Hilt에 대한 선행 지식이 없으면 안되었기에 더 자세하게 알아보게 되었다.   Dependency InjectionDependency Injection이란Dependency Injection, 줄여서 D..
[Android][Compose] State Hoisting
[Android][Compose] State Hoisting
AndroidOS
2024.06.13 19:43
개요Compose의 Stateless선언형 UI인 Compose의 장점은 Stateless함에 있다.UI와 State의 상호 의존성을 끊을 수 있다면, UI요소를 재사용하여 더 효율적으로 코드를 작성할 수 있다.또한 UI를 개별적으로 테스트 할 수 있어, 유닛 테스트에 용이하다. 요약하자면 Compose Stateless의 장점은 아래의 두 개가 된다.UI 재사용성UI 테스트로 Unit Test 하지만 State와 종속되는 요소도 있다그러나 Stateless를 유지하고 싶지만, State를 UI에 저장을 해야만 할 때가 있다.Compose 요소 자체에 State가 저장되게 설계가 되어 나온 것으로 `TextField`가 있다. 아래와 같은 식으로 `remember` 키워드를 이용하여 상태를 저장해줘야한다..
[Android][Compose] Compose의 레이아웃
[Android][Compose] Compose의 레이아웃
AndroidOS
2024.06.13 19:14
개요 레이아웃하나의 컴포저블 요소에 다른 요소들이 들어갈 수 있는 것이고, 그렇게 들어간 요소들은 아무런 규칙없이 들어가는 것이 아니라 레이아웃이라는 규칙을 따라 들어가게 된다. 아래의 화면도 아무런 규칙이 없이 배치가 된 것 처럼 보이지만, 레이아웃 규칙에 따라 배치가 된 것이다. ▼  Compose에서 제공하는 레이아웃Compose의 레이아웃으로는 크게 Column, Row, Box의 3가지가 있다. ▼ 각각 모두 이름 그대로의 기능을 하기에 알아보기가 쉽다.셋 다 컴포저블이기에 내부에 컴포저블 요소들을 배치할 수 있다.그러나 다른 컴포저블들과는 다른 점은 여러 개의 컴포저블들을 배치할 수 있다는 것이다.또한 이들 모두 컴포저블이기에 서로가 서로에 중첩되어 들어갈 수 있다. 이번 포스트에서는 이 3가..
[Android][Compose] JetPackCompose란? 그리고 Compose의 구성
[Android][Compose] JetPackCompose란? 그리고 Compose의 구성
AndroidOS
2024.06.12 01:36
개요JetPack Compose란?JetPack Compose는 네이티브 UI를 빌드하기 위한 Android의 최신 권장 도구 키트이다. ▼  JetPack Compose를 사용하는 이유기존의 빈번한 작업 컨텍스트 전환 해결XML 기반의 UI를 개발하려면 XML Layout을 정의한 후, 코드 레벨(Java, Kotlin, Swift)에서 View를 연결하여 UI를 관리한다.XML과 코드 구조를 각각 연동시켜야하기 때문에 빈번한 작업 컨텍스트 전환이 요구된다. JetPack Compose는 이러한 불편함을 해결해 줄 수 있으며, 직관적이고 단순하게 UI를 구현할 수 있게 해준다. 개념 이해와 빠른 개발기본적으로 JetPack Compose를 사용하면 XML과 Kotlin 코드를 따로 작성하지 않고 Kot..
스펙업! 카테고리의 최신글
신입 개발자 포트폴리오 작성 - 2 (프로젝트 작성)
신입 개발자 포트폴리오 작성 - 2 (프로젝트 작성)
스펙 업!
2024.06.08 12:30
개요프로필에 이어서... 신입 개발자 포트폴리오 작성 - 1 (프로필 작성)개요포트폴리오를 작성하게 된 계기산업기능요원을 준비하기 위해 이력서와 이것저것 취업에 필요한 것들을 준비를 하고 있다. 처음에는 점핏이나 사람인과 같은 플랫폼에서 제공하는 이력서noguen.com 전에 신입 개발자 포트폴리오에서 프로필 부분을 작성했던 경험을 글로 썼었고, 그 글에 이어 핵심적인 부분인 프로젝트에 대해서 작성했던 경험을 글로 작성하고자 한다.아무래도 프로필도 중요하지만, 면접관과 인사담당자는 내가 했던 프로젝트에 대해 관심을 더 가질 것이기에 프로젝트 설명에 힘을 좀 더 쓰는 것이 좋을 것이다. 잡설은 그만 두고 본론으로 들어가보자.  작성할 프로젝트에 대해넣을 프로젝트를 추리자다 보여주는건 독이 될 수 있다이전에..
신입 개발자 포트폴리오 작성 - 1 (프로필 작성)
신입 개발자 포트폴리오 작성 - 1 (프로필 작성)
스펙 업!
2024.06.02 01:46
개요포트폴리오를 작성하게 된 계기산업기능요원을 준비하기 위해 이력서와 이것저것 취업에 필요한 것들을 준비를 하고 있다. 처음에는 점핏이나 사람인과 같은 플랫폼에서 제공하는 이력서만 작성을 했었고, 서류합이 바로 와서 포트폴리오의 중요성을 잘 몰랐었다.최종 면접을 보고 해당 회사에서 불합격을 받고나서 다음 회사에는 더 신중하게 지원을 해야겠다는 생각이 들었고, 면접관들의 입장에서 포트폴리오를 읽는 것이 긴 줄 글을 읽는 것 보다 훨씬 나을거라는 생각을 하게 되어 포트폴리오를 만들게 되었다. ▼  처음에는 노션으로 만들었는데...여기는 잡설이니 핵심만 필요한 사람은 그냥 넘겨도 된다. ▼더보기처음에는 노션을 통해 포트폴리오를 만들었다.예전에 이런 느낌으로 만들었는데, 스스로 생각하기에 여러가지 문제점이 있었..
[면접 질문] Flutter 심화 질문 (작성중)
[면접 질문] Flutter 심화 질문 (작성중)
스펙 업!
2024.03.06 19:45
Flutter의 컴파일 과정 How Flutter & Dart Code Gets Compiled To Native Apps How does Flutter and Dart work internally? pinedamg.medium.com From the FlutterDev community on Reddit: How does Dart (or Flutter) compile to iOS, Android, and other "native" code? Explore this post and more from the FlutterDev community www.reddit.com [Flutter] 01. 그 시작과 궁금증 플러터란 무엇? | (본 글은 공부하며 적은 글로서 100% 맞음을 보장할 수 없습니다. 틀린..
[면접 질문] Flutter 기본 질문
[면접 질문] Flutter 기본 질문
스펙 업!
2024.03.05 22:57
Flutter란? Flutter는 구글에서 개발한 모바일 어플리케이션 개발용 오픈소스 프레임워크다. Dart언어로 작성되었으며 안드로이드 및 iOS 모바일 앱 개발 뿐만 아니라 웹, 데스크톱 및 IoT 기기 등 다양한 플랫폼에서도 실행이 가능하다. Flutter는 빠른 개발 및 확장성을 지원하고, 다양한 애니메이션 및 사용자 인터페이스 요소를 포함하고 있다. Flutter와 타 모바일 개발 플랫폼들과의 차이점 React Native와의 차이점 Flutter의 높은 성능 Flutter의 Dart언어는 네이티브 코드로 컴파일 될 수 있다. 허나 React Native는 네이티브 모듈과 통신하기 위해 JavaScript 브리지를 사용하기 때문에 성능이 Flutter에 비해 약간 낮을 수 있다. 응용 프로그램 ..
[면접 대비] 프로그래밍 공통
[면접 대비] 프로그래밍 공통
스펙 업!
2024.03.05 17:21
메모리 구조 코드 영역 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(Text) 영역이라고도 부른다. 사용자가 프로그램 실행 명령을 내리면 OS가 HDD에서 메모리로 실행 코드를 올리게 되고, CPU는 코드 영역에 저장된 명령어를 하나씩 가져가 처리하게 된다. 제어문, 함수, 상수들이 이 영역에 저장된다. 데이터 영역 프로그램의 전역 변수(global)와 정적 변수(static)가 저장되는 영역이다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다. 힙 영역 프로그래머가 직접 관리할 수 있는 메모리 영역으로 이 공간에 메모리를 할당하는 것을 동적 할당이라고 부른다. Java, C# 그리고 일부 스크립트 언어에 가비지 콜렉터가 있으며, 해당 언어들에서는 가비지 컬렉터가 자동..
CS 카테고리의 최신 글
Transaction Management Overview
Transaction Management Overview
데이터베이스
2024.04.04 19:42
Transactions DBMS의 성능을 향상시키기 위해서는 사용자 프로그램의 동시 실행이 필수적이다. 디스크 액세스는 빈번하게 발생하며 비교적 느리기 때문에 CPU를 활용하여 여러 사용자 프로그램을 동시에 처리하는 것이 중요하다. 사용자 프로그램은 데이터베이스에서 검색한 데이터에 대해 많은 작업을 수행할 수 있지만, DBMS는 데이터베이스에서 읽거나 쓰는 데이터에만 관심이 있기 때문이다. DBMS는 사용자 프로그램을 추상화하여 트랜잭션(Transaction)이라는 개념으로 표현한다. 트랜잭션은 읽기와 쓰기의 연속으로 구성된 DBMS의 추상적인 사용자 프로그램이다. 트랜잭션은 일련의 데이터베이스 작업으로 구성됩니다. 일반적으로 트랜잭션은 다음과 같은 단계로 진행된다. 시작 (Begin) 트랜잭션이 시작되..
통계 DB의 보안(내용보완필요)
통계 DB의 보안(내용보완필요)
데이터베이스
2024.04.04 19:35
개론 앞에서는 DB외에도 일반적으로 사용하는 방법을 알아보았다. 이제는 통계 DB에서의 개인정보 유출을 배워본다. 통계 DB 통계 DB에서는 개인의 정보를 다룬다. 그러나 해당 DB에서는 집계 질의문만 처리해주기 때문에 특정 개인의 정보를 알 수 없다. 평균 나이, 최소 나이, 최고 나이 등등과 같은 집계 정보만 주기에 고라니의 나이나 고라니의 몸무게와 같이 특정 데이터는 얻을 수 없다. 추론 문제 그러나 추론이 가능하다. 예를 하나 들어보자. 나이와 등급이 연결되어있는 통계 DB가 있다고 해보자. 등급은 꽤나 민감한 정보로 아무도 모르지만 현재 노근은 대학 내의 학생 중 최고령자의 이름을 알고 있다. 그리고 이 최고령자가 유일무이하단 것도 알고 있다. 이 상황에서 노근은 해당 사람의 나이를 모름에도 등..
인터넷 응용프로그램의 보안
인터넷 응용프로그램의 보안
데이터베이스
2024.03.08 19:08
암호화 대칭적 암호화(Symmetric Encryption) 암호화에 필요한 키가 복호화 키로도 사용이 되는 암호화 방식을 말한다. 키가 하나만 있으면 되기에 간편한 방법이지만 키를 건네줄 때 부담이 생기게 된다. 암호화된 내용도 중간에서 가로챌 수 있는데 키라고 중간에 못 가로챌 일은 또 없다. 이렇게 하나의 키로 암호화와 복호화를 모두 하게 되면 키를 교환하는데에 부담이 생기게 된다. 공개키 암호화(Public-Key Encryption) 그래서 이런 부담을 줄이고자 나온게 공개키 암호화다. 각 사용자들은 모든 사람에게 알려진 공개 암호화 키와 자신만 알고 있는 비공개 복호화 키를 하나씩 갖고 있다. 사용자가 아마존에게 암호화된 주문 정보를 보내는 것을 예시로 보자.▼ 아마존은 암호화를 해주는 pub..
CPU Scheduling
CPU Scheduling
운영체제
2024.03.04 21:23
개요 운영체제는 항상 한정된 자원을 두고 자신과의 싸움을 한다. ▼ 자원은 계속해서 늘어나고 있지만 자원이 늘어나는 만큼 더 많이 사용하게 되어 자원은 항상 부족하다. 프로세스가 구동이 되려면 메모리 자원과 CPU자원이 필요하다. 모든 프로세스가 자원을 원하는 만큼 가져가면 좋겠지만 그렇게 다 주기엔 자원이 모자르기에 누구에게, 얼마나, 얼마동안 줄 지를 결정해야한다. 이렇게 프로세스에게 자원을 주는 일련의 행위를 Scheduling, 해당 행위를 맡고있는 OS의 일부분을 Scheduler라고 부른다. Q. Scheduler의 정체가 정확히 무엇인지? 하드웨어? 아니면 프로세스? A. 스케쥴러는 하드웨어나 별도의 프로세스가 아닌 OS의 기능중 하나이다. Term에 따른 종류 스케쥴러는 term을 단위로 ..
Process
Process
운영체제
2024.03.04 20:49
프로세스(Process)란? 프로세스란 지금 실행하는 프로그램을 의미하며, 프로그램의 가장 기본적인 단위를 의미하기도 한다. 프로세스의 문맥(Context) 현재 혹은 특정 지점을 놓고 봤을 때 프로세스가 어디까지 수행됐는지, 프로세스를 실행시키기 위해 어떤 메모리 공간을 만들었는지, Program Counter가 어디를 가리키고 있는지를 알려주는 정보를 프로세스의 문맥이라고 한다. 프로세스의 요소 각 프로세스는 크게 아래의 2가지를 갖는다. address space(core image) process table entry 여기서 entry는 해당 프로세스를 수행하기 위해 필요한 정보와 나중에 수행하기 위해 필요한 레지스터 값과 상태를 저장한다. Entry보다는 Process Control Block이라..
Algorithm 카테고리의 최신 글
백준 2437번 저울 - SWIFT
백준 2437번 저울 - SWIFT
BOJ PS
2024.06.12 11:58
문제하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓을 수 있고, 다른 쪽에는 무게를 측정하려는 물건만 올려놓을 수 있다.  무게가 양의 정수인 N개의 저울추가 주어질 때, 이 추들을 사용하여 측정할 수 없는 양의 정수 무게 중 최솟값을 구하는 프로그램을 작성하시오.예를 들어, 무게가 각각 3, 1, 6, 2, 7, 30, 1인 7개의 저울추가 주어졌을 때, 이 추들로 측정할 수 없는 양의 정수 무게 중 최솟값은 21이다. 입력첫 째 줄에는 저울추의 개수를 나타내는 양의 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 둘째 줄에는 저울추의 무게를 나타내는 N..
백준 19941번 햄버거 분배 - C++
백준 19941번 햄버거 분배 - C++
BOJ PS
2024.06.06 18:22
문제기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 𝐾 이하인 햄버거를 먹을 수 있다.햄버거사람햄버거사람햄버거사람햄버거햄버거사람사람햄버거사람123456789101112 위의 상태에서 𝐾=1인 경우를 생각해보자. 이 경우 모든 사람은 자신과 인접한 햄버거만 먹을 수 있다. 10번의 위치에 있는 사람은 11번 위치에 있는 햄버거를 먹을 수 있다. 이 경우 다음과 같이 최대 5명의 사람이 햄버거를 먹을 수 있다.2번 위치에 있는 사람: 1번 위치에 있는 햄버거4번 위치에 있는 사람: 5번 위치에 있는 햄버거6번 위치에 있는 사람: 7번 위치에 있는 햄버거9번 위치에 있는 사람: 8번 위치에 있는 햄버거10번 위치에 있는 사람: 11번 위치..
백준 1515번 수 이어 쓰기 - C++
백준 1515번 수 이어 쓰기 - C++
BOJ PS
2024.06.05 18:16
문제세준이는 1부터 N까지 모든 수를 차례대로 공백없이 한 줄에 다 썼다. 그리고 나서, 세준이가 저녁을 먹으러 나간 사이에 다솜이는 세준이가 쓴 수에서 마음에 드는 몇 개의 숫자를 지웠다. 세준이는 저녁을 먹으러 갔다 와서, 자기가 쓴 수의 일부가 지워져있는 모습을 보고 충격받았다. 세준이는 수를 방금 전과 똑같이 쓰려고 한다. 하지만, N이 기억이 나지 않는다. 남은 수를 이어 붙인 수가 주어질 때, N의 최솟값을 구하는 프로그램을 작성하시오. 아무것도 지우지 않을 수도 있다.) 입력첫째 줄에 지우고 남은 수를 한 줄로 이어 붙인 수가 주어진다. 이 수는 최대 3,000자리다. 출력가능한 N 중에 최솟값을 출력한다. 문제 링크https://www.acmicpc.net/problem/1515  풀이잘못..
백준 17266번 어두운 굴다리 - C++
백준 17266번 어두운 굴다리 - C++
BOJ PS
2024.06.01 18:51
문제인하대학교 후문 뒤쪽에는 어두운 굴다리가 있다. 겁쟁이 상빈이는 길이 조금이라도 어둡다면 가지 않는다. 따라서 굴다리로 가면 최단거리로 집까지 갈수 있지만, 굴다리는 어둡기 때문에 빙빙 돌아서 집으로 간다. 안타깝게 여긴 인식이는 굴다리 모든 길 0 ~ N을 밝히게 가로등을 설치해 달라고 인천광역시에 민원을 넣었다. 인천광역시에서 가로등을 설치할 개수 M과 각 가로등의 위치 x들의 결정을 끝냈다. 그리고 각 가로등은 높이만큼 주위를 비출 수 있다. 하지만 갑자기 예산이 부족해진 인천광역시는 가로등의 높이가 높을수록 가격이 비싸지기 때문에 최소한의 높이로 굴다리 모든 길 0~N을 밝히고자 한다. 최소한의 예산이 들 높이를 구하자. 단 가로등은 모두 높이가 같아야 하고, 정수이다. 다음 그림을 보자.가로..
백준 10341번 줄세우기 - C++
백준 10341번 줄세우기 - C++
BOJ PS
2024.05.25 15:05
문제초등학교 선생님 강산이는 아이들을 데리고 단체로 어떤 일을 할 때 불편함이 없도록 새로 반에 배정받은 아이들에게 키 순서대로 번호를 부여한다. 번호를 부여할 땐 키가 가장 작은 아이가 1번, 그 다음이 2번, ... , 가장 큰 아이가 20번이 된다. 강산이네 반 아이들은 항상 20명이며, 다행히도 같은 키를 가진 학생은 한 명도 없어서 시간이 조금 지나면 아이들은 자기들의 번호를 인지하고 한 줄로 세우면 제대로 된 위치에 잘 서게 된다. 하지만 매년 첫 며칠간 강산이와 강산이네 반 아이들은 자기가 키 순으로 몇 번째인지 잘 알지 못해 아주 혼란스럽다. 자기 위치를 찾지 못하는 아이들을 위해 강산이는 특별한 방법을 생각해냈다. 우선 아무나 한 명을 뽑아 줄의 맨 앞에 세운다. 그리고 그 다음부터는 학..
노션 카테고리의 최신 글
5. 데이터베이스 속성 심화
5. 데이터베이스 속성 심화
NOTION
2024.03.13 13:28
저번 포스트인 노션의 핵심 데이터베이스 에서는 데이터베이스에 대해 전체적으로 훑어봤다. 어떤 기능이 있고, 어떻게 사용하는지 정도를 봤는데 아직 본격적으로 사용하기에는 무리가 있지 않을까하고 생각했다. 사실 기초적으로, 그저 데이터를 담기 위해 데이터베이스를 사용하는 거라면 속성에 대해 깊이 알 필요는 없다. 어쩌면 데이터베이스라는 것 자체도 그냥 보이는 대로 집어다가 사용하면 될 수 도 있다. 그런데 데이터베이스가 심화되고, 한 데이터베이스에 담는 내용들이 많아지면 조금 곤란한 상황이 발생할 수도 있다. 마치 코드처럼 어설픈 설계로 규모를 키우면 코드 전체가 꼬여버리는 것 처럼 말이다. 그래서 이번에는 직관적인 속성보다는 약간 추상적이고 복잡한 속성들에 대해 배워보겠다. 관계형 첫번째로 볼 속성은 관계..
[노션 강의] 4. 노션의 핵심 데이터 베이스
[노션 강의] 4. 노션의 핵심 데이터 베이스
NOTION
2024.03.08 18:55
앞의 포스트에서 봤던 노션의 구조, 블록은 사실 다른 메모 어플리케이션에서도 지원을 하는 내용들다. 노션이 조금 더 완성도 있게, 더 많이 지원해주는 부분이 있지만, 사실 이 블록들보다 노션이 힘을 쓰고 있는 부분은 데이터베이스다. "데이터베이스? 그거 백엔드에서 다루는 거잖아." 데이터베이스라고 하면 개발자의 전유물같은 느낌으로 받아들여지는데, 최근에는 개발자로 많은 분야의 사람들이 활동하게 되면서 그런 감각이 조금 사라진 것 같다. 사실 데이터베이스라는 것 자체가 개발자가 많이 쓰지만 개발자를 위한 것 보다는 데이터를 효율적으로 다루기 위해 나온 것이라고 보는게 더 맞을 거다. 그것을 개발자가 사용하는 것 뿐이다. 그런 감각, 그런 개념으로 접근하게 되면 노션에서 데이터베이스를 사용하는 것은 문서 ..
[노션강의] 3. 블록 소개
[노션강의] 3. 블록 소개
NOTION
2024.02.27 13:46
⛳️ 블록의 종류와 사용법에 대해 알아봅시다! 노션에는 엄청나게 많은 종류의 블록이 존재한다. 보기 좋은 글을 만들어주는 글 변형 블록들부터, 이모지, 사진, 그리고 심지어는 페이지까지 블록으로 넣을 수 있다. 블록들 대부분은 다루기 쉽기에 하나씩 직접 만들어서 사용해보면 그 사용법에 대해 금방 익힐 수 있다. 그래서 제가 모든 블록들을 설명하기 보다는 블록들을 카테고리 위주로 설명한 후, 각 카테고리에서 사용하기 어려운 블록들에 대해서 추가적으로 설명하도록 하겠다. 마크다운 지원 블록 블록들의 카테고리는 노션 팀이 보기좋게 분류를 해놓았다. 기본블록 미디어 데이터베이스 AI 블록 고급 블록 인라인 임베드 그런데 각 카테고리에 5개 정도의 블록이 있다고만 생각해도 35개의 블록이다. 블록의 개수를 생각해..
[노션 강의] 2. 노션의 기본 구조와 사용
[노션 강의] 2. 노션의 기본 구조와 사용
NOTION
2024.02.23 15:53
⛳️ 노션의 구조와 노션을 이루고 있는 구성요소의 사용에 대해 알아봅시다! 노션의 기본 구조 노션 사용법에 대해 알아보기 전에 노션의 기본 구조에 대해 알아볼 것입니다. 노션의 구조를 알고 나면 사용하는 법도 더 쉽게 익힐 수 있습니다. Top-down 방식으로 하나씩 보도록 합시다. Workspace 노션의 가장 큰 단위라고 하면, 역시 workspace다. Workspace는 하나의 프로젝트라고 볼 수 있다. 하나의 큰 대분류로 다른 프로젝트나 다른 주제와의 분리가 가능해진다. 좌측 상단에 워크스페이스들을 모아 볼 수 있고, 원하는 워크스페이스로 전환이 가능하다. ▼ Workspace 만드는 법 ‘처음 시작할 때 워크스페이스를 하나 만들었는데, 새로운 워크스페이스는 어떻게 만드나요?’ 좌측 상단의 워..
[노션 강의] 1. 노션이란?
[노션 강의] 1. 노션이란?
NOTION
2024.02.21 23:02
⛳️ 노션으로 무엇을 할 수 있는지 알아봅시다! 노션(NOTION) 이란? 노션은 all-in-one workspace로 문서, 데이터베이스, 위키, 달력, 프로젝트 관리 등의 기능을 제공해주는 어플리케이션입니다. 아래의 기능들을 노션 하나로 모두 사용할 수 있습니다. 문서 데이터베이스 공개 웹사이트 지식 베이스 프로젝트 관리 시스템 "그렇지만 제가 보기엔 그냥 예쁜 메모 앱인거 같은데요?" 노션의 핵심 기능이 문서 작성이기에 이렇게 보이기도 하지만, 노션을 통해 문서 작성 외의 다른 것들도 할 수 있습니다. 조금 와닿지 않으실 거 같아서 제가 만든 몇가지 워크 스페이스를 보여드릴게요. 노근이 만든 워크스페이스들 1. NOGUEN 블로그 블로그를 노션으로 운영했었다. 노션 자체적인 기능과 super.so..
이모저모 카테고리의 최신 글
image