#vm

질문 1
해시태그 없이 키워드만 일치하는 질문은 개수에 포함되지 않아요.

20일 전 · 익명 님의 새로운 댓글

신입 백엔드 포트폴리오 이렇게 작성하는게 맞을까요???

안녕하세요 백엔드 직군을 준비하는 신입 개발자입니다. 포트폴리오를 작성했는데, 다음과 같이 구성을 했습니다. 아래는 대략적인 내용 구성입니다. 제목 : "스스로 문제 해결하는 " 신입 개발자 <팀 프로젝트> - 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

조회 249

4달 전 · 익명 님의 질문

머신러닝,딥러닝을 사용한 석사경험으로 취업준비를 어떻게 할까요?

안녕하세요. 저는 지금 대학원에서 의료영상을 보고 질병을 진단하는 모델링 연구를 진행중인 석사과정생입니다. 위 연구실은 의료영상 자체에 관심이 많은 랩이고, 딥러닝과 머신러닝 알고리즘을 연구하는 순수 AI랩은 아닙니다. 저는 머신러닝(SVM.XG-Boost,Random forest)와 같은 기법들부터 시작해서 Transformer,GNN,GAN,ResNet과 같은 딥러닝 모델을 제 데이터에 적용하는 연구를 진행중입니다. 요지는, 과연 위 모델들을 사용해본 경험으로 취업이 가능할까요? 제가 아직 이 분야에 대해서 자세히 알지는 못하기 때문에 드리는 질문이지만, 알고리즘 자체를 개발하는 엔지니어가 되어야 취업이 되는것은 아닌지 불안해서 여쭤봅니다. 아마 이 문장으로 제 질문이 요약될수도 있을것 같습니다. 딥러닝,머신러닝 모델에 대해서 이해도가 높고 잘 쓰는 사람 VS 딥러닝,머신러닝 알고리즘을 만들어본 사람 회사 입장에서는 어떤 사람을 선호할까요???

개발자

#딥러닝

#머신러닝

#석사

#취업

답변 0

댓글 0

조회 106

5달 전 · 익명 님의 질문

교보문고 디자인 면접

안녕하세요. 일주일 뒤 교보문고 VMD공간디자인팀 신입사원 면접이 잡혀있습니다..! 디자인 관련 면접 후기는 아무리 찾아봐도 많이 없어 질문글 올려봅니다. 혹시 교보문고 디자인팀 면접 경험 있으신 분들 받으셨던 질문 공유해주실 수 있으실까요?ㅜㅜ 짧게라도 알려주시면 정말 감사하겠습니다..!

디자이너

#교보문고

#vmd

#공간디자인

답변 0

댓글 0

조회 89

5달 전 · 정재윤 님의 새로운 댓글

4학년 임베디드, 저수준 개발자 진로 고민

안녕하세요 현재 4학년이며 취업을 준비하고 있습니다. 저는 C, C++에 옛날부터 관심이 많아 C, C++에 대한 프로젝트를 많이 해보게 되었습니다. 그렇다 보니 임베디드나 저수준 개발자로 진로를 결정을 하게 되었습니다. 저수준에서도 저는 OS, VM 기술, DB 저수준, 저수준 서버 개발 이런쪽으로 눈길이 많이 가고 있는 상황입니다. 제가 원하는 분야쪽은 연구가 필요할 것 같다는 생각이 들어 대학원을 한 번 생각해보게되었습니다. 현재 고민은 저수준을 하기 위해서 대학원에 가는 게 더 좋을지 취직을 하는게 더 좋을지에 대한 고민이 있습니다. 또한 저수준으로 프로젝트를 하나 확실하게 잡아서 퀄리티가 높은 프로젝트를 준비하고 싶은데 어느 방향으로 준비하는 게 좋을지 어떤 의견이든 주시면 감사하겠습니다!!!

개발자

#저수준

#c

#c++

답변 1

댓글 1

조회 141

9달 전 · 노원재 님의 답변 업데이트

ReactNative ios build 에러 3일째 해결을 못했습니다.

시뮬레이션을 실행하려고 해도 스크립트 문제, iPhone 버전 범위 문제, 시뮬레이터 문제가 계속 발생합니다. 어떤 도움이라도 감사합니다. ReactNative를 처음 접했습니다. 저희 팀에서 저를 도울 수 있는 사람이 없습니다. #프로젝트 환경 mac M2 ruby -v ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin23] node -v v20.10.0 pod --version 1.15.2 package.json { "name": "labts", "version": "0.0.1", "private": true, "scripts": { "android": "react-native run-android", "ios": "react-native run-ios", "lint": "eslint .", "start": "react-native start", "test": "jest" }, "dependencies": { "@react-native-community/async-storage": "^1.12.1", "@react-native-community/cli": "13.6.9", "@react-navigation/bottom-tabs": "^6.6.0", "@react-navigation/native": "^6.1.17", "@react-navigation/native-stack": "^6.10.0", "@tanstack/react-query": "^5.51.5", "@types/react-native-vector-icons": "^6.4.18", "axios": "^1.7.2", "date-fns": "^3.6.0", "immer": "^10.1.1", "react": "18.2.0", "react-native": "0.74.3", "react-native-calendars": "^1.1305.0", "react-native-date-picker": "^5.0.4", "react-native-dotenv": "^3.4.11", "react-native-get-random-values": "^1.11.0", "react-native-image-crop-picker": "^0.41.2", "react-native-image-zoom-viewer": "^3.0.1", "react-native-paper": "^5.12.3", "react-native-permissions": "^4.1.5", "react-native-safe-area-context": "^4.10.8", "react-native-screens": "^3.32.0", "react-native-splash-screen": "^3.3.0", "react-native-tab-view": "^3.5.2", "react-native-vector-icons": "^10.1.0", "react-native-vision-camera": "^4.5.1", "uuid": "^10.0.0", "yarn": "^1.22.22" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", "@react-native/babel-preset": "0.74.85", "@react-native/eslint-config": "0.74.85", "@react-native/metro-config": "0.74.85", "@react-native/typescript-config": "0.74.85", "@types/react": "^18.2.6", "@types/react-native-dotenv": "^0.2.2", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", "babel-plugin-module-resolver": "^5.0.2", "eslint": "^8.19.0", "jest": "^29.6.3", "prettier": "2.8.8", "react-test-renderer": "18.2.0", "typescript": "5.0.4" }, "engines": { "node": ">=18" } } PodFile require Pod::Executable.execute_command('node', ['-p', 'require.resolve( "react-native/scripts/react_native_pods.rb", {paths: [process.argv[1]]}, )', __dir__]).strip platform :ios, '12.0' use_frameworks! #use_modular_headers! prepare_react_native_project! linkage = ENV['USE_FRAMEWORKS'] if linkage != nil Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green use_frameworks! :linkage => linkage.to_sym end target 'nexlabts' do config = use_native_modules! use_react_native!( :path => config[:reactNativePath], # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/.." ) target 'nexlabtsTests' do inherit! :complete # Pods for testing end post_install do |installer| # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 react_native_post_install( installer, config[:reactNativePath], :mac_catalyst_enabled => false, # :ccache_enabled => true ) end end 제가 아래 에러 3가지에 대해 제가 해본 방법들입니다. 1. node 재설치 node_module 폴더 삭제, package-rock.json 삭제 후 재설치 npm install --legacy-peer-deps yarn install 2. Xcode가 node 읽을 수 있도록 설정 sudo ln -s "$(which node)" /usr/local/bin/node 3. Podfile 내 platform 설정 수정 platform :ios, '12.0' or platform :ios, '14.0' 4. Pods 재설치 rm -rf ~/Library/Developer/Xcode/DerivedData or rm -rf ~/Library/Developer/Xcode/DerivedData/* rm -rf Pods rm Podfile.lock pod install --repo-update Xcode \> Product \> Clean Build Folder. cd ./ios pod cache clean -all pod install --repo-update cd ../ npx react-native run-ios --no-packager --simulator="iPhone 15" or npx react-native run-ios --simulator="iPhone 15" or yarn start > i(run ios) Err 1. cocoaPods 설치할 때 [!] CocoaPods could not find compatible versions for pod "React-RuntimeHermes": In Podfile: React-RuntimeHermes (from ../node_modules/react-native/ReactCommon/react/runtime) Specs satisfying the React-RuntimeHermes (from ../node_modules/react-native/ReactCommon/react/runtime) dependency were found, but they required a higher minimum deployment target. Err2. iOS 실행할때 run-ios --no-packager --simulator="iPhone 15" Build description signature: fc1341421f84b87c5245d346c2c17b66 Build description path: /Users/nowonjae/Library/Developer/Xcode/DerivedData/nexlabts-argvodqcybjfcybstpulfpghnzvm/Build/Intermediates.noindex/XCBuildData/fc1341421f84b87c5245d346c2c17b66.xcbuilddata /Users/nowonjae/Desktop/project/NeXLabRN/ios/nexlabts.xcodeproj:1:1: error: Unable to open base configuration reference file '/Users/nowonjae/Desktop/project/NeXLabRN/ios/Pods/Target Support Files/Pods-nexlabts/Pods-nexlabts.release.xcconfig'. (in target 'nexlabts' from project 'nexlabts') warning: Unable to read contents of XCFileList '/Target Support Files/Pods-nexlabts/Pods-nexlabts-resources-Release-output-files.xcfilelist' (in target 'nexlabts' from project 'nexlabts') warning: Unable to read contents of XCFileList '/Target Support Files/Pods-nexlabts/Pods-nexlabts-frameworks-Release-output-files.xcfilelist' (in target 'nexlabts' from project 'nexlabts') error: Unable to load contents of file list: '/Target Support Files/Pods-nexlabts/Pods-nexlabts-frameworks-Release-input-files.xcfilelist' (in target 'nexlabts' from project 'nexlabts') error: Unable to load contents of file list: '/Target Support Files/Pods-nexlabts/Pods-nexlabts-frameworks-Release-output-files.xcfilelist' (in target 'nexlabts' from project 'nexlabts') warning: Run script build phase 'Bundle React Native code and images' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'nexlabts' from project 'nexlabts') warning: Run script build phase '[CP] Embed Pods Frameworks' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'nexlabts' from project 'nexlabts') error: Unable to load contents of file list: '/Target Support Files/Pods-nexlabts/Pods-nexlabts-resources-Release-input-files.xcfilelist' (in target 'nexlabts' from project 'nexlabts') error: Unable to load contents of file list: '/Target Support Files/Pods-nexlabts/Pods-nexlabts-resources-Release-output-files.xcfilelist' (in target 'nexlabts' from project 'nexlabts') warning: Run script build phase '[CP] Copy Pods Resources' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'nexlabts' from project 'nexlabts') --- xcodebuild: WARNING: Using the first of multiple matching destinations: { platform:iOS Simulator, id:B5AA2E84-4F83-4749-A986-A1FCE5E398A3, OS:17.5, name:iPhone 15 } { platform:iOS Simulator, id:B5AA2E84-4F83-4749-A986-A1FCE5E398A3, OS:17.5, name:iPhone 15 } ** BUILD FAILED ** ] Err3. Xcode 로 Build 할때 (Any iOS Simulator Device (arm64, x86_64)) Command PhaseScriptExecution failed with a nonzero exit code

개발자

#reactnative

#xcode

#reactnative-run-ios

답변 1

댓글 0

조회 564

일 년 전 · 익명 님의 질문

우분투 리눅스 실습을 위해 공부중에 안되는 부분 질문 드리려합니다..

vmware에서 하고있는데 live-server 설치부분 하는중인데 ip addr을 해보아도 이렇게 ip가 할당이 안된건지 계속 고정 ip수정도 안되고 sources.list 설치도 안되고 미치겠습니다.. 도와주세요

개발자

#linux

#리눅스

#우분투

답변 0

댓글 0

조회 27

일 년 전 · 유빈 님의 질문

모클리에서 뷰티/커머스와 브랜드 런칭에 관심있는 여러분을 찾습니다!

안녕하세요, 모클리 프로덕트 디자인팀입니다. 👋 저희가 개발 중인 제조 매칭 플랫폼의 사용성을 개선하기 위해 여러분의 소중한 의견을 듣고자 합니다. [📍이런 분들을 찾고 있어요] - 뷰티/커머스 업계에 관심 있으신 분 - 브랜드 런칭에 관심 있으신 분 [📍이렇게 진행됩니다] - 원하시는 날짜에 온라인으로 편하게 참여하실 수 있어요 - 30-40분 정도 소요될 거예요 [📍참여하시면] - 시원한 아이스 아메리카노 기프티콘을 드려요 [📍참여 방법] 아래 링크에서 간단한 설문에 답해주세요. https://forms.gle/j1B64yUVApFkdVMx5 여러분의 참여가 정말 소중해요. 함께 더 나은 제조 플랫폼을 만들어보아요!

PM/PO/기획자

#사용성테스트

#설문조사

#커머스

#제조매칭플랫폼

답변 0

댓글 0

조회 35

일 년 전 · 김민식 님의 새로운 답변

MVC vs MVVM

어제부터 MVVM 아키텍처에 대해 공부를 시작했는데 이전에는 MVC 아키텍처를 사용해왔습니다. MVC의 단점은 프로젝트가 커질수록 Controller가 비대해지는 경향이 있다는 점입니다. 그래서 Controller의 부담을 줄이기 위해 ViewModel을 도입한 MVVM이 탄생한 것으로 알고 있습니다. 하지만 MVVM을 공부하면서 느낀 점은 View와 ViewModel 사이의 상호작용이 많아지면서 컴포넌트가 많아질수록 코드가 길어지고 복잡해진다는 것이었습니다. 그래서 MVC처럼 다시 View와 Controller를 분리하여 MVC와 MVVM을 혼용하여 작성하면 좋을 것 같다는 생각이 들었습니다. 이에 대해 구글링을 해봤지만 관련 글을 찾기 어려웠습니다. 이렇게 개발했을 때 발생할 수 있는 문제점은 무엇이 있을까요?

개발자

#swift

#ios

#mvc

#mvvm

답변 2

댓글 1

조회 158

일 년 전 · 안희수 님의 답변 업데이트

윈도우에서 사진이나 영상 편집 프로그램을 만들어 보고 싶은데 어디서 배울 수 있나요?

몇 년 전에 게임 개발 학원에 다니다가 그만두고 작년부터 애플리케이션 개발 쪽으로 방향을 돌려 PyQt 프레임워크나 Flutter로 개발하다가 PyQt 프레임워크는 배울만한 자료가 없어 포기하고 Flutter는 굳이 안드로이드나 iOS까지 지원하는 프레임워크로 편집 프로그램을 만들 필요는 못 느껴서 현재는 Windows App SDK와 WinUI 3 프레임워크로 개발하고 있습니다. 하지만 게임 개발은 그나마 학원에서 직접 강사한테 배워서 어떤 식으로 파일을 구성하고 개발하는지에 대해 그나마 틀은 잡혀있는데 애플리케이션 개발은 처음부터 끝까지 독학으로 공부해서 그런지 어떻게 프로젝트를 구성할지 막막하더라고요. 누구한테 물어보려고 해도 제 주위에 프로그래밍이 취미이거나 직업인 사람이 한 명도 없어서 물어 볼 수도 없고 그나마 유튜브에서 SOLID 원칙과 MVVM 패턴을 배워서 만들어 보고는 있습니다. 결론은 윈도우 애플리케이션 개발을 배울만한 곳이나 아니면 최소한 소통할 수 있는 커뮤니티가 있으면 답변 부탁드리겠습니다.

개발자

#desk

#app-dev

#window

#wpf

#winui-3

답변 1

댓글 0

조회 50

일 년 전 · 안희수 님의 새로운 답변

안드로이드 개발자 필요 역량

안녕하세요 안드로이드 개발에 대한 경험이 조금 있으며 간단한 개인 앱도 출시를 해봤습니다. 하지만 개인적으로 더 공부하지 않은 것도 있고 회사에서 앱은 많이 하지않았고 다른 개발만 얕게 몇 년째 했습니다. 총 경력은 5년이고 앱을 주로 하기 위하여 이직을 하고자 합니다. 3~5년 정도의 안드 개발자 공고를 보면 필요 요건들은 비슷했습니다. Retrofit, MVVM, AAC, Coroutine, compose, Clean Architecture, DI(Hilt/Koin), Multi Module 등이 나열되어 있었습니다. 이것들을 학습 및 실제 토이 프로젝트에 적용하는 것만으로는 3~5년 정도라고 할 수 없을거 같은데 어떠한걸 더 해보거나 능력을 갖추어야 할까요? 감사합니다

개발자

#안드로이드

#앱개발

#이직

답변 1

댓글 0

조회 170

일 년 전 · 김민서 님의 새로운 댓글

현역 군인 싸지방에서 GCP 를 이용한 CODE-SERVER 설치 중 오류 질문입니다

안녕하세요 대한민국 육군 현역입니다. 싸지방에서 CODE-SERVER 를 이용해서 자바공부좀 하려고 하는데, GCP가입 후 vm인스턴스 생성까지 했습니다. 문제는 SSH 에서 curl -fsSL https://code-server.dev/install.sh | sh 명령어 입력 후 실행 하기 위해 code-server --link 를 입력하면 error Unknown option --link 가 뜹니다.. 문제가 뭘까요 절박합니다 ㅠㅠ + Code-Server가 업데이트 되면서 명령어가 바뀐거 같습니다 ,, 이슈쪽 봐도 못찾겠네요 고수분들 도와주세요 🥲

개발자

#gcp

#code-server

답변 1

댓글 1

조회 282

일 년 전 · 박정환 님의 댓글 업데이트

1년 4개월 정도 일한 개발자 질문입니다.

안녕하세요, 임베디드 업계에서 일하고 있는 비전공 개발자입니다. 원래 직무는 C++ 센서 개발 이었습니다. 처음 입사 때는 저보다 4~5개월 먼저 입사하신 동료분이 개발 업무로 있었고 중간 직급은 없이 대표님과 동료와 저, 거의 3명의 인원으로 개발 업무를 이어나갔습니다. 그마저도 6개월 차에 접어들 즈음에 동료 분도 이직하고 현재까지도 개발 분야에서 저만 남게 되었고 얼마 안 가 신입분들이 오셨지만 프로세스를 다 처리하긴 힘드니 저는 저대로 신입분을 도와주면서 제 공부도 꾸준히 해오고 있습니다. 현재는 C++로 리눅스/윈도우에서 로봇에 사용하는 센서 드라이버를 작성 유지하고, C# WPF로 앱을 만들어 사용자들에게 뷰어로 제공하는데 이것도 이제 제가 관리하게 되었습니다. 짧게나마 센서의 임베디드 소프트웨어도 겉핡기 하는 정도로 만질 때도 있습니다. 이 업무들이 대부분 저 혼자 답습하며 해결해나가는 중입니다. 뷰어는 레거시 코드가 작성된 이후로 전혀 업데이트가 되어 있지 않은 채 프로젝트 때마다 그 위에 덮어 씌우듯이 작성되고 그랬습니다. 어느정도 C++ 과 C#을 오가고, 정부 과제 등을 거치면서 다른 인터페이스와 하드웨어에서 프로그램도 작성하다보니 인터페이스, 환경 구분이 되는 눈이 생기고 사내 로직은 알고 있어서 시간을 조금 보태어 WPF의 메인 UI.xaml 하나에 그 뒤로 모든 로직이 다 있던 레거시 코드에 새로운 방법도 적용해 보았습니다. 어리숙하지만 MVVM 패턴을 적용하여 코드도 정리해 적용하고, C++과 C#의 비슷한 로직 패턴을 가져가고 주석, TODO리스트도 추가하기도 하고 '이거 못하면 넌 주니어'시리즈를 참고하면서 내가 잘하고 있는지 판단할 척도가 없어 동료분들이 조금이라도 편하게 협업할 수 있고 대표님의 일을 덜어낼 방법을 계속해서 고민하고 공부하고 적용해오고 있습니다. 문서도, 인수인계도 정리되지 않고 대표님께 거의 구두로 전달된 채 퇴사가 진행되니, 그나마 오래 지낸 제가 프로젝트 중간 과정 과정마다 문서로 업데이트 내역을 PPT나 README정도로 남기면서 조금이라도 뭔가 자동화할 방법들이나 새로 오실 분들이 참고할만한 내용들을 남기고자 하면서 여러 방법들을 적용해보고 있습니다. 그런데 요즘 문득 주변을 돌아보니 프로젝트나 과제들이 뭔가 깔끔하게 마무리되었다는 결과 없이 하염없이 일이 질질 끌리는 듯한 모습들이 계속 눈에 밟힙니다. 작년 2월 중으로 마무리 될 것 같다던 프로젝트도 어느샌가 올해까지 맺음 없이 다른 프로젝트와 과제로 다시 이어가고, 그 외의 것들도 뭔가 끝났구나 하는게 없이 일이 이어지는 듯 합니다. 그렇게 새롭게 맡게 되는 일들은 도저히 해결될 기미도 안 보이는 채 머리를 싸매며 혼자 고민하는 시간들이 자주 등장하며 어느 정도는 대표님이 작게 나마 설명이나 커버를 해주시고 있지만 대표님도 여력이 안 되기 시작하니 그 풍파를 직접 마주하니 부담감이 너무 커서 평온한 제 마음에 그냥 그만둬야 하나 충동들이 밀려옵니다. 회사에서 일을 안 시켜요, 대표가 인정을.. 이랑 다르게 동료분들과 괜찮고 대표님도 대표님대로 개발의 거의 모든 축을 책임지시고 일하며, 제게도 조금의 파이를 떼어 일을 맡겨주시고, 저는 저대로 배움과 성장을 느끼며 성취감도 크게 느껴 프로그램 자체에 대한 재미를 느끼기도 했습니다. 그런데 요즘은 그저 순수하게 일이 과도한 듯해서 지치기 시작했습니다. 주말에도 회사에 나가 제가 작성한 코드들의 문제점들을 살펴보고 다르게 변경해보기도 하고 단위 테스트도 할 수 있게 프로그램 구성도 해보고 합니다. 주변 상황들을 몰라 주관적이지만 아무리 봐도 순수하게 회사 업무 효율 개선에도 부침이 계속되니 뭔가 수렁에 빠지는 기분입니다. 일이 익숙해진다..? 그게 뭔지도 모르겠고, 다음주 이번 사업 엎을지 말지 달렸다는 프로그래밍이 제 눈 앞에 있고, 홧김에 퇴사할까봐 제 자신이 무섭습니다. 개발자로서 비전공자에게 쉽지 않은 여정은 당연히 예상했지만 현실이 더욱 매섭네요. 뭘 모르고 있는지 설명도 제대로 못 해 어버버하기도 요즘 그냥 뭔가 다 모르겠다는 막연한 멈춤이 있는 것 같습니다. 과연 어떻게 이 부담과 상황을 이겨낼지 조언을 구해보려고 합니다. 긴 글 읽어주셔서 감사합니다.

개발자

#이직

#업무고민

#c/c++

답변 1

댓글 2

조회 444

일 년 전 · 포크코딩 님의 답변 업데이트

클라우드 서버 비용

Maria 레코드 10000개 이하 Nginx Spring jvm cpu 1프로 이하 돌리려고 하는데 AWS가 좋을까요? NCP이 좋을까요? 어떤걸 호스팅 받는게 좋을지도 질문드립니다

개발자

#aws

#navercloudplatform

#ncp

#naver

답변 1

댓글 4

추천해요 1

조회 1,724

일 년 전 · 익명 님의 질문 업데이트

Java개발자 취준 서브 언어를 무엇으로 설정해야 할까요?

복수전공을 하는데 어떻게 하다보니 C계열은 공부를 아예 안했고 학교에선 Python 으로 과제하고 실습하고 플젝을했고요 혼자 공부 하는 것은 Java를 주로 했고 백엔드 자바계열 개발자로 취업을 하고 싶은데.. 사실 파이썬은 너무 다룰줄 아는 사람이 많은 것 같아서 서브언어로 메리트가 있을지 없을지도 모르겠고.. C나 C++은 백악관 권고도 있고 그냥 손이 안가더라고요;. C계열 대체 언어로 주목받는 Rust나 JVM기반인 코틀린 자바와 문법이 약간 비슷한 C# 중에 하나를 서브언어로 취미삼아 다뤄볼까요?? 아니면 그냥 학교에선 파이썬 강의를 들으니 그대로 주력언어로 자바를 하고 서브로 파이썬을 다뤄볼까요? Java를 공부하는 입장에선 연계해서 배우기 쉬운 C#이나 코틀린이 나을까요?? 이것저것 다 해보고 배우기 쉬운걸 고르는거 보단 취업할때 시너지라 해야하나 그런것도 좀 고려하고싶어성..

투표

개발자

#java

#kotlin

#python

#c#

#rust

답변 2

댓글 0

조회 271

일 년 전 · 익명 님의 질문 업데이트

4학년 맥북 괜찮은가요?

올해 4학년된 학생인데, 맥북병에 걸렸습니다.. 걸린지 2년정도인데요.. M3 16gb 512gb(250만원) vs M3 pro 18gb 512gb(280만원) 웹 프론트, 앱을 위주로 해왔고 vm도 가끔 돌립니다. 요즘엔 도커/쿠버네티스 쪽도 찍먹하고 있어서 성능을 더 좋은 걸 사야하는지, 아니면 m3로도 충분한지 고민입니다. 괜한 욕심 같기도 해서.. 졸업 후 혹은 취업 후 새 노트북을 장만해도 좋으련지....... 🥹 현 노트북 사양은 그램 2019 i5 16gb 256gb 입니다. 이제 사용한지 5년차이고, 맥북을 산다면 7-8년 정도는 오래 쓰고 싶습니다. 주저리 썼는데 다양한 의견 주시면 감사하겠습니다 😎

개발자

#맥북

#프론트엔드

답변 1

댓글 2

조회 303

일 년 전 · 삭제된 사용자 님의 새로운 답변

mvc, flux 패턴의 차이점

flux 아키텍쳐에 대해 공부를 하던 중 제가 이해한 바가 맞는지 궁금하게 되어 질문드립니다. 처음 서치를 시작했을 때는 각 장단점을 얘기하였을 때 mvc 패턴 : 양방향 데이터 플로우로 인해 큰 규모의 프로젝트에서는 다수의 model, view 가 뒤섞여 어디서 데이터가 수정되었는지 추적이 어렵고 의도하지 않은 사이드 이펙트가 발생할 수 있다. flux 패턴 : 단방향 데이터 플로우를 강제하여 상호작용으로 인해 어떤 데이터가 수정되고 그로 인해 영향을 받는 view 를 파악하기가 쉽다. 는 것이 제가 얻은 중론이였습니다. 하지만 mvc 패턴 또한 view 상호작용 > controller > model 수정 > view 데이터 반영 으로 단방향 플로우를 가지는 것이 아닌가? 라는 생각이 들었습니다. 추가적인 서치 후 최근 mvc 패턴은 초기 아키텍쳐를 그대로 반영하지 않으며, 그 이름으로 불리는 mvp, mvvm 패턴을 뜻하는 경향이 있다. 해당 파생 아키텍쳐에서는 model < - > view 사이 양방향 데이터 플로우가 만들어져 규모가 커질수록 복잡도가 증가하게 되었다는 정보를 알게되었습니다. flux 패턴은 오히려 초기 mvc 패턴의 단방향 플로우를 강제하여 데이터 추적 및 이해를 쉽게하였다고 보는 것이 맞는 것인지 앞서 말한 것들이 제가 제대로 이해한 것인지 선배님들이 답변을 주시면 정말 감사하겠습니다.

개발자

#mvc

#flux

#react

#state

#상태관리

답변 2

댓글 1

조회 293

일 년 전 · 김하늘 님의 새로운 답변

제가 하고있는일이 ”프론트엔드“일까요?

제가 하고있는일이 프론트엔드인가 헷갈립니다. 프론트엔드는 아닌것 같습니다. 저는 프론트엔드 개발자를 지망했으며, react-query, axios등등 서버와의 통신을 하여 웹페이지를 만드는 공부를 하였습니다. 저는지금 코딩교육업체에서 일하고있고. 제가 참여하는 프로젝트는 스크래치(블록코딩)의 소스코드를 이용해 새로운 블록을 만들어 회사의 로봇을 움직이게 하거나 스크래치 gui를 확장, 개선하는 업무를 하고있습니다. 스크래치는 크게 scratch-gui(스크래치의 gui, 구버전의 react사용), scratch-vm(virtual machine, 스트래치에서 사용되는 블록을 정의하고 새로운 블록을 선언하거나, 블록들을 실행가능하게끔 ASTtree로 만들어 실행시키는 프로그램 nodejs임) 두개의 오픈소스 프로젝트로 구성이 되어있고, 제가 참여하는 프로젝트는 이 두개의 프로젝트를 회사에 맞게 확장, 수정시킨 프로젝트에서 작업하고 있습니다. 아직 한달이 채 되지도 않은시점에서 의문이 들었습니다. scratch-gui 가 react, redux를 사용하지만 HTTP통신을 하지도 않는데 이런 업무를 프론트엔드 개발자라고 할수있는가? 입니다. 다른회사들의 요구기술스택을 보면 제가 다니는 회사와의 기술스택과는 많이 동떨어진 느낌입니다. 물론 찾다보면 비슷한 기술스택을 가진 회사도 있겠지요... 하지만 인생의 첫 커리어인데, 꼬여버리지 않을까 걱정입니다.

개발자

#react

#scratch

#프론트엔드

#커리어

#신입

답변 2

댓글 1

조회 201

일 년 전 · 다형 님의 답변 업데이트

이제 곧 1년차 백엔드 개발자 첫 연봉협상 어떻게 진행할까요??

안녕하세요 23년 중소기업 개발자 신입으로 입사했습니다. 연봉으로 3200받았습니다. 3개월 수습기간이 있었고, 교육은 없었고 바로 프로젝트 투입됐습니다. 사수도 없습니다. 첫 프로젝트는 웹페이지 제작 프론트, 백 둘 다 했었지만 간단한 관리자 페이지 였습니다. 2번째 프로젝트에서는 백엔드로 시니어 개발자분 보조 맡아서 프로젝트 진행을 했었고 시니어 개발자분이 그만 두시면서 제가 백엔드는 맡게 됐습니다. 이후 추가적으로 오는 기능 개발은 다 제가 맡아서 했습니다. 또한 저희 회사가 Azure 서비스를 이용하고 있는데 개발계 인프라 구성 또한 제가 했습니다. (VM, Webapp, AAD로그인, 이메일서비스 등등) 일단 던져주시는 것들은 다 해냈습니다. 그리고 이 프로젝트를 솔루션으로 다른 회사와도 계약을 하시려고 합니다. 그래서 3번째 프로젝트부터는 백엔드는 제가 맡아서 할 것 같습니다. 아직 진행 중인 것은 아닙니다. 이러한 상황에서 곧 연봉협상을 곧 하게 되는데, 제가 신입 치고는 많은 것을 했고 잘한 것 같아서 연봉을 올리고 싶은데 첫 연봉 협상이라서 얼마나 올려야 될지 감이 잘 오지 않습니다. 어느 정도를 올리는 게 보통 맞나요? 솔직하고 거리낌 없이 피드백 부탁 드립니다!

개발자

#연봉협상

#신입개발자

#1년차

답변 3

댓글 3

추천해요 22

조회 4,120

일 년 전 · 프레드윰 님의 새로운 답변

구글 클라우드 VM 중지해보신 분 계시나요?

VM 램이 부족하여 업그레이드 하려는데 그럼 vm을 중지해야 한다고 합니다. 공식 문서 죽 읽어봤는데 저는 영구 SSD를 해서 괜찮아 보이면서도 RAM에 저장된 데이터는 손실된다고 합니다. 당연히 휘발성이니 날라가겠지만 제가 걱정되는 건 서비스 중지 후 재개했을 때 문제 생길까 입니다. 그냥 일반 윈도우마냥 프로세스가 쓰던 램 날라가는거로 이해하면서 걱정안해도 될까요?

개발자

#구글클라우드

답변 1

댓글 0

조회 63

일 년 전 · 박민수 님의 질문 업데이트

안녕하세요 취준생 부트캠프 관련 질문이 있습니다.

컴공 전공생 이번에 졸업합니다 분야 : 백엔드 , si도 상관없습니다. 자격증 : 정보처리기사 한개 목표 : 일단은 중하급 회사부터 가고싶습니다 . 수준 : 간단한 프로젝트 정도만 가능 , 백준 솔브드는 실버 정도 제가 찾아본 부트캠프가 1) 구름톤 1기 웹 백엔드 부트캠프 https://kdt.goorm.io/?utm_source=google&utm_medium=cpc&utm_campaign=basic&utm_term=%EC%BD%94%EB%94%A9%20%EB%B6%80%ED%8A%B8%20%EC%BA%A0%ED%94%84%20%ED%9B%84%EA%B8%B0&gclid=CjwKCAiAkp6tBhB5EiwANTCx1Bz8Ug4C8XGtv25c6OfhNX3x6Mwz30Umt62_DVM-NYbpwXqh_DGWlRoCwusQAvD_BwE 2) 프로그래머스 (React . node) 하는 부트 랑 https://school.programmers.co.kr/learn/courses/20814/20814-2%EA%B8%B0-k-digital-training-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A1%9C-%ED%95%A8%EA%BB%98%ED%95%98%EB%8A%94-%EC%9B%B9-%ED%92%80-%EC%82%AC%EC%9D%B4%ED%81%B4-%EA%B0%9C%EB%B0%9Creact-nodejs?utm_campaign=school_20814_main&utm_content=20814_txt&utm_medium=AD&utm_source=boottent 3) 네이버 클라우드 캠프 ( 백엔드 + 데브옵스 ) 인데 https://ncamp.kr/?utm_source=BootTent&utm_medium=231201_Ncamp_Devops_BootTent_TitleTag_AD&utm_campaign=231201_Ncamp_Devops_12_19.29_Open_BootTent_Title_AD&utm_id=231201_Ncamp_Devops_BootTent_TitleTag_AD 커리큘럼이 좋은건지 아닌건지 구분이 안가서 궁금합니다.

개발자

#node-#spring-#be

#node-#spring-be

답변 1

댓글 2

조회 369

2년 전 · 뚝딱이 님의 새로운 답변

이제 10일차 코린이인데여(인텔리제이)

강의 내용 따라 적으면서 복습중인데 Psvm 적고 내용 적고 있었는데 갑자기 sout가 안뜨고 직접 적으면 pritln에 빨간글씨로뜨고 에러라고 해요 어케 해결할까여?

개발자

#질문

답변 2

댓글 0

보충이 필요해요 1

조회 144

2년 전 · 장성호 님의 새로운 댓글

mvc api 호출 시 thread 상태에 대해서 궁금한 점이 있습니다..

스프링에서 api를 호출할 때 어떤 일이 발생하는지 RestTemplate 사용하여 테스트를 해보았습니다. 제 예상으로는 api를 호출하게 되면 io 작업이 발생하여 컨텍스트 스위칭 작업이 발생하여 호출한 쓰레드는 응답이 올 때 까지 blocking 상태를 유지할 것이라 판단하였습니다. 하지만 VisualVM을 사용하여 모니터링 해본 결과 park 상태로 유지되던 쓰레드가 running상태로 바뀌며 해당 api의 응답이 올 때까지 running상태로 유지되고 있음을 확인하였습니다. (응답 속도가 빨라 5초간 sleep 후 응답하는 api를 호출) 실제로 block이 일어나지 않은 것인지 아니면 실제로 컨텍스트 스위칭이 발생한 것은 커널레벨 쓰레드 쪽이라 visualVM이 이를 캐치하지 못한것인지.. (하지만 자바에서는 유저레벨 쓰레드와 1대1 매칭이 된다고 알고 있는데.. 유저 레벨 쓰레드에도 영향이 있을 것이라 생각합니다.) 머리 속이 너무 혼란스럽네요ㅜㅜ 어떤 부분을 공부하면 될지 키워드라도 알려주실 수 있나요?

개발자

#spring

#thread

#blocking

#nonblocking

#api

답변 1

댓글 2

조회 341

2년 전 · 강병진 님의 새로운 답변

Azure nginx ip (HTTP) ssl 인증서 발급

App Servie 가아닌 Azure vm 을통해 http://ip주소 로 배포 완료하였고, https로 변경하여 배포하려고합니다. App Service Certificate는 AppService로 연동된 웹만 발급이 가능한걸로 나와있는데 vm을통해 nginx연결한 flask 를 https로 배포하기위해선 어떻게 해야하나요?

개발자

#azure

#cloud

#ssl

#flask

#python

답변 1

댓글 0

조회 151

2년 전 · 희진 님의 질문

react-native xcode build시 발생 에러

``` ld: warning: ignoring file '/Users/heejinroh/Library/Developer/Xcode/DerivedData/OkCeo-abydistjrfwgsufmyimbpydzjpqj/Build/Products/Debug-iphonesimulator/Flipper-Folly/libFlipper-Folly.a[3](Assume.o)': found architecture 'arm64', required architecture 'x86_64' ld: warning: ignoring file '/Users/heejinroh/Library/Developer/Xcode/DerivedData/OkCeo-abydistjrfwgsufmyimbpydzjpqj/Build/Products/Debug-iphonesimulator/Flipper-Folly/libFlipper-Folly.a[2](Addr2Line.o)': found architecture 'arm64', required architecture 'x86_64' ld: Undefined symbols: _OBJC_CLASS_$_RCTBridge, referenced from: in AppDelegate.o _OBJC_CLASS_$_RCTBundleURLProvider, referenced from: in AppDelegate.o _OBJC_CLASS_$_RNKakaoLogins, referenced from: in AppDelegate.o _RCTAppSetupDefaultRootView, referenced from: -[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o _RCTAppSetupPrepareApp, referenced from: -[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o clang: error: linker command failed with exit code 1 (use -v to see invocation) ``` xcode 14 버전으로 생성된 프로젝트를 xcode 15버전으로 진행하여 실행했는데 빌드단계에서 에러가 계속 발생해서 혹시 도움좀 주실수있을까요? System: OS: macOS 14.0 CPU: (12) arm64 Apple M2 Pro Memory: 647.83 MB / 32.00 GB Shell: 5.9 - /bin/zsh Binaries: Node: 18.17.1 - ~/.nvm/versions/node/v18.17.1/bin/node Yarn: 1.22.19 - ~/.nvm/versions/node/v18.17.1/bin/yarn npm: 9.6.7 - ~/.nvm/versions/node/v18.17.1/bin/npm Watchman: 2023.09.25.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.11.3 - /Users/heejinroh/.rvm/gems/ruby-3.2.1/bin/pod SDKs: iOS SDK: Platforms: DriverKit 23.0, iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0 Android SDK: Not Found IDEs: Android Studio: 2022.3 AI-223.8836.35.2231.10671973 Xcode: 15.0.1/15A507 - /usr/bin/xcodebuild Languages: Java: 11.0.11 - /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/javac npmPackages: @react-native-community/cli: Not Found react: 18.1.0 => 18.1.0 react-native: 0.70.8 => 0.70.8 react-native-macos: Not Found npmGlobalPackages: *react-native*: Not Found

개발자

#react-native

#xcode

#build

답변 0

댓글 0

조회 326

2년 전 · 손호영 님의 질문

크롬에서 API 구축문제

VM283:5 crbug/1173575, non-JS module files deprecated.라는 에러가 떴다. 이에 모든 것을 해결했는데 되지 않았았다 어떻게 해야할까요?

개발자

#api

답변 0

댓글 0

보충이 필요해요 1

조회 82

2년 전 · 닉네임을 등록해주세요 님의 질문

VM에 VPN(Wireguard)을 통한 접속 방법

안녕하세요. 제발 도움 부탁드리겠습니다. *** 제가 궁극적으로 하고 싶은 것 : 외부에서 노트북으로, 저희 집 데스크톱에 VM으로 띄워 놓은 서버에 VPN을 통해서 접속 (네트워크 지식이 부족하여, 어느 부분이 빠졌는지, 뭘 고려해야하는지, 뭘 알아야하는지... 등 조언과 훈수 부탁드립니다. 구체적인 방법을 알려주시면 가장 좋고요ㅠ) 현재 저의 상태입니다. 1. LG 유플러스 인터넷 사용, 집에 있는 데스크톱에 랜선을 꽂아서 인터넷 사용중 (IP : 192.168.219.102) 2. VMware - Bridged 방식으로 VM 서버(Ubuntu 22.04) 하나를 띄워 놓음 (IP : 192.168.219.201) 3. 위의 VM 서버에 Wireguard VPN을 설치 (VPN 서버 + 개인용 웹서버로 사용하기 위해) 4. https://jjeongil.tistory.com/2062 블로그를 보며 VPN 서버 구축을 함 5. Wireguard 설정 ㅇ 서버측 wireguard 설정(VM) [Interface] Address = 192.168.219.1/24 SaveConfig = true PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens33 -j MASQUERADE ListenPort = 51820 PrivateKey = xxxxxxxxxx= [Peer] PublicKey = xxxxxxxxxx= AllowedIPs = 192.168.219.202/32 ------------------------------------------------------------- ㅇ 클라이언트쪽 wireguard 설정(노트북) [Interface] PrivateKey = xxxxxxxxxx= Address = 192.168.219.202/24 [Peer] PublicKey = xxxxxxxxxx= AllowedIPs = 0.0.0.0/0 Endpoint = 192.168.219.201:51820 ============================================================= [ 로그 ] 2023-09-22 16:18:28.666678: [TUN] [srm-pjt-vm-server] Starting WireGuard/0.5.3 (Windows 10.0.22621; amd64) 2023-09-22 16:18:28.667384: [TUN] [srm-pjt-vm-server] Watching network interfaces 2023-09-22 16:18:28.669947: [TUN] [srm-pjt-vm-server] Resolving DNS names 2023-09-22 16:18:28.669947: [TUN] [srm-pjt-vm-server] Creating network adapter 2023-09-22 16:18:28.750000: [TUN] [srm-pjt-vm-server] Using existing driver 0.10 2023-09-22 16:18:28.762403: [TUN] [srm-pjt-vm-server] Creating adapter 2023-09-22 16:18:28.967072: [TUN] [srm-pjt-vm-server] Using WireGuardNT/0.10 2023-09-22 16:18:28.967588: [TUN] [srm-pjt-vm-server] Enabling firewall rules 2023-09-22 16:18:28.938662: [TUN] [srm-pjt-vm-server] Interface created 2023-09-22 16:18:28.972410: [TUN] [srm-pjt-vm-server] Dropping privileges 2023-09-22 16:18:28.972410: [TUN] [srm-pjt-vm-server] Setting interface configuration 2023-09-22 16:18:28.972932: [TUN] [srm-pjt-vm-server] Peer 1 created 2023-09-22 16:18:28.974501: [TUN] [srm-pjt-vm-server] Monitoring MTU of default v4 routes 2023-09-22 16:18:28.974501: [TUN] [srm-pjt-vm-server] Interface up 2023-09-22 16:18:28.977259: [TUN] [srm-pjt-vm-server] Setting device v4 addresses 2023-09-22 16:18:28.995686: [TUN] [srm-pjt-vm-server] Monitoring MTU of default v6 routes 2023-09-22 16:18:29.023405: [TUN] [srm-pjt-vm-server] Setting device v6 addresses 2023-09-22 16:18:29.072431: [TUN] [srm-pjt-vm-server] Startup complete 2023-09-22 16:18:29.070847: [TUN] [srm-pjt-vm-server] Sending handshake initiation to peer 1 (192.168.219.201:51820) 2023-09-22 16:18:34.106156: [TUN] [srm-pjt-vm-server] Handshake for peer 1 (192.168.219.201:51820) did not complete after 5 seconds, retrying (try 2) 2023-09-22 16:18:34.106156: [TUN] [srm-pjt-vm-server] Sending handshake initiation to peer 1 (192.168.219.201:51820) 2023-09-22 16:18:39.107654: [TUN] [srm-pjt-vm-server] Sending handshake initiation to peer 1 (192.168.219.201:51820) 2023-09-22 16:18:44.115294: [TUN] [srm-pjt-vm-server] Sending handshake initiation to peer 1 (192.168.219.201:51820) 2023-09-22 16:18:49.267198: [TUN] [srm-pjt-vm-server] Handshake for peer 1 (192.168.219.201:51820) did not complete after 5 seconds, retrying (try 2) 2023-09-22 16:18:49.267198: [TUN] [srm-pjt-vm-server] Sending handshake initiation to peer 1 (192.168.219.201:51820) 2023-09-22 16:18:54.340284: [TUN] [srm-pjt-vm-server] Handshake for peer 1 (192.168.219.201:51820) did not complete after 5 seconds, retrying (try 2) 2023-09-22 16:18:54.340284: [TUN] [srm-pjt-vm-server] Sending handshake initiation to peer 1 (192.168.219.201:51820) 2023-09-22 16:18:59.355253: [TUN] [srm-pjt-vm-server] Sending handshake initiation to peer 1 (192.168.219.201:51820) 2023-09-22 16:19:04.414034: [TUN] [srm-pjt-vm-server] Handshake for peer 1 (192.168.219.201:51820) did not complete after 5 seconds, retrying (try 2) 2023-09-22 16:19:04.414034: [TUN] [srm-pjt-vm-server] Sending handshake initiation to peer 1 (192.168.219.201:51820) 2023-09-22 16:19:07.916126: [TUN] [srm-pjt-vm-server] Shutting down 2023-09-22 16:19:07.922350: [MGR] [srm-pjt-vm-server] Tunnel service tracker finished

개발자

#network

#ubuntu

#vpn

#wireguard

#vm

답변 0

댓글 0

조회 421

2년 전 · 익명 님의 질문 업데이트

채팅 새로고침시 연결 끊기는 문제

안녕하세요. 현재 Websocket과 stompjs v6.0.0을 활용해 채팅을 구현했습니다. roomId로 여러 채팅방을 만들 수 있게 구현했고, 현재 새로고침을 하지 않는 이상 잘 돌아갑니다. 그러나, 새로고침 할 시에는 바로 연결이 끊겨 이전의 채팅 내역도 보이지 않고, 연결, 구독 내역이 사라집니다 ... 어떻게 reconnect 해야할까요? 단순히 채팅 페이지에서 useEffect로 connect를 다시 하니 이미 연결 구독이 된 상태라고 뜨더라구요 .... ㅠㅠ (고민글을 올렸을 때 채팅방이 생성되고, 연결 구독이 됩니다. 채팅 시작 버튼을 눌렀을 경우에는 본인이 연결 구독이 되어 1대 1로 상대방과 채팅이 시작되는 구조입니다. ) import { CompatClient, Stomp } from "@stomp/stompjs"; import { createContext, useContext, useMemo, useRef } from "react"; import { useSetRecoilState } from "recoil"; import { messageState } from "../../states/chatting"; import audio from "../../assets/audios/chatting.mp3"; const ChatContext = createContext( {} as { connect: (roomId: number) => void; disconnect: () => void; send: (roomId: number, message: string) => void; }, ); export const useChatContext = () => useContext(ChatContext); export function ChatProvider({ children }: any) { const setMessages = useSetRecoilState(messageState); const token = localStorage.getItem("accessToken"); // 채팅 연결 구독 const client = useRef<CompatClient>(); const connect = (roomId: number) => { client.current = Stomp.over(() => { const sock = new WebSocket("wss://m-ssaem.com:8080/stomp/chat"); return sock; }); client.current.connect( { token: token, }, () => { client.current && client.current.subscribe( `/sub/chat/room/${roomId}`, (message) => onMessageReceived(message, roomId), { token: token!, }, ); }, ); return client; }; const onMessageReceived = (message: any, roomId: number) => { const audioElement = new Audio(audio); audioElement.play(); setMessages((prevMessages) => { const updatedMessages = { ...prevMessages, [roomId]: [...(prevMessages[roomId] || []), JSON.parse(message.body)], }; return updatedMessages; }); }; // 채팅 나가기 const disconnect = () => { if (client.current) { client.current.disconnect(() => { window.location.reload(); }); } }; // 채팅 보내기 const send = (roomId: number, message: string) => { if (client.current) { client.current.send( `/pub/chat/message`, { token: token, }, JSON.stringify({ roomId: roomId, message: message, type: "TALK", }), ); } }; const handlers = useMemo(() => ({ connect, disconnect, send }), []); return ( <ChatContext.Provider value={handlers}>{children}</ChatContext.Provider> ); } ----------이 부분은 connect 하는 부분입니다 --------- const { connect } = useChatContext(); const chatRoomId = worryBoard && worryBoard.chatRoomId; const handleStartChatting = () => { navigate(`/chatting`); connect(chatRoomId!!); }; ------------ 채팅 페이지는 따로 있습니다 --------------

개발자

#websocket

#stompjs

#채팅

#chatting

#react

답변 0

댓글 0

조회 345

2년 전 · 익명 님의 질문

쿠버네티스 고수님들 있으신가요....?

사내 망 베어메탈 환경에 구축된 쿠버네티스 클러스터에, 사외 망에 있는 VM 10대를 워커 노드로 추가하려고 합니다. 문제가 VM 특성 상 NAT IP 1개에 SSH 접속 포트는 10개로 (1xx01~1xx10) 구별하고 있고, 모든 포트도 오픈 할 수 없는 상황입니다. 이런 조건에서 VM을 워커노드로 추가가 가능한 것인지..., 가능하다면 좋은 방법이 있으신지 질문 드려봅니다. 노드 추가는 Kubespray로 하고 있고, CNI는 calico 환경입니다.

개발자

#쿠버네티스

#k8s

답변 0

댓글 0

추천해요 1

조회 87

2년 전 · 익명 님의 새로운 댓글

채팅 기능 client 가 null 값이 돼요

하나의 페이지에서 connectHandler를 작동하고 또다른 페이지에서 sendHandler를 작동하려고 하는데 이렇게 해서는 useChat()이 리렌더링 되면서 client 값이 초기화가 되더라구요 값을 유지하고 싶고 recoil에 client를 담는 건 불가능이라고 떠서... connectHandler와 sendHandler를 다른 hooks로 분리하는 방법도 생각해봤는데 그러면 또 client값이 connect한 값이 아니더라구요 무슨 방법이 있을까요? 제발 도와주세요 ㅠㅠ (한 페이지에서 connectHandler, sendHandler, disconnectHandler 실행하면 잘 작동합니다!) import { CompatClient, Stomp } from "@stomp/stompjs"; import { useRef } from "react"; import { useRecoilState } from "recoil"; import { inputMessageState, messageState } from "../../states/chatting"; export function useChat() { const [messages, setMessages] = useRecoilState(messageState); const [inputMessage, setInputMessage] = useRecoilState(inputMessageState); const token = localStorage.getItem("accessToken"); // 채팅 연결 구독 const client = useRef<CompatClient>(); const connectHandler = () => { client.current = Stomp.over(() => { const sock = new WebSocket("wss://m-ssaem.com:8080/stomp/chat"); return sock; }); client.current.connect( { token: token, }, () => { client.current && client.current.subscribe(`/sub/chat/room/1`, onMessageReceived, { token: token!, }); }, ); }; const onMessageReceived = (message: any) => { setMessages((prevMessage) => [...prevMessage, JSON.parse(message.body)]); }; // 채팅 나가기 const disconnectHandler = () => { if (client.current) { client.current.disconnect(() => { window.location.reload(); }); } }; // 채팅 보내기 const sendHandler = () => { if (client.current && inputMessage.trim() !== "") { client.current.send( `/pub/chat/message`, { token: token, }, JSON.stringify({ roomId: 1, message: inputMessage, type: "TALK", }), ); setInputMessage(""); } }; return { connectHandler, disconnectHandler, sendHandler, }; }

개발자

#react

#chatting

#stompjs

답변 1

댓글 8

조회 241

2년 전 · 익명 님의 질문 업데이트

모니터링 관제를 보고 있는데 이게 맞는건지 모르겠습니다.

안녕하세요. 자바 기반으로 개발을 하고 있는 벡엔드 개발자입니다. 개발을 하면 할 수록 뭔가 좀 그런거 같아서 한 번 질문드려봅니다. 최근 저희 회사에서 자바 기반으로 모니터링 관제가 만들어졌는데요. 해당 모니터링 관제 내용을 보면 jvm내에서 힙 메모리 사용량, 쓰레드 갯수, 상태, minor(major) gc pause avg(max) time 등등 자바 애플리케이션의 하나하나 세세한 부분까지 해서 볼 수 있는 모니터링이라고 보시면 될 거 같은데요. 처음 나왔을때 보니까 뭔가 신기해 보이긴했는데, 이걸 통해서 좀 더 안정적인 서비스를 만드는데 도움준다는 것은 동의합니다. 한 서비스 내에 여러 부분에(쓰레드 갯수, 혹은 상태) 기준이 있는데 기준이 넘어가면 위에서 지적을 하게 됩니다. 다만 처음에만 그렇지 이게 시간이 지날수록 힘든 것보다는 좀 답답하다는 느낌이 들더라구요. 여러가지 중에 하나는 이상수치에 관한 기준입니다. 예를 들면 minor gc를 하게 되면 일시적으로 애플리케이션이 멈추게 되잖아요.(stop-the-world) 그 시간이 100ms 이상이면 이상이 있다고 알람이 울리거든요. gc pause time이 100ms가 넘어가고, 그게 지속적으로 쭉 유지가 되는 부분인거라면 애플리케이션 기능,규모 혹은 트래픽 상태에 다를 수도 있겠지만 상황에 따라서는 이상이 있다고 판단할 수도 있다고 생각합니다. 그런데 제가 생각하기에는 애플리케이션 기능, 규모, 혹은 트래픽 상태 이런 여러 가지를 고려하면서 기준점을 잡아야 하는데, 위에서 어떤 애플리케이션 관계없이 무조건 100ms 넘기면 안돼 이래버리니 이게 맞나 싶습니다. 심지어 트래픽 때문에 일시적(1~2초정도)으로 살짝 넘어간 상태에서 수치가 내려갔는데도 (이런 추이도 하루에 한 번정도), 위에서는 애플리케이션이 이상이 있다고 판단을 해버리고(물론 엔드포인트 단에서는 잘 동작하고, 이거 관련해서 고객쪽에서 이슈 요청된 적이 한번도 없습니다.), 여지껏 정상적으로 쭉 동작하고 있었는데도 그런 모니터링 수치로 인해 리펙토링을 몇번씩 했던거 같거든요. 물론 같은 시간/패턴/수치로 알람이 계속적으로 울리게 된다면 의심정도는 하고 추후에 이상징후가 더 심해지면 개선을 하는거면 이해를 하는데, 그런상황은 아니라서 뭔가 불필요한 리소스를 계속 쓰는 듯한 느낌이 듭니다. 그래서 이 부분에 대해서 위에 보고를 했는데, 지금 이렇게 알람 울리니까 알람 안 울리겠끔 개선해라라는 식입니다. 사실 저는 해당 모니터링 자체가 제대로 로깅을 하고 있는지도 의심이 갈 정도이긴 합니다. (사실 그런게 한두가지가 아니긴 하지만 여기서 말하기는 길기에 생략하겠습니다.) 어떤 근거로 인해 기준을 잡고 까다롭게 모니터링을 하는거면 이해를 하겠는데, 솔직히.. 잘 모르겠습니다. 혹시 다른 회사에서는 모니터링을 어떻게 체크를 하는지, 혹은 원래 저렇게 고정된 기준을 가지고 모니터링을 관리하는지가 궁금합니다.

개발자

#자바

#모니터링

#벡엔드

#개발자

답변 0

댓글 0

추천해요 1

조회 109