전체 글 173

[React-Native] Metro 자바스크립트 번들러에 대한 이해

개요 Metro는 메타에서 제공하는 React-Native용 자바스크립트 번들러입니다. 자바스크립트 번들러 번들러의 필요성과 역할 일반적으로 효율적인 유지 보수를 위해 여러 파일로 쪼개어 관리 여러 파일로 분기화된 프로젝트 내부에서 각 파일들은 import또는 require을 통해 상호 작용하도록 설계 그러나 클라이언트는 이를 이해할 수 없으며 이해할 수 있더라도 호환성 문제(다른 클라이언트가 동일하게 이해한다는 보장이 없음) 여러 파일로 쪼개서 관리하는 방식을 유지하며, 클라이언트 호환성을 보장하기 위해 번들러 사용 번들러는 프로젝트 내 여러 파일들의 상호 작용을 이해, 클라이언트 호환성을 보장하는 단일 자바스크립트 파일로 만들어 줌 Metro React-Native용 번들러 Metro를 메타에서 제공..

[React-Native/오픈소스활동] Suspense 사용 방법

개요 이슈 작성자가 이슈를 삭제하였습니다. 이슈 스크린샷이 없다는 점 참고 부탁드립니다. React-Native에서 Suspense가 동작하지 않는다는 이슈가 있었습니다. Suspense는... React 18에서 공식적으로 지원하는 컴포넌트 React-Native에서도 Suspense를 사용할 수 있음 써드파티 라이브러리 수준에서 Suspense를 쉽게 활용할 수 있도록 지원 따라서 이를 지원하는 써드파티 라이브러리(react-query 등)를 사용하는 것이 편함 직접 구현하는 방법 중 하나로 promise객체를 다루는 함수를 추가로 작성하는 방법이 있음 문제 분석 이슈 작성자는 Suspense의 올바른 사용법을 숙지하지 않은 상태로 Suspense가 동작하지 않는다고 이슈를 생성 조치 Suspense..

[React-Native/오픈소스활동] ... does not contain a gradle build 안드로이드 스튜디오 에러 해결

개요 프로젝트 디렉토리를 안드로이드 스튜디오로 여는 경우 아래와 같은 에러가 발생할 수 있습니다. Directory 프로젝트명 does not contain a Gradle build ... 해결 방법 프로젝트 디렉토리가 아닌 프로젝트/android 디렉토리를 안드로이드 스튜디오로 열어보세요. 안드로이드 스튜디오는 프로젝트가 안드로이드 네이티브 프로젝트임을 가정하고 gradle 스크립트를 찾습니다. 프로젝트/android 디렉토리를 열어 gradle 스크립트를 문제없이 찾을 수 있도록 해야 합니다. 은근 많은 분들이 겪으시는 실수 같습니다. 메타 엔지니어 코르티쌤께서도 맞다고 해주셨네요. 참고 링크 React native screen and react safe area view is crashing , ..

[아키텍처] REST 아키텍처와 RESTful API에 대한 이해

개요 RESTful API는 REST 아키텍처 스타일을 만족하는 API입니다. 💡 참고 API는 Application Programming Interface의 약자로 서로 다른 어플리케이션의 상호 통신을 위한 인터페이스입니다. 만약 API 에 대한 이해가 부족하다면 IBM 유튜브를 참고하세요. 초기 웹 아키텍처의 문제 초기 웹 아키텍처에선 공통 서버-클라이언트 구현 라이브러리 CERN libwww에 의존했습니다. 이후 웹 생태계가 비대하게 성장하면서 이에 따른 새로운 하위 아키텍처에 대한 필요성이 대두되었습니다. 기존 HTTP 프로토콜 및 기존 아키텍처와 공존할 수 있으며, 확장 가능한 아키텍처가 필요했습니다. REST (Representational State Transfer) 로이 필딩은 REST ..

컴퓨터공학 2023.08.11

[노트] 23-08-10 CS 대비 노트

개인적으로 메모한 CS 면접 관련 대비 노트 입니다. 알고리즘 분할정복 퀵소트 vs 머지소트 - (pivot, partition활용, 불안전 알고리즘) vs (동일한비율, 추가 메모리 할당) LCS(최장 부분 공통 수열) - DP를 활용하여 2차원 배열로 풀 수 있다. 네트워크 URI vs URL - 이름 vs 프로토콜 + 이름 HTTP 프로토콜 - 웹 데이터 교환의 기초이자 클라이언트-서버 프로토콜 소프트웨어 공학 RESTful API - REST 아키텍처 스타일 API Git merge vs rebase - 내부적으로 과정에 차이가 있는 브랜치 병합 관련 두 명령 코드스멜 - 프로그램 소스 코드에서 문제를 일으킬 가능성 있는 경우의 집합 (지나치게 긴 주석도 이에 포함된다) 핫스탠바이 - 동일한 서버..

컴퓨터공학 2023.08.10

[운영체제] 멀티 스레드(Multi-Thread)에 대한 이해

스레드 한 프로세스 내에서 실행되는 흐름의 단위입니다. 스레드 분류 스레드는 크게 두 가지로 나뉩니다. 사용자 수준 스레드 (ULT) : 스레드 라이브러리(ex, pthread)를 사용하므로 운영체제 구분 없이 적용 가능, 그러나 스레드의 시스템 호출 수행 시 해당 스레드를 포함한 프로세스 내 다른 모든 스레드 블록 -> 성능 상 이점 별로 커널 수준 스레드 (KLT) : 같은 프로세스 내 다른 스레드 사용 가능 -> 성능 상 이점 멀티 스레드 한 프로세스 내에서 단일 스레드가 아닌 2개 이상의 스레드를 사용하는 경우 이를 멀티 스레드로 부릅니다. 멀티 스레드는 일반적으로 성능 향상에 이점이 있습니다. 각 스레드는 각각의 다른 CPU를 활용할 수 있는데, 이런 특징은 CPU를 덜 놀게 합니다. 또한 새 ..

컴퓨터공학 2023.08.10

[디자인패턴] 어댑터(Adapter) 패턴에 대한 이해

개요 어댑터 패턴은 존재하는 클래스의 인스턴스가 다른 인스턴스로 사용가능하도록 설계하는 디자인 패턴입니다. 한국 여행객이 일본에 와서 한국산 충전기 220v를 사용하기 위해 110v로 변환하는 젠더를 사용하는데, 이 때 어댑터의 역할이 젠더의 역할과 동일합니다. 주로 제 3자가 제공하는 프로그램의 일부를 자신의 프로그램에 적용하여 사용하고자 할 때, 어댑터 디자인 패턴을 활용할 수 있습니다. 구현 예를 들어 보겠습니다. 회사 A는 애플 주식을 사는 메소드를 가진 클래스를 아래와 같이 작성했습니다. interface stock { fun buy(stockName : String) } class appleStock: stock { override fun buy(stockName : String){ print..

컴퓨터공학 2023.08.09

[디자인패턴] 싱글톤(Singleton) 패턴에 대한 이해

개요 싱글톤 패턴은 클래스의 인스턴스화를 단일 인스턴스로 제한하는 소프트웨어 디자인 패턴입니다. '인스턴스'는 프로그래밍 언어마다 지칭하는 표현이 약간 다르지만 일반적으로 정의한 클래스를 현실화한(realized) 객체를 의미합니다. '인스턴스화'는 정의한 클래스 현실화를 의미합니다. 인스턴스화한 단일 인스턴스 하나를 계속 재사용하는 방식입니다. 주로 프로그램 전반에 전역으로 사용해야 하는 경우 싱글톤 패턴을 활용할 수 있습니다. 구현 코틀린에서는 object 키워드를 사용하여 싱글톤 패턴 클래스를 작성할 수 있습니다. object DataProviderManager { fun registerDataProvider(provider: DataProvider) { // ... } val allDataProv..

컴퓨터공학 2023.08.09

[프로젝트] 강화학습 비트코인 자동 매매 봇

강화학습 비트코인 자동매매 봇 23-1학기 컴퓨터공학특강 개인 프로젝트 프로젝트 개요 분류 : 인공지능(강화학습) 일시 : 2023.03 ~ 2023.06 스택 : Python, Numpy 주제 : 강화학습을 활용한 비트코인 자동매매 봇 역할 : 개인 프로젝트 프로젝트 소개 23-1학기 컴퓨터공학특강 수업에서 개인 프로젝트로 진행한 강화학습 활용 비트코인 자동 매매 봇입니다. 자동매매 봇을 구현하기 위해 인공지능을 활용한 시도는 많습니다. 허나 강화학습을 활용한 자동매매 봇 구현에 대한 내용을 찾아보기 어려웠습니다. 평소 강화학습에 대한 흥미가 있기에 강화학습을 활용하여 자동매매 봇을 개발, 성능 개선을 개인 프로젝트로 진행했습니다. 프로젝트 기여 및 배운 점 강화학습 Q-Learning 이해 Numpy..

프로젝트 2023.08.06

[Android] 숭파이 - 숭실대 인터넷 문제 해결 앱

숭파이 숭실대학교 교내 인터넷 문제 해결 앱 프로젝트 개요 분류 : 모바일 앱 일시 : 2022.09 스택 : Swift, SwiftUI / Kotlin, Jetpack Compose 주제 : 숭실대학교 교내 인터넷 문제 역할 : iOS, android 앱 개발 프로젝트 소개 숭파이(Soongfi)는 숭실대학교 교내 인터넷 문제 해결 앱입니다. 숭실대학교 교내 무선 인터넷은 연결 시 자동 팝업되어야 할 학부생 인증 포탈이 팝업되지 않아 인터넷 인증이 불가능한 문제가 있습니다. 이 문제를 해결하기 위해 API 테스트 툴 Postman을 활용하여 숭실대학교 학부생 인증 포탈을 우회적으로 접속하는 방법을 찾았습니다. 해결 방법을 자동화하여 이를 원클릭 앱으로 개발, 배포하였습니다. 프로젝트 기여 및 배운 점 ..

프로젝트 2023.08.06