수치해석을 모르면 푸틴이 미사일을 잘못 쏴요 우리 학교에는 학생들 사이에서 인기가 많은 교수님이 한 분 계신다. 강의 시간에 뜬금없거나 재밌는 이야기를 많이 해서, 호불호가 갈릴 지언정 취향에 맞는 사람들에게는 인기가 항상 높다(귀엽다는 평가가 많다). 교수님은 수치해석 강의 시간에 농담 삼아서 위 이야기를 자주 말하신다. 갑자기 뜬금없이 미사일 이야기가 나와서, 많은 학생들은 의아해하기도 한다. 갑자기 수치해석에 관한 수업에서 왜 미사일에 관한 이야기가 나오는가? 이를 알기 위해선 한 가지 역사적 사건을 꼭 알아야 한다. 패트리어트 미사일 격추 실패 사건 때는 1991년 2월 25일, 이라크 전쟁 시기. 지금도 그렇고, 미국은 동맹국 사우디 아라비아에 파병을 보낸 상태였다. 다란(Dhahran) 시에 ..
Solution Challenge 2024 GDSC Solution Challenge 2024에 참여하게 되었다. 사실 작년 2023년에도 참여했었는데, 이때는 나를 포함한 팀원 모두가 첫 프로젝트라 많은 시행착오가 있었다. 하필 HIBL의 프로젝트 시기와도 동일하게 겹치는 시기라, 어려운 프로젝트 두 개를 동시에 진행하는 시기였다. 그래서 갈등도 있었고, 고생도 많았다. 그래서 올해 참여할 지 말지를 많이 고민했다. 원래는 고민 끝에 올해는 스킵하기로 마음먹었다. 사실 스킵하기로 하고서 여러 모로 아쉬움이 많이 남기는 했었다. 작년에 너무 고생했던 기억이 있어서, 도전할 용기는 많이 꺾였지만, 누군가 밀어주었으면 하는 바램이 있었다. 그러다가 이전에 데브옵스 스터디를 하면서 알게 된 분에게 권유를 받게..
문제 상황 Flutter에서 iOS 빌드 시 다음과 같은 에러가 발생하였다. Launching lib/main.dart on iPhone 15 Pro in debug mode... Running Xcode build... Xcode build done. 6.2s Failed to build iOS app Uncategorized (Xcode): Command CodeSign failed with a nonzero exit code Could not build the application for the simulator. Error launching application on iPhone 15 Pro. Uncategorized (Xcode): Command CodeSign failed with a nonz..
바쁜 비버 지난 학기에 논리회로 과목을 수강하던 중, 기말고사 시험 문제로 ‘바쁜 비버’에 대한 문제가 출제되었다. 바쁜 비버는 컴퓨터 과학에서 꽤 중요한 개념이다. 특징도 여러 가지 재미있는 게 많아서, 이에 대해 글을 써본다. 본 글의 목차는 다음과 같다. 바쁜 비버 게임을 소개한다. 바쁜 비버 함수와 최대 시프트 함수를 소개한다. 바쁜 비버 함수의 계산 불가능성을 증명한다. 최대 시프트 함수를 중심으로 성질과 하한을 찾아가는 과정을 다룬다. 이 과정에서 아커만 함수, ZF 공리계, 콜라츠 추측과의 연관 관계를 다룰 것이다. 바쁜 비버로부터 파생된 함수들을 다룬다. 바쁜 비버 게임 바쁜 비버 게임은 1962년 Tibor Radó의 논문 On Non-Computable Functions에서 처음 소개되..
부동 소수점의 성질과 연산, 그리고 FPU 이 글에서는 컴퓨터에서의 부동소수점을 저장하고 연산하는 법과 그 성질에 대해서 다루어볼 것이다. 또한 부동소수점을 처리하는 하드웨어인 FPU에 대해서 가볍게 소개하며, 어떻게 실수형 연산을 처리하는지를 알아볼 것이다. 각 목차의 내용은 다음과 같다. 부동소수점의 저장을 다룬다. 이 과정에서 수의 정규화와 비정규화에 대해 다룬다. 부동소수점의 성질을 다룬다. 이 과정에서 머신 엡실론과 실수의 분포를 다룬다. 부동소수점의 연산을 다룬다. FPU에 대해서 다룬다. 이 과정에서 Sparc 어셈블리어를 이용해서 어떻게 FPU를 활용하여 연산을 처리하는 지 알아본다. 💻 컴퓨터의 수의 표현과 부동 소수점 부동소수점의 표현 컴퓨터에서 숫자 체계는 크게 두 가지로 나뉜다. 정..
Sealed Class로 상태 패턴 사용하기 Sealed Class란? Dart 3.0 버전부터 sealed란 키워드가 class modifier로 새롭게 추가되었다. sealed 클래스는 enum의 확장판으로, class를 enum처럼 사용할 수 있게 해준다. 공식 문서에서 sealed 클래스의 용법을 찾아보면 다음과 같다. sealed class Vehicle {} class Car extends Vehicle {} class Truck implements Vehicle {} class Bicycle extends Vehicle {} // ERROR: Cannot be instantiated Vehicle myVehicle = Vehicle(); // Subclasses can be instantia..
Token Login / Auth 구현하기 https://nx006.tistory.com/64 Session VS Token Authentication - feat. JWT 기술 Authentication 앱을 만들 때 회원가입/로그인 기능을 구현해야 할 때가 있습니다. 인증 및 인가된 사용자에게 앱의 기능을 사용할 수 있게 하기 위해서는, 로그인이라는 Authentication(인증) 기능을 거 nx006.tistory.com 이전 글에서 Session 로그인과 Token Login 방식에 대해서 알아봤습니다. 이번 글에서는 어떻게 하면 Flutter에서 Token 로그인 방식을 관리할 수 있는지, 클라이언트 관점에서 구현해보겠습니다. 이 방법은 코드팩토리 님의 Flutter 강의를 듣고서 정리한 글입..
BottomNavigationBar 사용하기 위와 같은 화면을 구성할 때 BottomNavigationBar를 많이 사용하게 됩니다. BottomNavigationBar은 TabBarView와 같이 사용하게 되는데, 사용자의 입력에 따라서 두 위젯의 index가 잘 맞아야 하기 때문에 은근히 구현하기 어려운 부분입니다. 이 글에서 TabBarView와 BottomNavigationBar를 이용해서 위와 같은 UI를 구현해보겠습니다. BottomNavigationBar와 TabBarView 이용해서 화면 전환 구현하기 StatefulWidget 만들기 우선, BottomNavigationBar를 담는 View부터 만들어야 하는데, 이를 TabView라고 하겠습니다. 당연히 사용자의 입력에 따라서 UI가 달..