전체 글 34

Svelte 웹프론트 컴파일러

새로운 사이드 프로젝트를 진행하기 위해, 새로운 프론트엔드 프레임워크를 찾아봤다. Svelte 라는 컴파일러가 간단하고 재밌어보여서 공부해볼 생각이다. 여러 블로그나 강의로도 배울 수 있겠지만, 일단은 공홈이 최고 아닐까..? 라는 생각이 들었다. 다행히 튜토리얼을 제공해줘서 배워보는 중! https://svelte.dev/tutorial/basics Introduction / Basics • Svelte Tutorial Introduction / Basics a. Basicsb. Adding datac. Dynamic attributesd. Stylinge. Nested componentsf. HTML tagsg. Making an appa. Assignmentsb. Declarationsc. Stat..

개인/일상 2022.12.05

CLR via C# | 4장) 타입의 기초

목차 4장에서 알 수 있는 내용 타입의 공통분모 object 타입 안정성 캐스팅 네임스페이스 런타임에서의 (타입 + 스레드 + 스택 + 힙)의 형성 방식 System.Object public 메서드 Equals 비교대상과 동일한 값인지 확인 (책에는 안 써있지만, 해시테이블 콜렉션에서 Key로 사용하려면 재정의 필수) hashCode는 int로, 중복발생 가능성이 존재 hashCode가 같고 Equals도 true 여야 동등객체 GetHashCode 해시 테이블 콜렉션에서 Key로 사용하려면 재정의 필수 객체 식별의 유일성이 충족되어야 함 ToString 일반적인 용도: 객체 현재 상태 설명, 디버깅 GetType Type 타입 클래스에서 파생된 객체 인스턴스 반환 (타입에 대한 정보가 담긴 객체) 비가..

프로그래밍/C# 2022.04.18

[Flutter] Xcode 빌드 오류

Flutter로 개발하다가 iOS로 실행해보기 위해 Xcode에서 run 하면 빌드 중에 종종 이런 에러를 마주한다. The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. pod install 이 필요한데, 우린 Flutter를 사용하니까 flutter 명령어를 통해서 실행해주면 된다. 프로젝트 폴더 내에서 flutter build ios 를 입력하면 다음 화면이 나오는데, 이 이후에 Xcode에서 다시 run 하면 문제없이 작동된다.

개발 이슈 2021.03.04

[Flutter] ListView 데이터 추가시 중복값 발생

문제와 현상 Firebase Firestore(NoSQL)에서 데이터를 가져와서 최신순 정렬하여 ListView로 띄움 데이터 추가 새로 추가한 값은 안 들어가고 마지막 값이 중복으로 들어감 마치 이렇게,,, 원인 ListView에서 사용하는 list의 값은 제대로 변경되었지만, 기존 위치의 리스트들은 업데이트가 되지 않았던 것이다. 7번째의 Guava가 새로운 데이터 추가로 8번째로 밀려 8번째에 Guava가 나왔지만, 나머지 1~7번째의 항목은 업데이트되지 않은 것 해결 ListView에 포함되는 item widget에 key: UniqueKey() 항목을 추가해준다. return Container( key: UniqueKey(), child: Text(document['name']) ); 각각의 항..

개발 이슈 2021.02.03

[Flutter] RepaintBoundary 캡쳐 이미지 저화질 현상 (화질구지)

RepaintBoundary를 이용해서 특정 구간의 위젯들을 캡쳐해서 저장하는데, 사진의 화질이 엄청 떨어지는 현상이 나타났다 ... 도저히 눈 뜨고 못봐줄 그런 정도...^^ 해결 방법은 생각보다 간단하다! ui.Image image = await boundary.toImage(pixelRatio: 2.0); pixelRatio 부분을 추가해주면 된다 뒤의 소수점 이커질 수록 해상도가 좋아진다 너무 크게 잡으면 이미지의 크기가 너무 커지니까 적당하게 잡는 걸 추천! (개인적으로는 5.0이 적당한 것 같았다) 참고: https://github.com/flutter/flutter/issues/21269

개발 이슈 2021.01.22

[Notion] 이미지 왼쪽 정렬 / 오른쪽 정렬

노션에서 기본적으로 이미지가 가운데 정렬인데, 이를 왼쪽 정렬로 바꾸고 싶었지만 방법을 찾을 수 없어 꼼수를 써봤다. 빈 블록 하나를 이미지 옆으로 끌어다 놓으면 이렇게 이미지가 왼쪽 정렬이 된다. 같은 방식으로 오른쪽 정렬 역시 가능하다. QnA Q. 이미지가 왼쪽 정렬은 됐는데, 너비가 너무 작아요 ㅠㅠ >> 이미지쪽 문단의 너비를 더 넓혀서 이미지의 최대 너비 값을 더 늘릴 수 있습니다.

개발 이슈 2020.04.10

AWS EC2와 도메인 연결 (가비아)

목표) AWS EC2에서 실행중인 웹 서버를 구매한 도메인과 연결하기 (가비아에서 구매한 도메인) 1. 우선 AWS의 Route53 서비스로 이동합니다. (https://console.aws.amazon.com/route53) 2. 두 버튼 중 아무거나 눌러 "호스팅 영역" 페이지로 이동합니다. 2. 새로운 호스팅 영역을 생성해줍니다. 3. 화면 우측에 생긴 입력란에서 도메인 이름을 입력하여 생성을 완료해줍니다. 4. 생성한 호스팅 영역으로 들어와, 레코드 세트 생성을 눌러줍니다. 5. 화면 우측에 생긴 입력란에서, 연결할 EC2 IP 주소를 입력하여 레코드를 생성해줍니다.(서브 도메인 www을 원하는 경우, "이름"란에 www를 입력하여 생성하면 됩니다.) 6. www와 기본 도메인에 대한 레코드 생성..

개발 이슈 2020.03.19

[Node.js] NGINX 프록시 설정과 기본 페이지 제거

AWS EC2에서 Node.js로 Express 앱을 돌리고 NGINX로 proxy 설정으로 구매한 도메인에서 Express 앱으로 연결하는 게 목표였다 하지만, proxy 설정 후에도 계속되는 기본 페이지인 'Welcome to nginx!' 때문에 삽질했다 🤯 설명은 NGINX 설치, 프록시 설정, 기본 페이지 제거 순으로!! (Node.js는 이미 실행하고 있다는 가정) ( 간단한 NGINX 소개 NGINX는 Event-Driven 방식으로 클라이언트의 요청을 처리해주는 비동기 기반의 웹 서버이다. 동시 접속 처리에 특화된 웹 서버 프로그램으로, 클라이언트의 요청 처리를 분산시킬 수 있는 로드 밸런스를 사용함으로 효율적이다. 정적파일을 다이렉트로 제공해주기 때문에 백엔드 서버에 부담을 주지 않고, ..

개발 이슈 2020.03.19

[Android] EditText 검색창으로 사용하기 (+ Enter Key Event 제어)

안드로이드의 EditText를 검색창처럼 1. 입력이 한줄만 가능하도록 2. 엔터를 누르면 키보드가 내려가도록 3. 키보드 엔터쪽에 "Enter"라는 글자가 아닌 돋보기 아이콘이 나오게 하도록 하기 위한 방법이다. android:inputType="text"// 없으면 maxLines 가 작용하지 않음 android:maxLines="1"// multiple line 불가능하게 제어 android:imeOptions="actionSearch"// 엔터키쪽에 돋보기가 나타나고 엔터키를 누르면 키보드 내려감 Enter key event 제어 [EditText xml id].setOnKeyListener { _, keyCode, event -> if ((event.action== KeyEvent.ACTION_..

개발 이슈 2019.12.17

[JS] ... (Three Dots) Operator

ES6에서 추가된 문법 1. Rest Operator 객체 혹은 배열의 남은 값을 변수에 할당할 때 const obj = {a: 1, b:2, c:3, d:4, e:5}; const {a, b, ...restObj} = obj; // a와 b를 제외한 나머지 값들이 restObj에 객체로 할당된다 2. Spread Operator 객체 혹은 배열의 값을 합칠 때, 혹은 복사할 때 모든 값들만 꺼내서 사용할 때 (단, 값은 one depth는 deep copy지만 two depth 이상부턴 swallow copy가 된다.) const arr = [1,2,3]; const arrCopy = [...arr, ...arr]; // [1,2,3,1,2,3,] // 객체의 값들을 parameter로 대응해서 넘길 ..

프로그래밍/JS 2019.11.20