프론트엔드 개발자 중규리 입니다 ദി ᷇ᵕ ᷆ ) 자세히보기

전체 글 115

[EAS-iOS Build] expo 빌드 + 제출 과정에서 발생하는 다양한 에러 대응 방법

🚨 에러 종류EAS 빌드 과정 중 발생한 에러 [Application Loader Error Output]: Asset validation failed SDK version issue. This app was built with the iOS 16.1 SDK. All iOS and iPadOS apps must be built with the iOS 17 SDK or later, included in Xcode 15 or later, in order to be uploaded to App Store Connect or submitted for distribution.Fastlane pilot failed fastlane exited with non-zero code: 1 Failed to submit ..

개발/frontend 2024.05.05

RabbitMQ(2) - RabbitMQ, GemFire 개념 및 등장 배경

🥸 모놀리식 아키텍쳐 하나의 어플리케이션에 여러가지 비즈니스 서비스가 번들되는 형태 전통적인 모놀리식 아키텍쳐에선 개발팀의 규모가 컸다. 결합도가 너무 높았음 (리스크 높음) 개발자간 지식을 공유하는 것도 어려웠다. 데이터 거버넌스 세팅을 공유하는 것도 레거시 기술에 국한될 수 밖에 없음 신기술 도입이나, 레거시에 알맞는 개발자를 찾기도 어려움 😎 모던 소프트웨어 아키텍쳐 독립적인 각각의 Micro Service를 구축해서, 상호 작용하도록 만든 형태 각각의 서비스는 본 서비스에 맞는 데이터베이스를 가져야함 비즈니스 서비스 간 결합도가 낮아짐 독립적으로 개발되고, 테스트되고, 배포되기 때문에 빠르다 데이터가 늘어나는 상황에서 서비스를 스케일업하는 데에 강점을 가짐 테스트나 배포도 마찬가지 인력이나 신기술..

기술/학습 2024.04.17

RabbitMQ(1) - RabbitMQ 기초, Kafka와 차이점

이번에 회사에서 3일간 RabbitMQ 교육을 다녀오게 되었다. 내일부터 시작되는 교육 전, 사전에 학습한 내용을 정리해보았다. 기본 메시지 큐 RabbitMQ, Redis, Kafka.. 모두 메시지 큐 기반의 시스템이다. 메시지 큐란, 프로세스 또는 프로그램 인스턴스가 데이터를 교환할 때 사용하는 통신 방법이다. 크게 정보를 제공하는 Producer, 정보가 잠시 담겨있는 Queue, 정보를 제공받는 Consumer 가 있다. 메시지 큐의 장점은 아래와 같다. 비동기(Asynchronous) Queue가 있기 때문에 비동기 처리하며 병목현상 방지 가능 낮은 결합도(Decoupling) 정보를 제공하는 서비스와 받는 서비스가 분리되며 결합도가 낮아진다. 확장성(Scalable) 다수의 프로세스가 메시지..

기술/학습 2024.04.14

백준 16168 퍼레이드 Python

🐸 문제 정보 16168번: 퍼레이드 첫 번째 줄에 지점의 개수 V, 연결 구간의 개수 E가 주어진다. (1 ≤ V ≤ E ≤ 3000) 이후 E개의 줄에 걸쳐 각 연결 구간이 연결하는 두 지점의 번호 Va, Vb가 공백을 사이에 두고 주어진다. (1 ≤ Va, www.acmicpc.net 🤖 알고리즘 오일러 경로 (유니온 파인드 + 그래프 탐색) ⏱️ 풀이 시간 60m+ (중간에 오일러 경로의 조건을 찾아보느라 길어졌다.) 📝 풀이 오일러 경로는 한 붓 그리기와 같다. 오일러 경로가 성립하기 위해서는 총 두가지 조건에 만족해야한다. 모든 정점이 연결되어있어야한다. 차수(연결된 노드 수)의 두 규칙 중 한개를 만족해야한다. 모든 노드의 차수가 짝수이다. 두 노드의 차수는 홀수, 나머지 노드는 짝수이다. ..

PS/문제풀이 2024.02.15

백준 21314 민겸 수 Python

🐸 문제 정보 21314번: 민겸 수 민겸 수 하나가 주어진다. 민겸 수는 대문자 M과 K로만 이루어진 문자열이며, 길이는 3,000을 넘지 않는다. www.acmicpc.net 🤖 알고리즘 그리디, 구현 ⏱️ 풀이 시간 12.59m 📝 풀이 예제를 직접 손으로 그려보면 그리디라는 것을 쉽게 파악할 수 있었다. 각각 최대값과 최소값을 찾는 순서는 아래와 같다. 둘다 기본적으로 주어진 입력에 대해 앞에서부터 순회한다. 최대값 M이 나오면 stack에 담는다. K가 나오면 K를 포함한 stack의 길이(n) 만큼 5 * (10 ^ (n - 1))를 문자열로 바꿔 정답 문자열에 더해준다. 마지막에 stack에 담겨진 M을 모두 1로 치환하여 정답 문자열에 더해준다. 최소값 M이 나오면 stack에 담는다. K..

PS/문제풀이 2024.02.15

백준 11279 최대 힙 Python

🐸 문제 정보 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 🤖 알고리즘 힙 ⏱️ 풀이 시간 06.24m 📝 풀이 heapq를 이용하면 간단히 풀 수 있는 문제였다. 파이썬 heapq는 최소힙 구조이기 때문에, 음수를 붙여서 저장하고 출력할때 다시 음수를 붙여서 원래대로 바꾸는 형태로 구현했다. 🧑‍💻 나의 답 # pypy3 import sys import heapq input = sys.stdin.readline q = [] for _ in range(int(input().rstrip..

PS/문제풀이 2024.02.14

termterm : 가설 검증과 파일럿 프로젝트에 최적화된 마이크로 프론트엔드 환경 구축하기

왜 갑자기 리팩토링? ‎termterm ‎termterm은 IT 산업 전반에서 사용되는 용어를 정리하고 공유하며 학습할 수 있도록 하는 서비스예요. 처음 사회생활을 시작할 때 또는 프로젝트를 하며 우리는 각자의 전문 분야를 가진 다양한 apps.apple.com 기존에 expo-go 기반으로 개발한 termterm의 규모가 커지면서, 가설 검증의 플로우를 빠르게 하기 위한 새로운 OKR로 "웹뷰 기반의 하이브리드 앱으로 리팩토링하기"를 설정하였습니다. 소규모 팀인 termterm 팀에서는 환경의 문제로 인해 적용하지 못했던 각종 문제(푸시, 결제, GA 등)를 해결하고 파일럿 프로젝트에 빠르게 도전하여 실 사용자의 반응을 확인하기 위한 수단이 필요한 상황이었습니다. 때문에 오로지 React-Native ..

개발/frontend 2024.02.14

백준 1027 고층 건물 Python

🐸 문제 정보 1027번: 고층 건물 세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작) www.acmicpc.net 🤖 알고리즘 수학 ⏱️ 풀이 시간 15.12m 📝 풀이 단순한 스택 문제라고 생각했는데, 기울기를 비교해야하는 수학 문제였다. 오히려 스택보다 조건 자체는 쉽다. 오른쪽으로 이동하면서 이전까지 나왔던 최대 기울기보다 큰 기울기가 나와야만 1개를 추가해준다. A와 B 빌딩 서로 볼 수 있기 때문에 두 요소 모두 1을 추가해야한다. 이런식으로 모든 요소를 탐색하면 되는 문제였다. 🧑‍💻 나의 답 # pypy3 import sys input = sys...

PS/문제풀이 2024.02.12

백준 1342 행운의 문자열 Python

🐸 문제 정보 1342번: 행운의 문자열 민식이와 준영이는 자기 방에서 문자열을 공부하고 있다. 민식이가 말하길 인접해 있는 모든 문자가 같지 않은 문자열을 행운의 문자열이라고 한다고 한다. 준영이는 문자열 S를 분석하기 시작 www.acmicpc.net 🤖 알고리즘 백트래킹 ⏱️ 풀이 시간 14.41m 📝 풀이 처음에 순열로 풀어야하는 문제라고 생각해서... 도대체 어떻게 풀어야하지?! 고민했는데 다시 천천히 생각해보니 그냥 Counter 써서 뒤에 뭐올지 백트래킹해도 될 것 같다고 느꼈다. 이유는 문자열 길이가 10까지밖에 안돼서... 이미 예제에 나와있는 경우가 최악의 경우였다. 🧑‍💻 나의 답 # pypy3 import sys from collections import Counter input =..

PS/문제풀이 2024.02.12

백준 17141 연구소 2 Python

🐸 문제 정보 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이러 www.acmicpc.net 🤖 알고리즘 BFS ⏱️ 풀이 시간 30.20m 📝 풀이 그냥 BFS로 절대 통과 못할 줄 알았는데... 시간이 간당간당하게 맞은 것 같다. 구현이랑 섞인 BFS의 대표적인 문제 같은 느낌이었다. 나의 경우, 바이러스를 올릴 수 있는 노드와, 벽의 노드를 입력 때 미리 저장해두고 바이러스를 올릴 수 있는 노드에서 m개 만큼의 조합으로 BFS를 돌린 후, 벽의 노드를 제외한 노드가 모두 방문처리 되었는지 확인했다. 코드가 꽤 복잡하게 짜여진 것 같..다.. ..

PS/문제풀이 2024.02.12