전체 글 281

factory 생성자에 대한 고찰2 - 일반 생성자와 다른 차이점

지난 시간에는 json 파싱할 때 factory 생성자를 왜 쓸까? 에 대한 포스팅을 했었다. 2023.09.21 - [🐦 Flutter] - factory 생성자에 대한 고찰1 - Json 파싱 근데 지난 포스팅에도 봤다시피 factory 생성자는 일반 생성자와는 다른 모양이었다. 그러니까 일반 생성자 는 객체를 다음과 같이 초기화할 수 있다. Album({this.userId, this.id, this.title}); 반면 factory 생성자 는 다음과 같이 초기화한다. factory Album.fromJson(Map json) { return Album( userId: json['userId'], id: json['id'], title: json['title'], ); } factory 생성자는 ..

🐦 Flutter 2023.09.23

factory 생성자에 대한 고찰1 - Json 파싱

class Album { final int userId; final int id; final String title; Album({this.userId, this.id, this.title}); factory Album.fromJson(Map json) { return Album( userId: json['userId'], id: json['id'], title: json['title'], ); } } json 파싱할 때 보통 위 예제처럼 factory 생성자를 사용한다. factory 생성자는 인터넷에 조금만 찾아도 "이미 생성된 인스턴스를 재활용하는 생성자" 라고 알고 있을 것이다. 위 예제는 사실상 factory 생성자를 굳이 안 써도 된다고 한다. factory 생성자를 json 파싱할때만 본 나..

🐦 Flutter 2023.09.21

x86, x64, x86_64, arm

ISA 란? 하드웨어와 소프트웨어 사이의 Interface를 정의하는 것. 하드웨어와 프로그램 사이의 매개체 역할을 하는 것이다. 세상에는 많은 ISA가 있다. 칩을 만드는 회사마다 ISA의 종류가 다르다. 회사마다 자신만의 ISA를 가지고 있는 것이다. 흔히 쓰이는 랩탑, 데스크탑, 심지어 서버 컴퓨터까지 전부 Intel, AMD 프로세서를 쓰는 아키텍처를 쓰고 있는데, 이 회사에서는 x86 ISA를 가지고 있다고 얘기를 한다. 그 외에 스마트폰에 쓰이는 ARM 프로세서가 있다. 이 x86과 ARM은 서로 다른 ISA라고 말할 수 있다. 즉, 데스크탑과 스마트폰은 다른 ISA를 가지고 있다고 말할 수 있다. 이것은 이렇게 말할 수 있다. 데스크탑에서 만든 소프트웨어를 바로 ARM 프로세서(모바일)에서 ..

[안드로이드] compileSdkVersion, targetSdkVersion, buildToolsVersion

안드로이드 OS API 나는 아이폰을 쓰고 있기 때문에 안드로이드 OS API 가 뭔지 정확히 몰랐다. 또한 티라미수, 롤리팝..? 들었을 때 이게 뭔소린지 싶었다. 티라미수, 롤리팝..? 안드로이드 운영 체제 버전을 의미한다. 안드로이드 운영 체제 버전은 주로 디저트 이름으로 알려져 있다. 이는 구글에서 안드로이드 버전 코드 네임을 디저트 이름으로 명명하여 사용하는 관행이다. 디저트 이름은 해당 버전의 알파벳 순서에 따라서 지정되며, 알파벳 순서대로 칠러(Cupcake), 도넛(Donut), 이클레어(Eclair), 퓨오리아(Froyo), 진저브레드(Gingerbread) 등 다양한 디저트 이름이 사용되었다. 다음은 안드로이드 버전 순서와 디저트 네임이다. 버전 디저트 명 출시일자 안드로이드 1.0 -..

👩🏻‍💻 TIL 2023.06.25

IP 관련 용어 정리

IP 란? IP(Internet Protocol) 란 인터넷에 연결되어 있는 모든 장치(컴퓨터, 서버 장비, 스마트폰 등.. HOST 로 칭한다)를 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소이다. 뉴스를 보면 IP 를 추적해서 범인을 잡는다는 등 소식을 접할 수 있다. 이렇게 IP 는 고유 주소인 것이다. HOST 가 사람이라고 한다면 IP 는 주민등록번호로 비유할 수가 있다. IP 는 두가지 버전이 있다. Ipv4 , Ipv6 가 있는데 각각 32bit, 128bit 를 가지고 있고 이 둘은 외워주는게 좋다.ipv6 는 ipv4 의 자원의 한계 (2^32 = 약 43억개) 로 인해 생겨난 주소 체계인데, 아직까진 ipv4 가 널리 쓰이고 있다. 왜 그런지 궁금해서 찾아보았는데 ipv6 를 구..

[TIL] Github Action 실습

Github Actions를 이용해서 AWS EC2에 Docker로 배포를 하는 방법 아래 유튜브를 참고했습니다 https://youtu.be/E3i9qt0SS-I 전체적인 Flow 1. 로컬 PC 에서 개발을 한 후 Github 에 푸시 2. 특정 브랜치에 푸시가 되면 (=event trigger) 깃헙 액션이 동작되도록 3. 깃헙 액션이 Github Container Registry 에 소스를 받은 후 도커 이미지로 빌드 4. 빌드된 이미지를 EC2 에 등록된 Runner 가 복사 5. 기존 이미지를 삭제하고 새로운 이미지로 실행 1. 도커 파일 생성 도커 파일 생성 -> touch Dockerfile Dockerfile 에 다음과 같이 작성해줍니다. FROM node:14.19.0 : nodejs ..

👩🏻‍💻 TIL 2023.06.04

AWS 개념 정리

클라우드 컴퓨팅이란? 인터넷을 통해 IT 리소스와 애플리케이션을 온디맨드로 제공하는 서비스, 종량 과금제 - 온디맨드 서비스: 사용자가 요청하는 즉시 제공되는 서비스 - 종량 과금제: 사용자가 실제로 사용한 양에 따라 요금을 지불하는 요금 체계 기존의 물리적인 형태의 실물 컴퓨팅 리소스를 네트워크 기반 서비스 형태로 제공하는 것이다. 사용자로 하여금 네트워크 상에서 클라우드 서비스의 자원을 사용하는 것을 의미한다. AWS 클라우드 컴퓨팅 장점 - 데이터센터 운영 및 유지관리에 비용투자 불필요하고 몇분만에 전세계에 배포. AWS 는 언어 및 운엉 체제에 구애받지 않는 플랫폼이다. 따라서 사용자의 비즈니스에 가장 적합한 개발 플랫폼 또는 프로그래밍 모델을 선택할 수 있다. 사용할 서비스를 한 개 또는 여러 ..

👩🏻‍💻 TIL 2023.06.03

[iOS] 전역변수, 클래스간 데이터 전달 - 3

1. 전역변수 설정 및 참조 AppDelegate 에 다음과 같은 globalData 와 같은 전역변수가 있다고 하자. 이를 다른 화면에서 출력해보겠다. @main class AppDelegate: UIResponder, UIApplicationDelegate { // 전역변수 선언하는 부분 - 변수, 배열, 딕셔너리, 구조체, 클래스 var globalData: String = "" 뷰 컨트롤러 쪽이다. AppDelegate 를 참조하는 방법은 다음과 같이 꼭 써줘야 한다. (이게 룰이다) import UIKit class NvMainViewController: UIViewController { // 전역변수를 참조하는 방법 let appDelegate = UIApplication.shared.dele..

🦜 Swift 2023.05.14

[iOS] 뷰 컨트롤러의 수명 주기, 팝업창 띄우기 - 2

뷰 컨트롤러의 수명 주기 // // viewDidLoad : 뷰가 생성될 때 한번만 호출됨. (초기화 용도) // viewWillAppear : 뷰가 화면에 보일 때마다 호출됨. (화면 갱신 용도) // viewDidAppear : 뷰가 화면에 보이고 나서 매번 호출됨. // viewWillDisappear : 뷰가 화면에 사라지기 전마다 호출됨. (데이터 전달) // viewDidDisappear : 뷰가 화면에 사라지고 나서 매번 호출됨. // viewWillLayoutSubviews : 컨트롤(서브뷰)들의 레이아웃을 잡기 전에 호출됨. // viewDidLayoutSubViews : 컨트롤들의 레이아웃을 잡고 나서 호출됨 위와 같은 수명 주기로 ..

🦜 Swift 2023.05.13