10일 전 · 익명 님의 새로운 댓글
신입 백엔드 포트폴리오 이렇게 작성하는게 맞을까요???
안녕하세요 백엔드 직군을 준비하는 신입 개발자입니다. 포트폴리오를 작성했는데, 다음과 같이 구성을 했습니다. 아래는 대략적인 내용 구성입니다. 제목 : "스스로 문제 해결하는 " 신입 개발자 <팀 프로젝트> - Out Of Memory : unable to create native thread 크롤링 과정 thread가 500개 정도 비정상적으로 생성되는 것을 visualVM으로 분석하고, 모니터링 로그를 분석한 결과 데몬 스레드가 백그라운드에서 종료되지 않음을 발견함. 따라서, 자원 회수 및 공통 객체를 싱글톤으로 등록해서 스레드 수 40~60개로 유지 -> 운영 문제 해결 <개인 프로젝트> - Accept 큐 overflow해결 10000명 부하테스트에서 에러율 2~3% 포착함. 로그 분석한 결과, TCP Zerowindow로 서버 버퍼 오버플로우로 추측 톰캣 accept 큐 100 -> 200으로 증가하니 에러율 0% -> 문제 해결 - redis 캐싱 웹 사용자 80%가 최신글에만 방문한다는 논문을 발견함. 따라서, 이에 맞게 redis를 사용해서 해당 page 부근만 캐싱을 함. 부하테스트 결과 throughtput 40% 개선, latency 30% 개선 포트폴리오를 이런식으로 내용 구성을 했는데 괜찮을까요??? 다른 분들 포트폴리오를 보니 기능 구현이 위주던데 이런식으로 구성해도 괜찮을지 솔직히 잘 모르겠습니다... 분량은 7장 정도입니다. 조언 부탁드립니다.
개발자
#포트폴리오
#백엔드
#java
#신입
#이력서
답변 2
댓글 2
조회 153
5달 전 · 문종호 님의 새로운 답변
스프링부트 배포 root 와 유저
우분투 서버를 하나만들어서 배포를 하려고합니다. aws는 아니고 자체적으로 os를 설치해서 이용하게되었는데 root에서 jar파일을 nohup & 으로 백그라운드 실행시켰는데 root가 로그아웃을 하니 프로젝트도 같이 다운됩니다. 여러가지 시나리오를 해봤는데 왜이러는건지 어떻게해야 실행시킨 프로젝트를 유지할수있을까요? 시도해본 시나리오 1. 사용자 user 와 root가 동시에 접속해서 duser가 프로젝트를 실행시키고 duser가 접속을 종료시 - 프로젝트 유지 - root가 로그아웃하면 프로젝트가 내려갑니다 2. 사용자가 먼저 접속해서 프로젝트를 백그라운드로 실행시킨후 root가 이후에 접속했다가 로그아웃한경우 - 프로젝트 유지 3. root 로 접속해서 user로 변경후 프로젝트 실행시 user에서 root로 변경했을때는 프로젝트가 유지되고 root를 로그아웃하면 프로젝트도 종료됩니다. 어떻게 접속했다가 로그아웃해도 프로젝트가 내려가지않게 하고싶습니다.
개발자
#spring-boot
#server
#ubuntu
#배포
답변 1
댓글 0
조회 34
9달 전 · 익명 님의 질문
background mode Location 질문 입니다.
안녕하세요. 선배님들 질문이 있습니다. ios Background modes에 location를 이용해서 앱을 죽이지 않고 계속 백그라운드에서 프로세서를 처리 하게 처리를 하였습니다. 하지만 최근에 확인해 보니 간헐적으로 백그라운드에서 처리가 안되는 문제를 확인 하였습니다. 테스트를 하는중인데 showsBackgroundLocationIndicator를 선언하면 location이 스캔이 계속 돌아가는거 같습니다. 혹시 자세히 아시는분 있으시면 코멘트 부탁 드립니다. 좋은 하루 되시기 바랍니다.^^ var locationManager: CLLocationManager = .init() override init() { super.init() setup() } func setup() { locationManager.delegate = self locationManager.pausesLocationUpdatesAutomatically = false locationManager.allowsBackgroundLocationUpdates = true locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers locationManager.distanceFilter = 99999 } // end of setup func backgroundTaskStart() { isRuning = true locationManager.startUpdatingLocation() locationManager.startMonitoringSignificantLocationChanges() } // end of backgroundTaskStart
개발자
#ios
답변 0
댓글 0
조회 30
9달 전 · 문정동개발자 님의 새로운 답변
Flutter 백그라운드 상태일 때 위치정보 가져오기(앱 사용중 허용)
안녕하세요 현재 Flutter로 앱 개발중에 있습니다. 현재 개발중에 있는 기능 중 하나가 사용자에게 앱 사용중에만 허용 권한을 받고 사용자가 백그라운드로 앱을 보냈을 때 해당 사용자의 위치 정보를 수집해야 하는 상황입니다 위치 정보 항상 허용일때는 잘 되지만 앱 사용중일 때만 허용으로 권한을 설정하면 위치 정보가 가져와지지 않네요 다른 앱에서는 해당 기능을 구현하였는데 도저히 감이 오지 않습니다 힌트를 주시면 정말 감사하겠습니다!
개발자
#flutter
#위치정보
답변 1
댓글 0
조회 156
일 년 전 · 이윤호 님의 새로운 답변
webview_flutter 안드로이드 cookie 질문이요...
회사에서 부득이하게 앱개발자 없이 앱개발을 해야하는 상황이라 웹으로 만들고 flutter 웹뷰를 만들었습니다. iOS에서는 쿠키에 jwt가 저장되서 자동로그인 기능이 잘 작동되고 있는데요, 안드로이드에서는 cookie를 따로 관리를 해줘야 한다고 하더라구요... 그래서 webview_cookie_manager 와 flutter_secure_storage를 이용해서 onPageFinished가 될 때 main page이면 cookieManager.getCookies로 jwt를 가져오고 storage.write로 쿠키를 저장해 주고 있습니다. 그리고 initState()할때 Future<void> _loadStoredCookies() async { final jwt = await storage.read(key: 'jwt'); print('jwt : $jwt'); if (jwt != null) { final cookieManager = WebviewCookieManager(); await cookieManager.setCookies([ Cookie('jwt', jwt) ..domain = "메인페이지" ..path = "/" ..secure = true ..httpOnly = true ]); bool hasCookies = await cookieManager.hasCookies(); print('쿠키가 존재하는가? $hasCookies'); } } 이렇게 쿠키를 확인하고 쿠키를 set해주는데 백그라운드에서 앱을 완전히 종료시키고 다시 실행하면 쿠키가 사라지더라고요... 왜 그런건가요...??
개발자
#flutter
#cookie
#android
답변 1
댓글 0
조회 278
일 년 전 · 익명 님의 새로운 댓글
[React Native] 아이폰에서 푸시 메시지가 앱을 켤 때에만 뜰 때가 있어요
안녕하세요 react-native로 개발 시, 푸시 메시지 관련해서 질문이 있습니다. 저는 지금 푸시 메시지 기능 구현을 위해 "@react-native-firebase/app": "^18.7.3", "@react-native-firebase/messaging": "^18.7.2", "@notifee/react-native": "^7.8.2", 를 사용 중인데요. 그런데 아이폰에서 앱이 백그라운드 상태일 때(앱이 아예 종료된 상태까지 포함) 푸시 노티가 잘 보이다가도 어떨 때는 앱을 켜야만 그제서야 푸시 노티도 함께 보이는 현상이 발생하고 있습니다. 문제는 동일한 아이폰 기기인데도 간헐적으로 이런 현상이 발생한다는 것인데요. 정확히 어느 조건일 때 이런 현상이 발생하는지 아직 찾지 못한 상황입니다. 혹시 비슷한 문제를 해결해보신 분 계실까요? 관련 링크를 첨부드립니다. https://github.com/invertase/notifee/issues/990
개발자
#react-native
답변 1
댓글 1
조회 172
일 년 전 · 익명 님의 질문 업데이트
.aab 설치 실행 시 firebase 알림이 수신이 안되는 현상
리즈 빌드 apk 파일 설치시에는 백그라운드, 포그라운드 알림이 수신되지만 플레이 스토어에 올린 .aab 파일 실행 시에는 왜 알림 수신이 안될까요? [참조] https://rnfirebase.io/messaging/usage
개발자
#fcm
#firebase
#reactnative
답변 0
댓글 0
조회 41
일 년 전 · 익명 님의 질문 업데이트
react query가 useEffect를 통한 setState보다 빠른 렌더링을 보여주는 이유는 무엇때문일까요?
버튼을 누르면 QR코드를 받아오는 api를 재호출하여 Qr코드 이미지를 리렌더링 시키려 합니다. react query를 사용하는 것이 useEffect와 setState를 사용해서 api의 값을 화면에 그려주는 것보다 훨씬 속도가 빠르더군요. (react query는 refetch를 통해 api를 재호출 했습니다.) useEffect와 setState를 사용한다면 setState의 배치 처리 과정으로 인해, 즉시 값이 바뀌지 않고 비동기적으로 동작한다고 알고 있습니다. 하지만 react query의 어떤 동작 원리때문에 useEffect와 setState보다 빠르게 처리되는건지는 잘 모르겠습니다. 구글링으로 찾아보니 refetch는 백그라운드에서 처리된다고 하는데 백그라운드의 개념이 정확하게 이해가 되지 않습니다. 제가 추측하기론, react query를 사용하면 api의 응답값을 받자마자 data를 사용할 수 있습니다. setStatef로 state를 변경해주는 과정이 필요 없습니다. 그렇기에, useEffect와 setState를 사용한 것보다 더욱 빠른 렌더링을 보여줄 수 있는 것 같은데 맞을까요??
개발자
#react
#react-query
#setstate
답변 0
댓글 0
추천해요 1
조회 157
일 년 전 · 박상범 님의 질문 업데이트
next.js 서버 인스턴스간 isr memory 공유 방법
배포 환경: google cloud run 환경: next v14.0.3 app router 컨테이너 인스턴스 수가 10대인 상황에서 time-based revalidate or tag revalidate를 했을 때 next 서버 백그라운드에서 요청한 사용자의 인스턴스에만 재검증 요청을 보내고 있습니다. 인스턴스가 여러대 일 때, next 서버에서 모든 인스턴스에 동일한 재검증 요청을 보내게 하는 방법은 없을까요..?
개발자
#next.js
답변 0
댓글 0
조회 72
2년 전 · 박태호 님의 새로운 답변
ios 다른 앱의 notification을 확인할 수 있나요?
제가 iOS 앱을 개발하고 싶은데요. 요구사항이 은행앱에서 오는 푸시 알림을 캐치해서 그 내용을 확인하여 백그라운드에서 특정 동작을 수행하는 앱입니다. 1. iOS에서 다른 앱의 푸시 알림을 캐치하는 게 가능할까요? 2. 캐치가 가능하다면 그 내용에 따라 특정 API 호출하는게 가능할까요? 고수님들의 조언 기다립니다🙇♀️
개발자
#ios
답변 1
댓글 0
조회 239
2년 전 · 익명 님의 새로운 댓글
프론트 앤드 미디어쿼리를 사용한 ios반영
프론트 앤드 신입입니다 미디어 쿼리를 사용해서 모바일과 pc 버전을 구현하고 있습니다. pc와 안드로이드로 보면 제가 의도한대로 잘 보이는 것이 ios는 뭔가 달라서 고생 야무지게 하고있습니다.... d 😭😭😭😭😭 문제점 네모칸이 정사각형이어야하는데 직사각형이된다. 백그라운드 색상이.. 구분이 안갈정도로 옅다 코드는 간략하게 아래와 같습니다 ```ts <table className="order-2 border-separate border border-solid border-crossline-gray w-fit md:mx-0 md:row-span-4 md:col-span-2"> <tbody> {map.map((cols: string[], colIndex: number) => { return ( <tr key={uuidv4()}> {cols.map((space: string, rowIndex: number) => { return ( <td className={`relative border-2 md:border-[3px] border-solid border-crossline-gray `} > <p className="absolute m-1 md:m-2"> {crosswordIdx()} </p> <input className={`m-0 w-10 h-10 xs:w-11 xs:h-11 sm:w-12 sm:h-12 md:w-16 md:h-16 text-center `} } /> </td> ); })} </tr> ); })} </tbody> </table> ``` 읽어봐주셔서 감사하고 도움 주시면 감사하겠습니다
개발자
#ios
#media-query
답변 2
댓글 2
보충이 필요해요 1
조회 85
2년 전 · 익명 님의 질문 업데이트
Aosp 관련 책을 추천부탁드립니다
제가 프로젝트때문에 soc 와 주변회로를 임의로 구성해서 aosp 를 직접 커스터마이징을 하고 항시 돌아야되는 백그라운드 서비스 및 HAL 접근하여 연결된 주변기기 (i2c, spi 등으로) 제어하는 어플리케이션을 만들어야하는데 참고할만한 자료 혹은 책이 있을까요 조언부탁드립니다. Ps. Soc 군은 nxp, qualcomm, exynos 중 하나를 쓸 예정입니다
개발자
#aosp
#bsp
#customization
#embedded
#iot
답변 0
댓글 0
조회 85
2년 전 · 최원영 님의 새로운 댓글
기술 스택이 맞지 않아도 지원하는 것이 좋은가요?
취준생인데 원티드에서 이력서를 보내 보고 있습니다. Java와 Spring으로 프로젝트를 했으니 일단은 기술 스택이 맞는 곳을 지원하고 있는데요. 여기저기서 받은 공통적인 조언이 아래의 두 가지였습니다. 1. 경력직 공고 (2년차 이하)도 무조건 써라 2. 기술 스택에 구애받지 않고 백엔드기만 하면 무조건 써라 1번 같은 경우는 일단 경력 공고라도 내 보는 게 제가 현재 할 수 있는 최선이고 판단은 회사가 하는 것이라는 점에서 이해가 됩니다. 그런데 2번 같은 경우는 이해가 잘 되지 않습니다. 제가 Java와 Spring 프로젝트를 했으니 제 이력서나 포폴에서 그 부분 외에 질문이 나올 게 없다고 생각이 되어서요. 만약 nodejs나 python 같은 질문이 나오면 저는 전혀 답변을 못 할 것입니다. 실제로 전에 금융권 면접을 봤었는데 c 관련 질문만 엄청 물어보시더라고요. 저는 거의 대답을 못 했고요. 저 조언의 백그라운드가 궁금합니다. 완전히 다른 기술스택을 쓰는 공고에 지원해서 붙었다면, 왜 서류를 합격시키는 것일까요? 그리고 어떤 질문을 면접에서 물어보게 될까요?
개발자
#java
#spring
답변 7
댓글 3
추천해요 33
조회 4,514
2년 전 · 익명 님의 질문 업데이트
상품 등록 - 키워드 알림 구현하는 방식에 대한 조언을 부탁드립니다!
안녕하세요! 일단 저는 비개발 직군인 그로스 PM 입니다 :) 저희 앱서비스는 React Native 프레임워크에 Node.js 언어를 사용 중인데요! 유저 간에 서로 상품을 거래할 수 있는 서비스입니다. 유저가 키워드 알림을 등록해 놓으면 -> 해당 키워드가 포함된 제목을 가진 상품 게시글이 등록되었을 때 푸시 알림을 보내고 싶습니다. (User ID - Keyword 테이블 구성 필요) 그런데 문제는 상품 게시글이 등록될 때마다 유저-키워드 테이블을 검사하면 서버에 과부하가 오지 않을까 하는 걱정이 있습니다. 그리고 현재 저희 서비스에는 Elasticsearch 엔진이 적용되어 있지 않습니다. 지금까지 조사한 바로는, 1. 유저가 키워드 알림으로 등록한 텍스트를 '가변 배열' 안에 넣어 둔다. 2. 상품 게시글이 등록될 때, 타이틀 텍스트 정보만 'Notification Center'에 등록한다. 3. 키워드가 들어 있는 가변 배열의 요소를 돌면서, 어떤 키워드가 Notification Center를 통해 받은 텍스트 속에 있는지 확인한다. 4. 해당하는 키워드가 발견된다면 매칭되는 유저에게 푸시 알림을 보낸다. 제가 '가변 배열'과 'Notification Center'에 대한 이해가 부족하다보니, 이렇게 하면 서버 과부하 문제가 좀 덜어지는 게 맞는지 판단이 어렵습니다... 혹은 작업을 백그라운드에서 하는 방법도 있는 것 같은데요, 게시글이 발행되었음을 알리는 이벤트를 생성한 다음, 백그라운드 작업(큐 or 스케줄러)에서 해당 이벤트를 가져와서 처리합니다. 이렇게 하면 서버 부하가 완화되고 알림 전송 시간도 최적화할 수 있다고 합니다. 개발자 분들의 시선에서 납득이 가는 솔루션일까요?! 혹은 더 간단한 방법이 있는지 알려주셔도 좋을 것 같습니다. 긴 글 읽어주셔서 감사합니다 :)
개발자
#react-native
#node.js
#app-dev
답변 0
댓글 0
추천해요 1
조회 373
3달 전 · 𝙍𝙞𝙘𝙝𝙖𝙧𝙙 님의 답변 업데이트
데이터 엔지니어가 되기 위한 여정 관련 조언을 구합니다!
안녕하세요. 최근 취업 및 진로에 관련된 고민을 겪고 있는 4학년 소프트웨어학과 전공생입니다. 최근 데이터 엔지니어 커리어에 관심이 생겼는데 주변에 이와 관련해서 조언을 구할 분들이 없더군요... 주된 고민은 '데이터 엔지니어로서 커리어를 시작하려면 어떻게 해야 하는가?' 인데 제 백그라운드를 고려한 조언은 아닌지라 저에게 맞는 조언을 받으면 좋을 것 같아 글을 남기게 되었습니다. [활동이력 및 계획] - 대학교 2학년 때, 연구에 흥미가 생겨 데이터 마이닝 관련 연구에 참여했었고 3학년 때는 해외 연구도 관심이 생겨 1~2개월 정도 해외 대학에서 진행하는 NLP 관련 연구에 참여해 보기도 했었습니다. - 개발 경험도 해보고 싶어 작년 겨울 기회가 되어 인공지능 관련 AI 스타트업에서 퍼블릭 클라우드 서비스 구현 관련 프로젝트의 백엔드 인턴으로 활동했습니다. - 최근 계획으로는 학교에서 지원해주는 단기 부트캠프에 참가하려고 합니다.(데이터 관련 부트캠프는 아니라서 다른 기회가 생기면 어떨지는 모르겠습니다) 그리고 관심이 가는 오픈소스 SQL, DB 프로젝트를 발견해 여유가 되면 기여를 해보려고 합니다. [사용 가능한 기술 스택] - 언어: python, rust - DB: MySQL, PostgreSQL - 개발환경: Ubuntu - 인프라: docker, aws - 프레임워크: Django, Serverless, 더 있긴 하지만 자신이 없거나 프로젝트 및 실무에 적용해본 경험은 없어서 이 정도네요... 위와 같은 상황에서 다음과 같은 의문 및 고민들이 생기더군요. 1. 데이터 엔지니어가 되기 위해서는 어떤 활동을 해야 하고 어떻게 포트폴리오를 준비해야는지 2. 4학년 졸업과 동시에 취업을 하는 것을 목표로 하고 있는데 현실적으로 어려운 것인지 3. 시니어 엔지니어가 주니어들에게 요구하는 가장 중요한 역량이 무엇인지 4. 데이터 엔지니어는 일에 관점에서 주로 어느 부분에서 어려움을 느끼는지 5. 차후 데이터 사이언티스트로 커리어를 이직하는 케이스가 있는지 그리고 많이 어려운지 6. 어느 정도 연구의 성격도 띄는 일이 존재하는지(사실 개발도 하면서 연구 느낌의 일도 해볼 수 있다고 생각되어 관심을 갖게 된건데 만약 아니라면 음....) 현재 저와 같이 데이터 엔지니어가 되기 위해 고군분투 중이신 분들의 조언도 좋고 현직에 계신 엔지니어의 분들의 조언은 해주시면 정말 감사하겠습니다!
개발자
#커리어
#데이터
#개발자_진로
#조언
#진로고민
답변 1
댓글 0
조회 638
2년 전 · 커리어리 AI 봇 님의 새로운 답변
React native expo axios통신 관련 질문 남깁니다!
Expo 에서 axios를 사용해서 서버와 통신하는데, 외부 앱에서 인증을 받아야하는 로직이 포함되어 있어서, 인증을 받고 돌아오면 ERR_BAD_RESPONSE가 돌아옵니다. 어떻게 해야 앱이 백그라운드로 갔을 시에도 axios 통신을 유지할 수 있는지 질문 드립니다. 감사합니다.
개발자
#react-native
#expo
#axios
답변 1
댓글 0
조회 348
2년 전 · 커리어리 AI 봇 님의 새로운 답변
데이터 수집 시스템 조언 부탁드립니다..
안녕하세요. 현재 데이터분석가 인턴으로 회사에 들어간지가 한달이 조금 넘었습니다. 현재 회사에서 분석이 아닌, 직접 데이터를 수집하는 작업을 하고 있습니다. 제가 분석만 하다보니, 데이터를 수집하고 저장하는 작업을 처음해보고 사수도 따로 없다보니 조언을 구할 곳이 없어서 이렇게 게시물로 조언을 요청드립니다.. 지식이 부족해 다소 어렵게 설명을 드려도 이해 부탁드리며, 제 글을 보고 “저 친구는 왜 저렇게 비효율적으로 하지? 이렇게 하면 좋을텐데”라는 생각이 드신다면 바로 댓글이나 쪽지 부탁드립니다. 제가 처음 올려봐서 쪽지 기능이 있나 모르겠네요.. 먼저, 간단하게 제가 진행하고 있는 데이터 수집 절차를 설명드리겠습니다. 1. 컬럼이 한개인 4GB가 조금 넘는 데이터를 수집 코드에 불러와야 한다. 해당 데이터에는 도메인 주소가 담겨 있다. 2. 내 수집 코드는 불러온 데이터를 한행씩 조회하면서 수집을 진행한다. 3. 한 행에 있는 도메인 주소에 순서대로 http 접속을 해서 해당 도메인 주소가 사전에 설정한 특정 조건을 만족하면, 해당 도메인 주소와 사이트에 접속해서 추출한 정수형 값을 DB에 저장한다. 4. 즉, 4기가의 데이터를 불러와 한 행씩 조회해가면서 실시간으로 데이터를 db에 수집하는 코드다. 5. 24시간 동안 코드를 돌리는 수집 예상 기간은 3개월 정도이다. 다음으로는 조금 구체적인 진행 사항을 말하겠습니다. 밑에서부터 길어지니, 바쁘신 분들은 위에 주요 절차만 보시고 조언 주시면 감사하겠습니다. 1. 파이썬만 사용할 줄 알기 때문에, 파이썬을 사용하여 class로 만들어 수집 코드를 짰다. 2. 데이터의 양이 많아서 메모리 부족 오류가 빈번하게 나타나, 하둡과 아파치 스파크를 이용해봤다. 내가 조회할 데이터 파일을 하둡 HDFS에 업로드 한다음에, 아파치 스파크 클러스터를 구축했다. 그리고, pyspark 모듈을 이용해 파티션을 나눠 데이터를 불러왔다. 파티션으로 받아온 값을 리스트로 변환하여 순서대로 해당 도메인 주소로 접속하는 반복문을 진행하면서 데이터를 수집했다. 즉 파티션으로 데이터를 쪼개서 1번 파티션부터 n번 파티션까지 각각 파티션 내부에 도메인 주소 리스트가 반복문을 진행된다고 보면 된다. 각 파티션이 다른 파티션으로 전환되는 과정도 반복문으로 처리했다. 하나의 파티션 마다 내가 만든 class(도메인 리스트를 인자로 받는다)가 한번씩 실행된다고 보면 된다. 3. 수집 속도가 너무 느려서 class에 있는 수집 메소드를 멀티 스레드 방식을 이용해서 수정해주었다. 수집 속도가 매우 빨라졌다. 4. 기존에는 aws의 클라우드 db(dynamo db)를 사용했지만, 과금 문제로 인해 로컬에 db를 설치하기로 했다. 쓰기 속도가 매우 빠른 redis db를 선택했다 5. 위에서 설명한 반복문을 돌면서 조건에 일치한 도메인 주소와 정수 값은 한 행씩 redis db에 key(도메인주소) value(정수값) 형식으로 저장하도록 코드를 만들었다. 이 과정도 class 내부에 포함되어 있다. 6. redis는 on memory db이기 때문에 대용량 데이터를 영구적으로 저장하고 분석하기에 적합하지 않다고 판단해서 1시간마다 redis에 있는 데이터를 postgresql db로 옮겨주는 코드를 따로 만들었다. postgresql db에 미리 redis에서 옮겨갈 테이블을 생성해두었다. redis의 key였던 도메인 이름을 첫 번째 필드에 프리이머리 키로 저장했고 value인 정수 값을 2번 째 필드에 값으로 넣어줬다. 그리고, 마지막 필드에는 자동으로 데이터가 저장될 때, 현재 시간이 넣어지게 테이블을 만들었다. 총 3개의 열로 구성된 테이블에 1시간에 한번씩 redis에 저장해두었던 데이터가 옮겨간다고 생각하면 된다. 7. 처음 redis에 데이터를 저장할 때 ttl을 설정해서 1시간 10분이 지나면 redis db에서 데이터가 자동으로 소멸되도록 설정했으며, 만약 postgresql에 중복된 데이터가 들어간다면 자동으로 무시하고 다음 작업을 진행하도록 테이블 설정을 해줬다. 즉, 실시간으로 데이터가 수집되고 자동으로 시간이 지나면 데이터가 소멸되는 redis db에서 1시간마다 한번 postgresql로 옮겨주는 코드를 따로 만들었다. 8. 수집 코드를 spark-submit 명령문으로 실행해주었다. spark-submit 명령어 앞에 nohup을 해줘서 백그라운드에서 코드가 실행되게 해줬고, 로그 결과를 따로 파일을 만들어 저장되도록 했다. 그리고 파이썬 실행 파일 내에서도 로그를 입력하는 코드를 만들어서, 도메인의 http 접속이 성공했는지의 여부를 로그 파일에 실시간으로 입력되도록 했다. 예를 들어, http 접속이 잘 된 도메인 주소는 로그에 “INFO 도메인 주소: success” 이렇게 기록하고, 타임아웃 에러, 접속 에러, redirect 오류, db 저장 오류는 모두 종류별로 예외 처리해서 로그에서 기록되도록 코드를 구성했다. 파이썬에서 자체적으로 로그를 기록한 파일은 수집코드를 실행하면서 파티션이 전환될 때마다 하나씩 생성된다. 이제 이렇게 제가 실행할 코드는 24시간 내내 수집을 진행하는 코드 하나와 1시간에 한번 데이터를 옮겨주는 스케줄러 코드로 총 2개가 됩니다. 저는 이 코드와 수집 환경을 만들기 위해 모두 도커를 활용하였으며, 사용한 컨테이너와 부가 설명은 다음과 같습니다. spark-master: 하둡과 스파크 클러스터를 구축하는 컨테이너로 standalone모드로 spark-summit 명령어로 파이썬 파일을 실행해주었다. --conf 옵션으로 메모리, 하트비트 간격, 파티션 수 를 지정해주었다. 스파크와 하둡을 처음 사용해봐서 약간의 개념만 있는 상태에서 돌려보니 아직도 세부 설정을 제대로 이해하지 못했다. 결국 worker를 1개 생성해서 파이썬 파일을 처리하도록 하였다. 현재 대다수의 오류가 이 컨테이너에서 발생한다. redis: spark-master에서 실시간으로 실행되고 있는 수집 코드에서 선별된 데이터들이 redis 컨테이너에 있는 redis db에 저장된다. postgresql: 1시간에 한번 redis에 있는 데이터를 옮기기 위해 postgresql 컨테이너를 생성했다. schduler: 1시간에 한번 postgresql 컨테이너에서 작동하고 있는 postgresql db에 redis 데이터를 옮겨주기 위한 스캐줄러 코드를 실행할 컨테이너다. redis-monitor: 실시간으로 redis db를 모니터링 하기 위해 redis-monitor 컨테이너를 생성하여 웹에서 모니터링 툴인 Redis-Stat에 접속한다. postgre-monitor: 마찬가지로, 실시간으로 postgresql db를 모니터링 하기 위해 생성한 컨테이너로 웹에서 Pgadmin4를 사용할 수 있다. 이렇게 총 6개의 컨테이너를 생성하여 내 수집 코드를 실행했는데, 여기서 많은 문제가 발생했습니다. 제가 가진 의문과 문제를 나열하자면 다음과 같습니다. 1. 먼저, 수집 코드를 실행한 다음에 스케줄러 코드를 실행해주었는데, (서로 독립된 컨테이너에서 실행) 두 코드가 DB에 동시에 접속할 때, 충돌이 일어날 가능성이 있지 않을까? 2. 수집 코드를 실행하고 몇분이 지나면 터미널이 먹통이 되고, 코드가 더 이상 실행이 안되는 일이 빈번하게 발생한다. 너무 많은 자원을 사용하고 있어서 그런건가.. 컴퓨터 사양이 안좋아서 그런건가 원인을 잘 모르겠다.. 3. spark-submit 로그를 보면 내 노트북에서는 안그러는데, 대용량 파일을 불러오는 과정에서 파티션 별로 데이터를 정리할 때 오류가 빈번하게 발생한다 . executor가 통신이 안된다는 경고 메세지도 자주 나오고, 특히, Remote RPC client disassociated 라는 오류가 가장 많이 나온다. 내 컴퓨터보다 높은 사양의 클러스터를 구축하려고 해서 그런가. 검색해보니 네트워크 문제이거나, 컨테이너에 할당한 자원을 초과해서 그런거라고 한다. 대용량 데이터를 불러오는 다른 방법을 강구해봐야되나 고민하고 있다. “그래서 요점이 뭐야” 라고 물어보신다면, 저는 현직에서 활동하고 계신 데이터 엔지니어, 백앤드 개발자 분들이 제 글을 본다면 “아니 굳이 왜 그렇게 하지? 이렇게 쉬운 방법이 있는데” 또는 “저기서 이렇게도 해봤나?, 이러면 안정적으로 코드를 돌릴 수 있을텐데”라는 반응으로 갈릴 것 같다고 생각합니다.
개발자
#데이터베이스
#데이터수집
#아파치스파크
#redis
#python
답변 2
댓글 0
추천해요 7
조회 908
2년 전 · 김지태 님의 답변 업데이트
딥러닝 관련, 백그라운드 관련
안녕하세요. 졸업작품을 준비하고 있는 대학생입니다. 다름이 아니라, 제가 준비한 주제는 딥러닝 모델을 모바일 앱에 적용시켜 어떠한 내용에 대해 옮고 그름을 판단하는 애플리케이션을 개발하는 것입니다. 그리고 딥러닝을 알약같이 프로그램을 실행하면 백그라운드에서 동작하도록 만들고자 하는데 백그라운드 구현은 어떤 식으로 해야하는지 궁금합니다. [질문] 1. 안드로이드 스튜디오에 딥러닝 모델을 적용시킬 수 있나요? 만약, 안드로이드 스튜디오가 되지않는다면 스위프트는 가능한가요..? 2. 딥러닝을 앱에 적용시켜 알약처럼 프로그램이 동작할 때, 백그라운드에서 동작하도록 하고싶은데 백그라운드를 따로 구현해야하나요? 해야 된다면 어떤 식으로 구현해야 하나요..?
개발자
#딥러닝
#백그라운드
#애플리케이션
답변 1
댓글 0
조회 232
일 년 전 · JJJ 님의 질문 업데이트
디자인 부트캠프 추천
디자인 백그라운드 없이 uxui 디자이너로 전향을 하고자합니다. 해외취업이 최종목표라 영어 부트캠프를 찾아보고 있는데 최종적으로 스프링캠프나 디자인랩으로 생각중인데 혹시 패스하신분이나 참여해보신분들의 장단점이나 비교를 들어보고싶어요! 감사합니다 :)
개발자
#부트캠프
#uxui
#디자이너
#해외취업
답변 1
댓글 0
조회 266
2년 전 · 익명 님의 새로운 댓글
파이썬에서 백그라운드에 코드가 돌아가는 동안 모달 창을 띄워주는 방법?
안녕하세요, 이제 막 파이썬으로 개발을 시작한 코린이입니다. 백그라운드에서 코드가 돌아가는 동안 모달 창(message box??)을 띄우고 싶은데 스크린에 메시지 박스가 보이면 뒤에서 코드가 안돌아가네요 ㅠㅠ 혹시 돌아가도록 만들 수는 없을까요? (Tkinter을 사용하고 있습니다!)
개발자
#python
#tkinter
답변 1
댓글 1
추천해요 1
조회 208
3년 전 · pliossun 님의 새로운 답변
PM이 가져야 할 주요한 역량이 무엇이 있을까요?
얼마 전 스타트업계 분들과 식사를 하다가, 누군가가 한 PM분께 이런 질문을 던졌습니다. PM은 다른 직무에 비해 더 넓은 범위의 역량이 요구되는데, 또 동시에 뾰족한 역량(백그라운드)이 필요한 것 같다구요. 저도 궁금해져서 여기에 질문 남깁니다! 데이터, 기획력, 개발 지식, 비즈니스 등등 많을 것 같은데 또 무엇이 있을까요? 또 어떤 게 더 중요하다고 생각하세요?
개발자
답변 3
댓글 0
추천해요 23
조회 1,059