👩🏻‍💻 TIL 52

앱이 도중 꺼지는 이유에 대해 분석해보았다

제목 그대로 어느 날, QA 를 하시는 한 분이 내가 만든 기능의 리뷰를 작성하던 도중 앱이 꺼지는 것 같다고 하셨다. 이전 QA 에서 앱이 꺼졌다고 보고한 사람들이 없었는데 왜 갑자기 이런 현상이 일어난 걸까? 또한 내가 쓴 코드에 대해선 여러 번 체크를 해봤기 때문에 코드에선 100% 아무런 잘못이 없다고 나는 확신을 하고 있었다. QA 를 하시는 분이 쓰는 핸드폰은 갤럭시이며 회사의 공용 테스트폰 iphone 7 로 테스트를 하고 있었다. 내가 테스트하는 폰들은 이런 현상이 일어나지 않았기에 QA 분에게 테스트폰을 잠시 빌려서 디버깅을 해보겠다고 부탁하였다. 그런데 테스트폰을 본 순간 문득 예전 기억이 떠올랐다. 옆에 개발하시는 분이 이 폰으로 디버깅하는데 속도가 너무 느리다고 하셨다. 그래서 나는..

👩🏻‍💻 TIL 2022.12.02

xcode push notification not showing

나는 파이어베이스 클라우드 메시징을 이용해서 iOS 의 Push Notification 을 구현하고 싶었다. 참고로 나는 플러터 개발자이기 때문에 iOS xcode 를 다룸에 있어서 익숙치 않다. 나는 인증서와 키를 모두 알맞게 발급 받았다. 혹시 인증서와 키 발급 받는 방법이 궁금하신 분들은 아래 영상을 참고하면 된다. ↓ https://www.youtube.com/watch?v=ytT65m_CjXU&list=LL&index=11 이제 + 버튼을 눌러서 Push Notification 을 추가할 차례이다. 그런데!!!!!!!!! 난 저 + 버튼을 누르면 Push Notification 이 없었다. 오잉? 내가 뭘 잘못했나 하면서 인증서, 키 모두 체크했고 별 이상 없었다. 다른 사람들은 저 버튼 눌러서..

👩🏻‍💻 TIL 2022.10.24

[iOS] [Flutter] module not found.

ios 로 디버깅 시도 하던 중 패키지만 깔고 나면 module not found 라는 문구가 나타난다. 디버그 콘솔 보면 import 패키지 에러 어쩌구저쩌구.. 스택오버플로우를 참고해서 모든 방법을 시도해봤다. https://stackoverflow.com/questions/61956166/flutter-module-not-found-in-xcode Flutter module not found in Xcode When I build the app in Xcode it throws the error: .../ios/Runner/GeneratedPluginRegistrant.m:10:9: Module 'audioplayers' not found I tried reinstalling and setting ..

👩🏻‍💻 TIL 2022.10.18

only one auth mechanism allowed

Amazon s3 s3 : simple storage service 어떤 정보(= 파일) 를 저장하는 서비스, 간단한 저장 서비스 s3 를 쓰는 이유 어떤 서버를 구축해서 저장하는 서비스를 만들 수도 있지만, 아마존에서 제공하는 서비스를 사용하면 많은 것들을 신경 쓰지 않고 안전하게 파일을 보관할 수 있습니다. (유실 가능성 거의 없음. 약 99.9%) (s3 의 서버는 죽을 걱정 거의 안해도 됩니다.) s3 보안 방식 amazon s3 는 ssl 을 통해 데이터 전송과 데이터 업로드 후 자동 암호화를 지원합니다. (ssl 은 암호화 방식) 이벤트 알림 전송 amazon s3 는 amazon s3 에 객체가 업로드 되면 이벤트 알림을 전송할 수 있습니다. 즉, 스토리지와 연계된 다른 서비스를 사용하는데 ..

👩🏻‍💻 TIL 2022.09.19

[Java] 추상 클래스와 인터페이스

클래스는 일반적으로 추상 클래스와 일반 클래스로 나뉜다. 추상 클래스는 클래스 내 '추상 메서드' 가 하나 이상 포함되어 있거나 abstract 로 정의된 클래스이다. 반면 인터페이스는 모든 메소드가 추상 메소드 이다. 이처럼 하는 일은 비슷하지만 이 둘의 개념은 뿌리부터 전혀 다른 곳에서 나왔다. 추상 클래스는 그 추상 클래스를 상속 받아서 기능을 이용하고 확장하는데에 이용하고, 인터페이스는 극단적으로 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것이 바로 인터페이스의 역할이자 개념이다. 인터페이스에 대해 더 자세히 알기 위해 아래 예시를 같이 살펴보자. A학생은 PPT로 논문을 11일날 제출했다. B학생은 EXCEL 2016 로 논문을 12일날 제출했다. C학생은 EXCEL 2019 로 자기만..

👩🏻‍💻 TIL 2022.06.12

[Java] extends implements 차이

extends 와 implements 의 차이는 뭘까? 메소드나 변수를 '구현'하는가 그대로 '사용'하는가에 따라서 상속의 형태가 갈리게 된다. extends 부모에서 선언 / 정의를 모두하며 자식은 메소드 / 변수를 그대로 사용할 수 있음 implements (interface 구현) 부모 객체는 선언만 하며 정의(내용)은 자식에서 오버라이딩 (재정의) 해서 사용해야함 abstract extends와 interface 혼합. extends하되 몇 개는 추상 메소드로 구현되어 있음 1. Extends 사실 extends가 상속의 대표적인 형태다. 부모의 메소드를 그대로 사용할 수 있으며 오버라이딩 할 필요 없이 부모에 구현되있는 것을 직접 사용 가능하다. class Vehicle { protected i..

👩🏻‍💻 TIL 2022.06.12

nexus-graphql-mongoose-boilerplate 1일차

현재 회사에서 사용하고 있는 기술을 이해하기 위해 초기세팅 진행해보았습니다. 초기세팅 하면서 모르는 것들이 너무 많아서 며칠동안 블로그에 같이 정리해보도록 하겠습니다. npm init -y rootDir : 시작하는 루트 폴더. outDir : 컴파일 후 생성되는 js파일이 생성될 폴더명. target : 어떤 버전으로 컴파일할지 작성 outDir: './dist' rootDir: './src' 이렇게 설정하기 typescript 설치 yarn add -D typescript npx tsc --init tsconfig 파일이 생겨났습니다. tsconfig.json TypeScript로 짜여진 코드를 JavaScript로 컴파일하는 옵션을 설정하는 파일입니다. TypeScript 컴파일은 tsc 라는 명령..

👩🏻‍💻 TIL 2022.05.15

npm 과 npx 차이

npm 을 통해서 모듈을 설치할 때, 한 가지 옵션을 주게 되면 매 프로젝트마다 모듈을 설치해 줄 필요가 없고 그저 내 컴퓨터 안에 글로벌한 공간에 모듈을 설치해 프로젝트마다 같은 모듈을 공유해서 사용할 수 있습니다. 바로 -g 옵션인데요, 사용 방법도 꽤 간단합니다. npm install 모듈이름 -g 그러나 이는 좋은 방법이 아닙니다. 개발자 입장에서는 귀찮게 여러 번 설치할 필요도 없고 한 번 설치면 끝나는데 왜 좋은 방법이 아닐까 라고 생각하시는 분들이 있을지도 모르겠습니다. 그 이유에는 대표적으로 3가지가 있습니다. 모듈이 업데이트 되었는지 안되었는지 확인이 불가능 합니다. 모든 프로젝트마다 모듈을 재설치 하는것이 아닌, 한 번 설치한 모듈을 그대로 사용하기 때문에 프로그래머가 의식해서 글로벌 ..

👩🏻‍💻 TIL 2022.05.14

graphQL 예외처리

프론트의 예외 처리 백엔드에서 프론트로 데이터를 받아올 시 그 데이터가 null 이거나 undefined 일 수 있으므로, 프론트단에서는 이를 예외처리 시켜주어야 한다. 다음과 같이 brand 의 데이터 타입이 정의되어 있다. brand 중에 name 과 brandGroup 의 name 을 뽑아서 사용할 건데 이를 각각 brandName, brandGroupName 이라고 정의하겠다. 내가 사용하는 코드는 코드가 너무 길기 때문에 가독성을 위해 brandTree 라는 함수를 만들어서 따로 예외처리를 해주겠다. const { brandName, brandGroupName } = brandTree(brand); brandTree 함수 const brandTree = ( brand: | { __typename..

👩🏻‍💻 TIL 2022.05.08

Code first, dbContext 개념

typesafe 프로그래밍 언어의 장점에 대해 많은 글이 작성되었습니다. 하지만 Typesafe 방식으로 GraphQL 스키마를 구축한다는 것은 무엇을 의미합니까? GraphQL 스키마의 코드 우선 구현(code first implementation)은 어떤 모습입니까? 우리는 GraphQL과 같은 기술을 사용하여 React 웹 애플리케이션과 백엔드 서비스를 연결합니다. 우리는 Nexus 라는 라이브러리와 함께 코드 우선 접근 방식을 사용하여 GraphQL 스키마를 개발합니다. Nexus 문서에서는 type safe 방식으로 GraphQL 스키마를 개발하는 방법에 대해 설명하고 있으며 오늘은 이것이 개발 측면에서 의미하는 바를 보여줍니다. 여기서 code first 라는 것이 무엇일까요? 일단 위에랑 직..

👩🏻‍💻 TIL 2022.04.22