7달 전 · 익명 님의 질문
MacBook에서 Windows Docker 서버 접속 시 sudo가 필요한데 원인이 뭘까요?
문제 현재 Windows 데스크톱과 MacBook을 사용 중이며, 두 기기는 동일한 로컬 네트워크에 연결되어 있습니다. - 데스크톱(Windows): 유선 랜(Ethernet)으로 연결 - MacBook: Wi-Fi로 연결 Windows 데스크톱에서 Docker를 이용해 로컬 웹 서버(포트 9000)를 실행 중입니다. 컨테이너는 -p 9000:9000 옵션으로 실행되었으며, 0.0.0.0:9000에서 요청을 받을 수 있도록 설정되어 있습니다. 데스크톱에서는 Chrome를 통해 정상적으로 웹 인터페이스에 접속할 수 있습니다. 그러나 MacBook의 Chrome에서 접속하면 페이지를 찾을 수 없다고 합니다. 이상하게도,,, Chrome을 sudo로 실행하면 페이지가 정상적으로 로드됩니다. 추가 정보 - 데스크톱(Windows)과 MacBook은 같은 서브넷에 속해 있습니다. - 웹 서버는 0.0.0.0:9000에서 요청을 받을 수 있도록 설정되어 있어, 다른 기기에서도 접근 가능해야 합니다. - MacBook에서 nc -zv <데스크톱-IP> 9000을 실행하면 포트가 열려 있음을 확인했습니다. - Python 코드에서 requests.get("http://<데스크톱-IP>:9000")을 실행하면, 일반 실행 시 실패하지만 sudo로 실행하면 정상적으로 작동합니다. - MacBook에는 단 하나의 사용자 계정만 존재하며, 해당 계정은 관리자(Admin) 권한을 가지고 있습니다. - macOS 방화벽은 비활성화되어 있으며 (/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate로 확인), sudo pfctl -d로 pf 방화벽을 꺼도 문제가 해결되지 않았습니다. 현재까지 파악한 내용 sudo로 실행하면 정상적으로 동작하기 때문에, 현재 문제는 네트워크 연결 자체의 문제가 아니라 macOS의 보안 정책 또는 네트워크 제한과 관련된 것이 아닐까,, 생각하고 있습니다. 해결하고 싶은 질문 - 왜 Chrome을 sudo로 실행해야만 웹 서버에 접속할 수 있을까요? - 왜 일반 사용자 권한으로 실행한 Python의 requests.get() 요청이 차단되고, sudo를 사용해야만 정상적으로 동작할까요? - macOS에서 일반 사용자 프로세스의 네트워크 접근을 제한하는 정책이 있는 걸까요? 있다면 어떻게 해결할 수 있을까요? 스크립트에 모두 sudo를 붙이면 문제가 해결되긴 합니다만,, 명확한 원인이 궁금합니다. 혹시 비슷한 경험을 하신 적이 있는 분이 계시다면 조언 부탁드립니다! 혹은 힌트 키워드라도 던져주시면 감사하겠습니다!
개발자
#mac
#docker
#local-network
답변 0
댓글 0
조회 84
7달 전 · 익명 님의 질문
웹소켓 + Stomp로 채팅 기능을 구현하며
RabbitMQ를 도입하였습니다. 도입의 이유는 스프링 내장 메시지 브로커를 이용하게 되면 인메모리 기반의 동작 방식으로 인해 서버 문제 발생 시 메시지가 유실되거나 확장에도 제한이 있다고 판단하여 도입하였습니다. 현직자 분들이 보기에 이 이유가 적합한 근거가 될까요? 추가로 JMeter로 RabbitMQ를 사용했을 때와 사용하지 않았을 때의 성능을 비교했는데 사용자 100명 기준 성능도 사용하지 않았을 때가 우세했고, RabbitMQ를 사용했을 때는 오히려 아래와 같은 오류가 가끔 발생하며 메시지또한 약 90퍼센트 정도만 저장된걸 확인할 수 있었습니다. 무엇이 문제이며 해결 방안이 있을까요?? java.net.SocketException: Connection reset at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394) ~[na:na] at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426) ~[na:na] at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) ~[netty-buffer-4.1.114.Final.jar:4.1.114.Final] at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) ~[netty-buffer-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[netty-transport-4.1.114.Final.jar:4.1.114.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.114.Final.jar:4.1.114.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.114.Final.jar:4.1.114.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.114.Final.jar:4.1.114.Final] at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]
개발자
#채팅
#구현
답변 0
댓글 0
조회 104
일 년 전 · 노원재 님의 답변 업데이트
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
조회 623
일 년 전 · 익명 님의 새로운 댓글
왜 이렇게 나올까요 ㅠㅠ 도와주세요 ㅠㅠ
Fatal Python error: init_import_site: Failed to import the site module Python runtime state: initialized Traceback (most recent call last): File "<frozen importlib._bootstrap>", line 1176, in _find_and_load File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 690, in _load_unlocked File "<frozen importlib._bootstrap>", line 980, in exec_module File "<frozen site>", line 626, in <module> File "<frozen site>", line 612,
개발자
#python3
답변 1
댓글 1
보충이 필요해요 2
조회 240
일 년 전 · 김지엽 님의 새로운 답변
"react-native doctor"에서 에러 반복 (Adb, Android Studio)
"npx react-native doctor"를 실행하여 문제를 찾고, F(fix)를 눌러 에러 해결을 진행하였습니다. ---------------------------------------------------------- Common ✓ Node.js - Required to execute JavaScript code ✓ npm - Required to install NPM dependencies ● Metro - Metro Bundler is not running Android ✖ Adb - No devices and/or emulators connected. Please create emulator with Android Studio or connect Android device. ✓ JDK - Required to compile Java code ✖ Android Studio - Required for building and installing your app on Android ✓ ANDROID_HOME - Environment variable that points to your Android SDK installation ✓ Android SDK - Required for building and installing your app on Android Errors: 2 Warnings: 1 Attempting to fix 3 issues... Common ✖ Metro Could not start the bundler. Please run "npx react-native start" command manually. Android ✖ Adb √ Select the device / emulator you want to use » Emulator s24u (disconnected) ✔ Adb ✔ Android Studio installed successfully in "C:\Users\OOO\AppData\Local\Android". ---------------------------------------------- 그러나 여전히 에뮬레이터는 작동하지 않으며, 다시 "npx react-native doctor"를 실행하면 다시 같은 오류가 발생합니다. --------------------------------------------- Common ✓ Node.js - Required to execute JavaScript code ✓ npm - Required to install NPM dependencies ● Metro - Metro Bundler is not running Android ✖ Adb - No devices and/or emulators connected. Please create emulator with Android Studio or connect Android device. ✓ JDK - Required to compile Java code ✖ Android Studio - Required for building and installing your app on Android ✓ ANDROID_HOME - Environment variable that points to your Android SDK installation ✓ Android SDK - Required for building and installing your app on Android Errors: 2 Warnings: 1 Usage › Press f to try to fix issues. › Press e to try to fix errors. › Press w to try to fix warnings. › Press Enter to exit.
개발자
#react
#react-native
#안드로이드
#android-studio
#android
답변 1
댓글 0
조회 687
2년 전 · 세혁 님의 새로운 댓글
클라이언트, 서버 두 DB의 데이터를 동시에 수정할 때 무결성 보장
안녕하세요 어플리케이션을 만드는 도중 문제가 생겼습니다. indexedDB( 클라이언트 ), postgreSql( 서버 ) 2곳의 데이터를 동일하게 수정해야할 때 ( 추가, 삭제, 수정 등 ) 한 곳의 api 가 실패하는 순간 이미 수정이 된 곳의 트랜잭션을 롤백 ( abort ) 하여 연동된 두 곳의 데이터가 동일 하도록 무결성을 보장하고자 합니다. 그런데 2가지 문제를 발견하였습니다. 1. indexedDB 의 트랜잭션 도중 다른 api 의 await를 쓰는 순간 indexedDB 는 트랜잭션을 즉시 종료시켜 서버 데이터 수정이 실패해도 abort() 가 불가능하다. 2. postgreSql 의 트랜잭션은 next.js 의 서버사이드 api에서 쿼리를 날리기에 중간에 클라이언트 사이드의 indexedDB 수정 api 사용이 불가능하다. indexedDB는 idb, postgreSql 은 pg 라이브러리를 사용중입니다. 수정 되기 전 상태를 임의로 기록 > 2번째 api 실패? > 기록된 상태로 수정하는 api 요청 이라는 단순한 방법도 생각해봤지만 결국 마지막 상태로 수정하는 것도 별도의 api 요청이기에 이 것또한 실패할 시 무결성 보장이 되지않기에 포기하였습니다... 선배님들은 서버와 클라이언트 데이터를 연동할때 무결성 보장을 어떻게 하시나요? next.js 14 환경입니다.
개발자
#next.js
#indexeddb
#postgresql
#무결성
#데이터베이스
답변 1
댓글 1
조회 164
2년 전 · 이희수 님의 질문
Spring 파일 업로드 용량제한
안녕하세요 백엔드 개발자를 꿈꾸며 공부중인 학생입니다. 프로젝트 제작중에 파일 업로드 부분을 공부하고있는데 업로드 파일 사이즈 제한 방법으로 application.properties 에서 spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB 이런식으로 용량을 바꿔주는식으로 해결하는 방식이 거의 주로 나오더라고요.. 이 방식으로는 지정한 값보다 큰 파일 업로드에러를 막을수 없다고 생각이 들었습니다. 파일크기 제한으로 IOExeption 도 걸어놓았는데, 큰 파일 업로드 시도시 거기까지 가지도 못하는건지 에러가 발생하면서 페이지가 터지네요. 아무리 찾아봐도 다른 방식은 잘 보이지않는데 실무에서는 업로드 제한이 어떤 방식으로 이루어지는지 궁금합니다! ㅠㅠ
개발자
#spring
#java
답변 0
댓글 0
조회 363
2년 전 · 김태현 님의 새로운 댓글
sql문 부적합합니다..
spring boot 4 에서 웹개발프로젝트를 진행중입니다.. jsp페이지에서 받아온 searchText값을 쿼리문으로 비교 후 foodinfolist를 반환해주는데 sql developer에서는 SELECT * FROM foodinfolist WHERE food_name LIKE '%' || '치킨' || '%'; 해당 코드가 정상동작 돼서 잘 검색하지만 mapper.xml에서 <mapper namespace="com.springproj.dietwebservice.repository.IFoodInfoDAO"> <select id="findfoodinfo" parameterType="java.lang.String" resultType="com.springproj.dietwebservice.domain.FoodInfoVO">> <![CDATA[ SELECT * FROM foodinfolist WHERE food_name LIKE '%' || #{searchText} || '%' ]]> </select> </mapper> 해당 코드를 실행하면 sql문이 부적합합니다 라고 에러가 발생합니다.. 뭐가 문제인지 모르겠습니다.. searchText: 치킨 으로 데이터도 잘 담겨오는데.. [2m2024-01-31T16:24:22.500+09:00[0;39m [31mERROR[0;39m [35m8208[0;39m [2m---[0;39m [2m[nio-8090-exec-9][0;39m [2m[0;39m[36mo.a.c.c.C.[.[.[/].[dispatcherServlet] [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00900: SQL 문이 부적합합니다 선배님들 조언부탁드립니다..
개발자
#sql
#spring-boot
답변 4
댓글 2
추천해요 1
조회 596
2년 전 · 익명 님의 질문
exe파일 자동 로그인 보안에 대해서 궁금합니다.
안녕하세요. 간단한 앱을 exe파일로 배포하려고 하는데요. 만약 자동 로그인 서비스를 지원한다고 했을 때 유저의 아이디와 비밀번호 정보를 어딘가에 따로 저장해 놓고 불러와야 하는데 어떤 방식이 보안을 높이는 방법일까요.. 아무리 구글링 해봐도 관련 예제는 없어서 제 PC 카카오톡 exe파일 경로를 조금 뜯어 봤는데 pred(파일명) 파일 안에 "set_auto_login" 변수가 따로 있더군요. 이 변수 값을 통해 유저가 카카오톡을 실행 시켰을 때 자동 로그인 할지 안 할지 결정함을 예상할 수 있었습니다. 이때 자동 로그인을 한다고 가정 했을 때 결국에는 어딘가에 저장되어 있는 제 전화번호와 비밀번호 정보를 불러와야 합니다. 혹시 어떤 방식으로 제 정보를 저장하고 불러오는지 아시는 분 있을까요..?? 저장할 때 암호화는 당연히 진행하겠죠?? 암호화가 진행된다면 exe파일 내부에 public key도 어딘가에 존재하겠죠??? 조금 덧붙이자면 내부 파일 중 connect_conf 라는 파일이 존재했고 여기에 저장되어 있나 생각이 들긴 하는데 파일 형식이 뭔지 모르겠고 메모장으로 열어봐도 encoding이 되지 않은 상태로 뜹니다. 너무 궁금하네요.
개발자
#exe
#보안
답변 0
댓글 0
조회 158
2년 전 · 조진성 님의 새로운 댓글
exe파일 관련 질문 있습니다.
안녕하세요. 평소에 파이썬에 관심 있고 현재 작은 토이 프로젝트 진행 중 입니다. 현재 하고 싶은 것은 exe파일을 유저에게 배포했을 때, 그 유저가 다운 받고 필요하다면 원하는 내용을 json query로 제 메인 서버에 POST(request)하는 간단한 앱을 만들고 싶습니다. 우선 보안적으로 조금 예민한 정보가 있을 수 있어서 웹앱 보다는 사용자가 제 어플을 직접 다운받고 그 파일을 통해 제 메인서버와 communication을 하고 싶습니다. 일단 첫번째로 보안적으로 조금 위험할 수 있을까요? 또 만약 다른 방법을 추천하고 싶다면 어떤 방법을 사용해야 할까요? 참고로 제 메인 서버 및 데이터베이스는 모두 aws에 있으며, exe파일과의 통신 역시 aws 내부 인스턴스를 통해 할 생각입니다 !
개발자
#exe
#aws
#python
답변 1
댓글 2
추천해요 1
조회 88
2년 전 · 박병석 님의 답변 업데이트
C언어 오류 수정 질문
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define NO_STD 5 #define NO_SUB 4 struct ICT { int num; char name[20]; int score[NO_SUB]; int sum; float arg; int no; float total; char grade; }; int main(void) { int i, j; struct ICT std[NO_STD]; for (i = 0; i < NO_STD; i++) { std[i].sum = 0; printf("학번을 입력하세요 :"); scanf_s("%d", &std[i].num); printf("이름을 입력하세요 :"); scanf_s("%s", &std[i].name, sizeof(std[i].name)); for (j = 0; j < NO_SUB; j++) { printf("%d번째 학생의 %d번째 과목 점수를 입력하세요 :", i + 1, j + 1); scanf_s("%d", &std[i].score[j]); std[i].sum += std[i].score[j]; } std[i].arg = (float)std[i].sum / NO_SUB; printf("결석을 입력하세요 :"); scanf_s("%d", &std[i].no); std[i].total = std[i].arg - std[i].no * 0.5; if (std[i].total > 89) { std[i].grade = 'A'; } else if (std[i].total > 79) { std[i].grade = 'B'; } else if (std[i].total > 69) { std[i].grade = 'C'; } else { std[i].grade = 'F'; } } printf("순서\t학번\t이름\t중간\t중간2\t중간3\t중간4\t합계\t평균\t결석\t최종\t학점\n"); for (i = 0; i < NO_STD; i++) { printf("%d\t%d\t%s\t", i + 1, std[i].num, std[i].name); for (j = 0; j < NO_SUB; j++) { printf("%d\t", std[i].score[j]); } printf("%3d\t%.2f\t%d\t%.2f\t%s\n", std[i].sum, std[i].arg, std[i].no, std[i].total, std[i].grade); } } 에서 F11.로 한단계씩 디버그하기를 하면은 다 잘되는데 마지막 printf에서 예외 발생(0x00007FFFCFBAAC87(ucrtbased.dll), 2차중간고사.exe): 0xC0000005: 0xFFFFFFFFFFFFFFFF 위치를 읽는 동안 액세스 위반이 발생했습니다.. 이라고 뜨면서 합계부터 출력이 안됩니다. 이거 혹시 어떻게 해결해야되는지 아시나요....
개발자
#c
#오류
#초보자
답변 2
댓글 1
조회 171
2년 전 · 삭제된 사용자 님의 새로운 댓글
exe 파일은 어떻게 만드나요?
안녕하세요! 비전공자이지만 친구들끼리 공유할 수 있는 사진첩을 만들고 싶은데 어떻게 시작할지 모르겠습니다. 일단 exe를 응용프르그램이라고 읽는 게 맞을까요? 아니면 죄송합니다... PC카톡이나 디스코드처럼 응용 프로그램을 실행해서 사용할 수 있게 만들고 싶은데 지식이 짧아서 제가 가진 능력으로는 어떤 프로그램을 사용해서 어떤 언어로 만드는지 찾기 어려워 여기에 질문를 하게 되었습니다. 만들고 싶은 게 어떤 느낌인지 정리하자면 1. 실행 파일처럼 만들고 싶습니다. 2. 특정 사람들만 들어오게 만들고 싶습니다(로그인 기능) 3. 각자 사진을 올릴 수 있고 모두가 같이 볼 수 있습니다. 2, 3번은 그렇다쳐도 1번이 정말 궁금합니다.. 어떤거든 코드로 작성해도 항상 결과물을 확인하는 건 크롬창인데 이런 사이트 느낌이 아닌 말 그대로 응용 프로그램을 다운 받고 실행하는 걸 만들고 싶습니다... 혹시 방법을 아시는 분 있을까요?
개발자
#비전공자
답변 1
댓글 2
조회 210
2년 전 · 손호영 님의 질문
에러를 해결하기 위해서 해야하는 조치를 알려주세요
import pymysql conn=pymysql.connect(host="localhost",user="root",passwd="1234",database="love2") curs=conn.cursor() sql="select * from 5_days" curs.execute(sql) rows=curs.fetchall() print(rows) conn.close exited with code=9009 in 0.342 seconds를 해결방법을 알려주세요
개발자
#mysql
#python
답변 0
댓글 0
보충이 필요해요 1
조회 61
2년 전 · 행복한뉴비 님의 답변 업데이트
프로그램에 사용된 언어가 어떤건지 모르겟어요...
코딩을 독학으로 하고있는데 목표하는 윈도우 어플이 있습니다. 그런데 어떤 언어로 작성되고 실행되는지를 모르겠습니다.. 예상으로는 C++ , C# 정도로 예상되는데 어플 이름은 Allo 입니다. (웹 아니고 exe파일로 실행되는 어플입니다.) 클론 코딩을 하면서 배워나가고 싶은데 도움좀 부탁드립니다.. 어떤언어로 프로그램을 만들면 되는지 ...
개발자
#클론코딩
#독학
#언어
답변 2
댓글 0
조회 574
2년 전 · 권준수 님의 새로운 댓글
Next.js에서 URL 파라미터에 한글 입력시 오류가 발생합니다.
[Next.js 13.4.1] 아무 경로나 그냥 URL에 http://localhost:3000?test=테스트 대충 이렇게 쳐도 ---------- Failed to fetch RSC payload. Falling back to browser navigation. TypeError: Failed to execute 'fetch' on 'Window': Failed to read the 'headers' property from 'RequestInit': String contains non ISO-8859-1 code point. ---------- 위와 같은 오류가 발생합니다. 여기저기 구글링 해본 결과 URL에 유니코드 문자가 들어가면 이런 문제가 발생하는 것 같은데 Next.js 공식문서에도 없는 거같고... 파라미터의 한글을 urlencode로 변환도 해보고 별짓을 다해봤는데 해결이 안되네요 어떻게 해야할까요?
개발자
#next.js
답변 1
댓글 1
조회 864
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
조회 923
3년 전 · 익명 님의 새로운 댓글
node js 스크립트 윈도우에서 돌아가는 exe로 만들기
node js 파일을 exe 파일로 변경하는 방법 아시는 분 있나요? 짧은 스크립트 짜서 친구한테 카카오톡으로 보내려고 하는데, 어떻게 하는지 잘 모르겠어서요.
개발자
#node.js
답변 1
댓글 1
추천해요 1
조회 811
2년 전 · 최경훈 님의 새로운 답변
채팅서비스 운영시 front-end에서 채팅 관련 데이터는 어떻게 관리하는게 좋을까요?
채팅 서비스 관련하여 프로젝트를 시작하는데 보통 채팅 데이터를 어떤 방법으로 관리하는지 알고 싶습니다. 전에 채팅 서비스를 한번 구현해 보기는 했는데 그때는 주요 서비스가 아니라서 주먹구구식으로 indexed DB로 대충 관리했었는데 이번 프로젝트는 채팅이 주요 서비스라서 채팅 서비스 운영해 보신 분에게 조언을 받고 싶습니다. 주요 채팅 관련 웹/앱은 어떤 식으로 사용하는지 검색해 보았는데 프런트 기술은 잘 없어서 많이 고민이 됩니다. react로 개발하고 웹뷰로 앱을 대체 할것같습니다
개발자
#react
#webview
#채팅
#채팅어플
#front
답변 2
댓글 0
조회 315
2년 전 · 김병수 님의 답변 업데이트
Python 배포 관련 질문합니다.
Exe 파일로 배포했을때 코드 내에 gpu 사용을 강제하는데.. 혹시 로컬컴퓨터의 cuda버전의 설치파일을 배포받을 다른 컴퓨터에 설치하면 실행이 되나요?
개발자
#python
답변 1
댓글 0
조회 153
2년 전 · 커리어리 AI 봇 님의 새로운 답변
HTML div contenteditable=true로 에디터 만드는데
div 태그에서 contenteditable=true를 적용하여 에디터를 만드는데 볼드체와 글꼴색상만 필요합니다~ 근데 볼드체 적용하면 글꼴색상(빨간색)은 적용안되고, 글꼴색상(빨간색)을 적용하면 볼드체는 또 적용안되고.. 즉, 빨간색+볼드체가 동시에 적용이 안되는데, 어떻게 코드를 작성해야 좋을까요 ㅠㅠ 고수님들 답변 부탁드립니다! const btnBold = document.getElementById('btn-bold'); btnBold.addEventListener('click', function () { setStyle('bold'); }); function setStyle(style) { document.execCommand(style); focusEditor(); } function focusEditor() { editor.focus({preventScroll: true}); } const selectFontColor = document.getElementById('select-font-color'); selectFontColor.addEventListener('change', function () { setFontColor(this.value); }); function setFontColor(color) { document.execCommand('foreColor', false, color); focusEditor(); }
개발자
#자바스크립트
답변 1
댓글 0
조회 506
3년 전 · 윤석현 님의 댓글 업데이트
exe파일에서 DB가 돌아가는 원리가 어떻게 되는건가요?
파이썬에서 Designer로 간단한 프로그램을 만들었는데 현재는 db 정보를 pymysql.connect(host='127.0.0.1', user='root', password='1234', db='infra', charset='utf8') 이런식으로 불러오고 있습니다. 하지만 프로그램을 다 만들고 든 생각이 다른 DB연동된 소프트웨어들을 보면 내 컴퓨터에 아무것도 안깔려있어도 데이터 정보를 생성, 수정, 삭제할수 있네? 어디에 저장하는거지? 였습니다. github에서 다른분이 만든 작은 프로젝트를 봤는데 이 프로젝트에는 .db라는 파일이 있던데 이 파일은 어디서 만드는 것이고(mysql? pycharm?) 데이터가 많아져서 용량이 방대해지면 어떻게 되는지 궁금합니다. 구글에서 찾아봐도 전부 본인컴퓨터 DB와 연동하는 내용뿐이네요ㅠㅠ
개발자
답변 2
댓글 5
추천해요 2
조회 791
3년 전 · 손정현 님의 새로운 답변
보여지는 것과 구동되는 로직을 어떻게 연결해야 할까요?
저는 데스크탑 앱을 만드려고 생각하고 있습니다. 개인적으로 선호하는 언어가 파이썬이기도 하고, 제작할 앱에 크롤링과 GUI 기능이 있어 개발 언어를 파이썬으로 하려고 생각했습니다. 그런데 개발하던 도중, 여러 문제점을 알게 되어 질문드립니다! 1. 파이썬이 실행파일(exe 파일)로의 변환에 대한 지원이 타 언어에 비해 약하던데, 데스크탑 앱을 만드는데에 추천할만한 언어나 프레임워크가 있을까요? 2. 파이썬으로 로직을 짜고, 일렉트론으로 프론트(?)를 짜고 연결할 방법이 있을까요?
개발자
#앱개발
답변 1
댓글 0
추천해요 3
조회 344
3년 전 · 익명 님의 새로운 댓글
Oracle홈페이지에서 영어 해석을 하는데..
Oracle will fire this trigger before the INSERT operation is executed. 여기서 will fire을 무슨의미로 해석해야하나요
개발자
#백엔드
#프론트엔드
답변 1
댓글 1
추천해요 1
조회 162
2년 전 · 커리어리 AI 봇 님의 새로운 답변
R과 Github 연동이 안됩니다...
git 설치하고 R의 Git/SVN에서 git executable도 잘 설정해주고 프로젝트 새로 만들어서 version control로 제 링크 잘 넣어서 해줘도 Environment에 Git이 안생기고, 연동도 안돼요... Git 새로 공부하는 대학생 나부랭이 조금만 도와주세요...ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ
개발자
답변 1
댓글 0
추천해요 1
조회 153