본문 바로가기

분류 전체보기

(113)
C++에서 문자열 배열 출력하기 (C 스타일 vs 현대적인 C++ 스타일) Javascript를 메인 언어로 쓰다가, 로우 레벨 언어에 대한 욕심이 생겼다. 그래서 C++을 공부하기 시작했고, 배운 것들을 하나씩 기록해 보기로 했다.Hello World 찍기부터 다른 느낌처음 따라 한 예제는 역시 hello world.std::cout Javascript라면 단순히 console.log("hello world")로 끝날 일을, C++에서는 이렇게 길다.이걸 줄이는 방법 중 하나가 namespace를 활용하는 것이다.using namespace std; cout 하지만 책이나 강좌에서 보면, using namespace std;는 지양하라고 한다. 여러 라이브러리와 파일을 동시에 다루다 보면 함수 이름이 충돌할 수 있기 때문이다. 따라서 std::cout처럼 어디 소속인지 명시하..
<하루정리> 끝. 하루정리, 첫 앱의 마지막 페이지를 넘기며이 글을 쓰는 지금, iOS 전용 앱 하루정리의 서비스를 마무리하려고 합니다.처음 이 앱을 만들 때는 단순한 바람에서 시작했습니다."내가 만든 앱이 앱스토어에 올라가 있으면 좋겠다."그 마음 하나로, 다이어리, 할 일, 가계부, 메모 등 하루를 정리하는 데 필요한 기능들을 차곡차곡 쌓아 만들었습니다.아침이나 저녁, 잠깐이라도 앱을 켜서 하루를 돌아보고, 소비를 기록하며, 자신을 정리하는 그런 작은 루틴의 도구가 되길 바랐습니다.누군가의 하루를 함께하는 동반자 같은 앱이 되기를.하지만, 앱을 만드는 것과 운영을 지속하는 것은 전혀 다른 이야기였습니다.앱스토어에 출시하기 위해 연간 들어가는 애플 개발자 계정 비용과 AWS EC2로 서버를 운영하면서 고정적인 비용이 들..
렌더링 관점에서 바라본 SPA방식(React 와 jQuery비교) 나는 현재 jQuery 기반 프레임워크를 사용해 프론트엔드 개발을 하고 있다.팀과 프로젝트의 특성상 오랜 기간 이 방식에 익숙해져 있었고, 별다른 불편 없이 개발을 이어왔다.하지만 웹 프론트엔드의 흐름은 이미 SPA(Single Page Application) 중심으로 옮겨갔고, 그 중심에는 React가 있다. 개인적으로 토이 프로젝트를 하거나 새로운 UI를 시도할 때는 자연스럽게 React를 선택하게 된다.최근에는 Next.js를 공부하면서 React 생태계에 대한 이해도 점차 넓어지고 있다.그래서 이번 글에서는 SPA의 대표 예로 React를, MPA의 예로 jQuery를 비교해 보려 한다. React의 개념적인 장점들은 이제 익숙하다. 예를 들어, 가상 DOM을 통한 렌더링 효율 향상상태 관리를 기..
IOS 앱 출시 <하루정리> - 개발 기록 프로젝트 구조Server : AWS, NestJS, Pm2DB : Mysql, TypeORMCI/CD : Github actionsPackage Manager : PnpmClient : React, React-Native  앱은 React-Native 안에 react-native-webview를 얹어 react로 개발한 클라이언트 화면을 보여주는 형태의 애플리케이션입니다. 네이티브 앱으로 개발하지 않은 이유는 심사에 소요되는 시간으로 인해 빠른 수정과 배포를 할 수 없다는 점이 불편하게 다가왔습니다. 그리고 추후에는 웹 서비스를 제공할 수도 있기 때문에 이렇게 개발했지만 역시 웹 개발과 네이티브 개발을 동시에 해야 하는 점이 귀찮게도 느껴졌습니다.  아쉬웠던 점1. eas 빌드 과정React-native..
IOS 앱 출시 <하루정리> 는 하루의 일정과 메모, 가계부를 정리할 수 있는 앱입니다. https://apps.apple.com/kr/app/%ED%95%98%EB%A3%A8%EC%A0%95%EB%A6%AC/id6740744415 ‎하루정리‎메모 : 메모를 생성하고 검색할 수 있습니다. 일정 : 일별로 일정을 관리할 수 있습니다. 가계부 : 일별로 수입과 지출을 관리할 수 있습니다.apps.apple.com"앱 스토어에 나의 앱이 있었으면 좋겠다" 라는 생각을 가지게 되면서 IOS 개발자 등록(연 100달러)을 마치고 약 6개월 정도 공들여서 개발했습니다. 앱 소개홈화면홈에서는 모든 기능을 한 눈에 볼 수 있습니다. 날씨와 일정, 메모, 가계부를 한 눈에 확인할 수 있습니다.하루날씨기상청 단기예보 정보를 공공데이터포털 API로 조..
Nodejs 메모리 leak 현상 해결하기 Push 서버는 고객에게 푸시 알림으로 전달할 메시지를 메인 서버로부터 전송받아 Google FCM(Firebase Cloud Messaging)을 통해 사용자에게 전송하는 역할을 합니다. 메인 서버는 보안을 위해 방화벽 내부에 위치하고 있기 때문에, 이러한 미들웨어 성격의 서버가 필요합니다. 서버를 처음 구축했을 당시에는 하루 평균 1만~3만 건의 데이터를 처리하면 충분했기 때문에 성능에 큰 신경을 쓰지 않았습니다. 대신 유지보수 측면에서 유리하도록 코드를 작성했고, 여러 라이브러리를 적극적으로 활용하여 구현했습니다.하지만 최근 회사가 푸시 알림을 활용한 적극적인 마케팅 전략을 도입하면서, 하루 처리해야 하는 메시지의 양이 급격히 증가했습니다. 이에 따라 한 번에 수십만 건의 트래픽이 몰리는 상황이 발..
[flask-cors] 재설치 Flask 로 백엔드를 구성했고 React로 프론트엔드를 구성했는데 어김없이 'cors' 이슈가 발생했습니다 ..  Flask 에는 flask-cors 패키지가 있어 다음처럼 해주면 모든 요청에 대한 CORS를 방지할 수 있습니다.app = Flask(__name__)CORS(app, resources={r"/*": {"origins": "*"}}) 하지만, flask-cors를 설치할 때 다음 명령어로 정확하게 설치해야 합니다.pip install Flask-Cors 저는 "pip install flask_cors" 로 해서인지 아무리해도 해결이 안되길래 "pip uninstall flask_cors & pip install flask-cors" 로 해도 해결이 안됐고 결국 다시 설치해주니 해결이 됐습..
개발자 도구 방지 코드 우회하기 가끔 개발자 도구를 차단하는 사이트가 존재하는데 위와 같은 방법으로 대부분 처리를 합니다. 이 경우 ctrl + shift + i 를 통해 개발자 도구를 열게되면 debugger; 가 실행되는데 그 때allow = 9999999999;window.removeEventListener('blur', detectDevTool);window.removeEventListener('focus', detectDevTool);window.removeEventListener('mousemove', detectDevTool);window.removeEventListener('resize', detectDevTool);window.removeEventListener('load', detectDevTool);다음처럼 처리하면..

반응형