#table

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

한 달 전 · Learning by Doing 님의 새로운 답변

퇴사한 회사에서 수행했던 데이터 분석 작업물, 이직시 포트폴리오 자료로 사용할 수 있나요?

안녕하세요, 신입 데이터 분석가입니다. 외국계 기업에서 계약직 신분으로, 데이터 분석 직무를 수행하다가 최근에 계약이 끝났습니다. 첫 경력이었던 만큼, 이를 잘 발판 삼아서 취업 준비를 다시 하려고 하는데요. 직무가 데이터 분석인 만큼, 경력을 업데이트한 이력서뿐만 아니라 포트폴리오 준비도 중요하다고 생각합니다. 서류 제출과 면접 단계에서 직무 성과와 전문성을 어필하기 위해, 재직했던 회사에서 수행한 데이터 분석 작업물을 정리해서 포트폴리오로 만들려고 하는데요. Q. 재직했던 회사의 작업물을 포트폴리오로 제작하여 이직시 서류와 면접에서 활용하는 것이 통상적인지 궁금합니다. Q. 만약 통상적이라면, 시각화 자료와 대시보드를 포트폴리오에 포함시키되, 회사 관련 모든 데이터(명칭, 수치 등)는 블러/픽셀 처리하면 충분한지 궁금합니다. ※ 이전 직장에서 데이터 분석을 수행한 2개의 작업물이 있고, 특징은 다음과 같습니다. [작업물 A] - 제 개인 PC 상에서 전담하여 수행 - Python으로 데이터 처리, 모델링, 시각화 등을 수행 - 회사의 매출 데이터(유통 채널별/일별/상품 카테고리별) 사용 [작업물 B] - 회사 PC 상에서 전담하여 수행 - Tableau로 대시보드를 제작 - 회사의 매출 데이터(유통 채널별/일별/상품 카테고리별) 사용 ※ 제가 날인한 사직원에 다음과 같은 조항이 있었습니다. “재직시 지득한 업무내용이나 각종 정보 기타 제반 비밀사항을 타인에게 누설할 경우 회사의 경영에 막대한 손해와 피해를 준다는 사실을 이해하고 일체 이를 누설, 공개하지 않겠습니다. 상기 사항을 위반할 시, 이유 여하를 막론하고 서약에 의거 민, 형사상의 모든 책임을 지며 회사가 요구하는 손해배상의 의무를 지겠습니다”

PM/PO/기획자

#데이터분석

#회사작업물

#포트폴리오

답변 1

댓글 0

조회 172

2달 전 · 이병욱 님의 질문

React 리렌더링 질문있습니다.

안녕하세요. React를 사용하는 프로젝트에서 테이블을 생성하여 editable 가능하도록 개발하고 있습니다. 해당 테이블에 input도 있고 switch 기능도 있습니다. editable 테이블의 경우 전체 테이블 값을 다 받아서 업데이트 하는 형식입니다. 원래는 ref를 사용해서 진행하려고 했는데 input 과 switch 가 동시에 있어서 row 단위에 값을 받을 때 문제가 발생됩니다..(rows state 와 ref 와 데이터 불일치가 발생됨) 저는 input 에 1글자 쓸 때마다 리렌더링 되는게 안좋다고 생각해서 ref를 사용한건데 그냥 rows state만 사용하고 memo로 리렌더링을 줄이는게 맞을까요? 고견부탁드리겠습니다(_ _)

개발자

#react

답변 0

댓글 0

추천해요 1

조회 35

4달 전 · 익명 님의 질문

안녕하세요 초보 개발자 입니다. 오라클 데이터베이스 백업 오류좀 도와주세요 !!

기존 데이터베이스 서버를 외장하드에 백업 하려고 하는데 UNDO TABLESPACE 인 UNDOTBS01.DBF 라는 파일을 읽을 수 가 없다고 떠서 UNDO TABLESPACE 인 UNDO_NEW01.DBF를 만들고 UNDO_NEW01.DBF가 UNDO 역할을 하게끔 만들어 놓고 기존에 쓰던 UNDOTBS01.DBF 파일을 삭제하였습니다. 그랬더니 계속 RMAN-06056 : 3 데이터를 엑세스 할 수 없습니다. 라면서 RMAN으로 백업이 안되는데 도와주실분..!

개발자

#데이터베이스

#database

#oracle

#db

답변 0

댓글 0

조회 31

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

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

조회 429

7달 전 · 김준석 님의 새로운 댓글

Next.js 코드 가독성..

안녕하세요 프론트앤드 1년차에 다가가고 있는 신입 개발자입니다. 현재 Next14를 사용하고 있으며 코드의 가독성, 효율성을 많이 고려하면서 코드를 짜려고하는데 너무 고민이 되네요 저보다 앞서서 달려가고 있는 개발자 선배님의 생각을 듣고싶습니다 ㅠㅠ... 2가지가 궁금합니다. 먼저 첫번째 이미지처럼 Version에 관련된 파일을 저렇게 분리했을 때 저는 Version의 최상위 Layout.tsx에서 모든 것을 선언하기가.. 너무 오히려 가독성이 안좋다고 생각을 하고 있습니다 즉, 변수나 함수를 모두 최상위 Layout.tsx에서 선언 및 정의를 해두고 props로 내려주는게 이상하다고 생각을 합니다. 변수, 함수, useEffect 모두 직접 해당 변수나 함수를 컨트롤하는 부분에서 선언 및 가공을 하는게 맞다고 생각을 합니다. 최상위 Layout.tsx가 너무 무거우면 오히려 나는 VersionDataTable에 관련된 변수나 함수만 보려고 하였으나 최상위 Layout.tsx를 보고 아 이게 VersionDataTable에 필요하구나 뭐가 필요없구나, useEffect의 의존성 배열까지 고려하는것이 불필요하다고 생각을 하고 있습니다.. 근데 같이 프론트 앤드 개발하시는 분께서는 '단기적으로 절대 코드가 변하지 않는다고 생각하면 그 말씀이 맞는데 그건 아니잖아요? 우리는 계속 유지보수를 할거고 그러면 결과적으로 A에서만 사용하던 변수나 함수들을 A,B,C에서 같이 사용할 수 있게 변경하게 되면 그때 변경하면 유지보수 측면에서 너무 안좋습니다. 최상위에 모두 선언이나 정의를 해두고 props로 내려주는게 맞다 이런 형식으로 코드를 작성하면 몇개월 뒤에 코드를 수정할 때 A가서 수정했다가 C가서 수정했다가 D가서 수정하실 거에요? 바로 알아보실 수 있겠어요?' 라고 말씀을 하시더라구요.. 물론 몇개월 뒤에 코드를 보거나 하면 제가 작성한 코드인데도 저는 헷갈리는 경우가 많습니다. 그러나 최상위에 모두 선언 및 정의해둬도 마찬가지 아닌가..? 유지보수 측면에서 뭐가 안좋은거지..? 라고 생각되게 됩니다.. 선배님의 말씀을 따라가고는 싶은데 이해가 안돼서요 제가 아직 기본기가 많이 부족한 상황이라 이 상황에서 말씀드리면 이론부터 말하며 설득시키기가 부족하다고 생각하기 때문에 말씀드리면 오히려 '저는 이렇게 생각해요 틀렸는데요?' 라고 말하는 것 같아 말다툼이 될 것 같습니다. 2. 밑 사진을 보면 modalTemplate라는 폴더, ConfirmTemplate이라는 폴더가 존재하는데요 이것에 대해서 저는 사용하는 용도에 따라서 Create면 Create Create와 Update를 동시에 할 수 있는거면 BundleCreateAndUpdate 이런 형식으로 각각의 파일을 생성을 하고 문법상 공유되는 부분은 중복이 되어서 실제로 보여주는 부분을 영역으로 나눠서 BasicOptions, SelectList, VersionDetail, VersionOptions로 나누고 각각의 파일에서 사용하는 부분만 불러와서 쓰는 형식으로 코드를 작성했습니다. 그러나 이렇게 용도에 따라 구분하지 않고 최상위 Layout.tsx파일 하나만 만들고 ModalType이라는 props를 받아서 ModalType이 create, update, create&update, delete ... 등 JSX에서 삼항 연산자를 써서 처리를 할수도 있습니다. 저는 ModalType으로 처음에 구분하다보니 나는 'create' 속성일 때 어떤 형식으로 되는지 코드로 보고싶은데.. 그러면 너무 뜯어서 봐야하더라구요 그래서 용도에 맞게 파일을 만들고 거기서 form을 불러오기만해서 중복 코드를 줄이는 방식을 택했습니다.. (더 나은 코드라고 생각했습니다.) 그랬지만 선배님께서 'ModalType으로 나누는게 더 좋아요 저렇게 지으면 가독성이 너무 떨어지고 파일의 이름이 너무 길어지잖아요 이상하지 않나요?' 라고 말씀을 하시더라구요... 물론 가독성은 사람마다 다른거 알고있습니다. 그러나 ModalType으로 나누기 시작하면 한도 끝도없이 나누고 ModalType이 delete일 때만 사용하는 함수, create일 때만 사용하는 함수 등 필요없는 함수도 너무 많아져서 용도에 맞게 파일을 구분하고 거기서 중복 코드만 최대한 줄이자! 라고 생각하여 코드를 작성했는데 이 내용도 말씀드려 봤지만 '가독성' 이라는 이유 하나만으로 너무 안좋다고 합니다.. 진짜 안좋은건가요..? Next 도 그렇고 프론트 앤드 너무 어렵습니다..

개발자

#react

#next.js

#front-end

#code-review

답변 2

댓글 2

추천해요 1

조회 667

10달 전 · 익명 님의 질문

[DB 설계] postreSQL 주소 저장

대학 4학년 재학중이고 현재 스타트업 초기 개발자로 근무를 시작했습니다. 프론트는 flutter, DB는 postresql, 백 프레임워크는 python Django를 이용해 하이브리드 어플리케이션을 개발하고자 합니다. 장소 table을 만들면서 주소 column을 만들어야 하는데, 서울/부산/울산 등 지역별 필터링이 가능하도록 설계해야 합니다. 1. 단순히 textfield 를 하기엔 필터링마다 모든 row의 주소 column에서 해당 단어들을 찾아야 하는 부담이 있고, arrayfield(char)을 하기엔 프론트에서 받아와서 처리하는 것에 어려움이 있을 것 같습니다. 2. 프론트에서 주소 입력하는 형태가 아직 정해지지 않았는데, 아마 도로명 주소 검색해서 선택하고 상세주소를 입력하는 방법을 도입할 것 같습니다. 이 기능을 구현해본 적이 없어 어떤 식으로 DB를 설계하고 입력/저장/출력을 관리하면 좋을지 조언을 구하고 싶습니다. 덧붙여서, 혹시 지도 api 등을 연결해서 주소를 등록하게 되더라도 DB 설계에는 변함이 없는게 맞는건지 궁금합니다. 감사합니다.

개발자

#postgresql

#db설계

#주소

#지도api

답변 0

댓글 0

조회 60

일 년 전 · 김영기 님의 새로운 답변

react-hook-form 및 react-table을 사용하면서 문제가 풀리지 않아서 질문드려요..

캠페인 데이터 안에 매체 데이터들이 있는데요. 매체 데이터의 이름으로 테이블을 만들고 테이블의 행을 클릭하면, 해당 행에 연관된 데이터를 보여주고, 수정이 가능한 폼?을 만들고있는데요. 캠페인 폼을 서브밋할 경우 매체에서 변경된 값은 정상적으로 콘솔에 찍히는데 테이블의 다른 매체를 선택해도 생성일이 변경되지 않는 문제가 있는데요.. 어떤게 문제인지 잘 모르겠습니다.. 첨부한 스크린샷에서 처럼 예를 들어.. 매체명11 - 생성일 5월1일 매체명22 - 생성일 5월2일 매체명33 - 생성일 5월3일... 이런식으로 데이터가 있다고하면 매체를 선택할때마다 생성일도 같이 변해야 되는데 변경이 안됩니다..ㅠ 폼 하나로 캠페인 및 캠페인 안에 있는 매체들의 데이터를 한번에 서브밋 하고싶어서 저런식으로 구성을했어요.. 뭐가 문제인지 도무지 모르겠어요.. 도와주세요!..

개발자

#react

답변 3

댓글 0

보충이 필요해요 1

조회 80

일 년 전 · 삭제된 사용자 님의 질문 업데이트

COPY(PG) GC 오버헤드 에러

안녕하세요. 대용량의 텍스트 파일을 postgreSql에 적재하는 모듈을 개발하고 있습니다. copy 함수를 활용하여 텍스트 파일('|'으로 구분되어 있는)을 테이블에 insert 하는데 헤더 스킵을 위해 csv로 parsing하려고 합니다. 근데 파일이 커서 그런가(8GB정도) 'OutOfMemoryError : gc overhead limit exceeded' 에러가 계속 발생합니다.. (어떨 땐 에러 없이 잘 들어가기도 합니다) 코드 중에 불필요한 구문이 있는 건지 판단이 잘 안됩니다... 또 csv로 파싱하지 않고 텍스트 파일의 첫째 줄을 지우고 copy로 밀어 넣는 방법이 있을까요? --------구현 코드-------- try ( BaseConnection c = dataSource.getConnection().unwrap(BaseConnection.class)) { try ( PGCopyOutputStream os = new PGCopyOutputStream(c, "COPY " + tableName + " FROM STDIN WITH (FORMAT CSV)"); CSVPrinter writer = new CSVPrinter(new OutputStreamWriter(os, StandardCharsets.UTF_8), CSVFormat.POSTGRESQL_CSV); CSVParser reader = new CSVParser(new InputStreamReader(inputStream, charset), CSVFormat.INFORMIX_UNLOAD.withFirstRecordAsHeader())) { for (CSVRecord row : reader) { for (String col : row) { if (col != null && StringUtils.hasText(col.trim())) { writer.print(col.trim()); } else { writer.print(null); } } writer.println(); } } } *inputStream은 해당 파일 BufferedInputStream 객체입니다.

개발자

#postgresql

#error

답변 1

댓글 1

조회 75

일 년 전 · ccat 님의 새로운 답변

DB 카테고리 계층 구조 JSP에서 사이드바로 표출?

유동적인 사이드 메뉴 바를 설계하고자 합니다. 그래서 db에 카테고리 계층 구조를 closure table를 통해 설계했습니다. 아래 사진과 같이 category 테이블과 clo_table(클로저 테이블) 를 통해 계층 구조를 설게했습니다. 이를 가지고 JSP 뷰단에서 계층구조 형태로 사이드바를 구현하고자 하는데 도무지 감이 안잡히네요. 현재 db 환경은 mysql이고, spring project에서 mybatis를 통해 쿼리 작성하고 있습니다. 도움을 주시면 감사하겠습니다. (꾸벅꾸벅)

개발자

#spring-legacy

#mysql

#jsp

#사이드바

#계층구조

답변 2

댓글 0

추천해요 2

조회 126

일 년 전 · 정준영 님의 새로운 댓글

자바 대용량 txt파일 update, insert 처리

안녕하세요. 초보 자바 개발자 입니다 회사에서 대용량 수신파일에 대한 update, insert 처리 건을 업무로 받아서 개발 중에 있는데 대용량 파일에 대한 처리 업무는 처음이라 어떤 방식이 제일 베스트인가에 대한 결정이 어려워 질문 드립니다. 원본테이블에 존재하는 정보(소속, 이름, 주민, 회차(1~4 중 하나))를 수신받은 파일(주민, 회차(1~4중 하나), 회차에 대한 정보)을 읽어 원본테이블에 존재하는 정보의 회차와 수신 받은 파일의 회차가 같으면 update, 다른경우 insert해 한 명 당 4건의 정보(원본update 1건, insert 3건)를 가지게 해야합니다. 처음엔 PL로부터 약 10만명에 대한 정보만 입력되면 된다고 들어서 자바로 원본테이블 정보를 select 후 수신파일을 읽어 list<map>에 담고 for문을 통해+ 비교 후 원본에 존재하면 updateList에 존재하지 않으면 insertList에 담아 1000건씩 bulk insert, update 처리했습니다. 그런데 최대 40만명까지 늘어날 수 있다고 말이 바껴서... 그럼 수신 파일정보가 160만건인데 제 생각에는 temp table을 만들어서 수신파일정보를 전부 insert 후 원본테이블과 join하여 update, insert하는게 맞지 않을까하는데 조언 부탁드리겠습니다.

개발자

#java

답변 1

댓글 1

조회 195

일 년 전 · 정근오 님의 새로운 댓글

이직에 대해서 질문이 있습니다.

데이터 분석(ML,DL 엔지니어, 데이터 엔지니어, 데이터 분석가) 분야에 관심이 있으나 현재 직장에서는 전혀 다른 업무를 하고 있어 1-2년 내 이직을 고려하고 있습니다. 저는 대학교(산업경영공학부) 학부연구실에서 산업인공지능, 데이터 마이닝을 공부했고 데이콘 경진대회를 통해서 알고리즘 개발 경험을 쌓았습니다. 그리고 경진대회에서는 시각인공지능을 주력으로 3차례 수상을 한 적이 있습니다. 졸업과 동시에 취업을 해서 현재는 데이터 분석(시각화)쪽의 Tableau도 공부를 하고 있는 상황입니다. (그만큼 이 분야에 대한 관심과 애정이 많습니다.) (왜 당장 이직을 하지 않고 ??)1-2년 내로 이직을 고려하는 이유는 저희 회사가 현재 ERP를 변경하는 중이며 향후 데이터를 사용한 신규 사업발굴등이 향후 계획에 있기 때문입니다. 이 계획에 제가 참여해 주도할 수 있는 기회가 있다면 남을 예정이고 그렇지 않다면 이직을 할 예정입니다. 궁금한 점은 1) 이 상황에서 이직을 고려하는 기간이 1-2년이 타당한 것인지? 2) 이직을 하기 위해서 준비를 해야 하는 부분은 어떤게 있는지? - ML/DL 엔지니어와 데이터 Analystics 각각 궁금합니다. 3) 이직을 한다면 서울과 경기도권으로 이직을 생각중입니다. 대학원이라는 선택지는 어떻게 생각하지는지 궁금합니다. (확인을 원하신다면 제 포트폴리오를 보내드릴 수 있습니다.) 커리어리에서 많은 조언을 구할 수 있기를 바랍니다. 감사합니다.

개발자

#data-analysis

#ml-engineer

답변 1

댓글 1

조회 264

일 년 전 · 익명 님의 질문

React로 Table 만드는 것에 대한 질문입니다!

회사에서 Fetching 한 데이터를 위에서 가공 후에 Table Component에 주입을 하는 로직을 개발을 했습니다. 만약 데이터(행)가 100개이고 열의 개수가 9개일 경우 900개의 데이터를 주입을 하면 될 것으로 생각을 했고, 렌더링 속도에 문제가 없을 것으로 예상을 했습니다. 근데 렌더링 시 약 3초 정도의 연산 속도가 걸리게 되었고 console을 찍어보니 객체 안에 다른 많은 값이 있는 것을 알게 되었습니다. 1. Table에 가공된 데이터를 주입 시에 어떤 형식으로 데이터를 주입을 시켜야 할까요? 2. 만약 Table에서 하나의 Column 값만 바꾸고 싶다면 테이블 전체 렌더링이 아닌 다른 어떤 방식을 사용하실 건가요? 3. TableDataType도 맞게 작성을 했는지 잘 모르겠습니다. 4. 추측 상으로 Styled Component도 렌더링 속도 저하의 문제가 되는 것 같은데 렌더링 속도 저하 원인에 대한 정확한 이유를 아직 파악하지 못했습니다. (주입하는 데이터 형식의 문제인 것 같은데 1번과 이어지는 질문이기도 합니다)

개발자

#react

#table

#렌더링

#최적화

답변 0

댓글 0

조회 70

일 년 전 · 유길종 님의 답변 업데이트

웹뷰 전역 레이아웃 스타일 관련 질문드립니다 !

안녕하세요 ! 웹 프론트엔드를 공부하고 있는 뉴비입니다. 현재 웹뷰(?) 프로젝트를 진행하고 있는데요 ! Nextjs와 styled-components를 이용해 개발하고 이를 PWA를 적용해 모바일에서 실행 가능하도록 하는것이 목표입니다. 페이지 작업 도중 개발자 도구의 각 모바일 기기 환경에서 레이아웃이 달라지는 문제가 발생하고 있는데요 ! 예를 들어, 아이폰 SE환경 (width 375px) 에서는 페이지의 컨텐츠가 얼마 없음애도 불구하고 y축 스크롤이 생기는 문제, 이보다 큰 기기인 아이폰 14 pro (width 430px) 등에서는 아래쪽 여백이 너무 많아 허전한 느낌이 듭니다 ㅠㅠ 이를 해결하려면 어떤 식으로 접근해야 할까요 ? 현재 globalCss는 캐치테이블(https://app.catchtable.co.kr/)의 Wrapper div를 참고하여 대강 적용해둔 상태입니다 .. !

개발자

#react

#next

#웹뷰

답변 1

댓글 0

조회 90

일 년 전 · 이충주 님의 댓글 업데이트

Oracle 21c 에서 default tablespace 지정해주는데 오류가 납니다.

안녕하세요. Oracle 21c에서 tablespace를 새로 생성하여 새로 만든 계정에 default tablespace로 지정해주려 하는데, 오류가 납니다. window cmd 창에서 sys as sysdba 로 접속했습니다. --------------------------- 오류 내용--------------------------------- SQL> ALTER USER C##SSO_USER DEFAULT TABLESPACE SSO_DB; ALTER USER C##SSO_USER DEFAULT TABLESPACE SSO_DB * 1행에 오류: ORA-65048: 플러그인할 수 있는 데이터베이스 XEPDB1에서 현재 DDL 문을 처리하는 중 오류가 발생했습니다. ORA-00959: 테이블스페이스 'SSO_DB'이(가) 존재하지 않습니다. --------------------------------------------------------------------- SELECT tablespace_name FROM DBA_TABLESPACES; 를 하면 TABLESPACE_NAME ------------------------------------------------------------ SYSTEM SYSAUX UNDOTBS1 TEMP USERS TEST_UP SSO_DB 라고 잘 뜨는데.. 왜 PDB 인 XEPDB1 에서 처리하는지 의문입니다. sys as sysdba로 접속 후 따로 PDB로 접속하진 않았거든요 이전에도 동일한 작업(tablespace 생성, 다른 계정이 default tablespace로 지정) 을 했었는데, 그땐 잘 됐거든요..

개발자

#oracle21c

#oracle

답변 1

댓글 1

조회 675

일 년 전 · 익명 님의 질문

WebVR 구현 목적으로 하는 프론트엔드 개발자입니다. 공부순서는 추천해주실게 있으실까요?

안녕하세요. 2년 6개월 강제(?) 풀스택에서 최근 프론트엔드로 진로를 정한 웹 개발자입니다. 목적은 웹퍼블리싱도 되는 프론트엔드 개발자 입니다. 구현하고자 하는 토이프로젝트는 Interactive Web 구현, 최종 목적은 WebVR 구현입니다. CSS -> Response Web -> Interactive Web -> WebVR(three.js) 로 공부를 할까 합니다. 현재는 강의 보며 토이프로젝트(Response Web)을 만들어 보고, 출근하면 배운거 써먹어보고 있습니다. 현재 제 레벨은 CSS 스킬이 Figma 를 봤을때 머리속에서 마크업 잘 안그려지고, CSS 개발에서 자주 멈칫, 구글링합니다. 구현된거 수정만 해보았어서, 코드스타일이 없었고 구현순서나 임시 스타일가이드를 정해서 작성해보고 있습니다. JavaScript 스킬은 custom Api 만들고 api 통신해서 여러 data 가져와서 좀 다양한 chart, table에 결과물 산출(간단한 산술식을 곁들어서) 정도, 로그인, 세션, validate, router, 필요함수 기능구현이나 리팩토링, 모듈화 정도만 해봤습니다. 질의문은 위 상황에서 추천해주시거나 수정해주고 싶으신 부분이 있으시다면 혹은 요런게 있다 더라 만이라도 알려주시면 참 감사드리겠습니다.

개발자

#frontend

#웹퍼블리싱

#3d

#webvr

#프론트엔드

답변 0

댓글 0

조회 70

일 년 전 · 삭제된 사용자 님의 새로운 댓글

프론트 앤드 미디어쿼리를 사용한 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

조회 82

일 년 전 · 삭제된 사용자 님의 답변 업데이트

JSON 데이터 DB 저장

안녕하세요. Java Spring으로 백엔드 서버 마이그레이션, 알람 기능 개발 중에 고민이 있어 질문드립니다. [상황] 기존 알람 서비스는 하나의 서비스 Class로 통합해서 두고, 문자, 푸쉬알람, 이메일 3가지 경우로 기능을 swith하여 각 기능별로 서비스를 호출하는 방식으로 구현되어 있습니다. 알람과 관련된 데이터는 JSON 파일에서 불러와 jsonObejct와 Map 자료구조를 통해 가공하여 기능 구현이 되어있습니다. 알람 데이터 JSON 파일은 상황별 코드에 따라 문자, 푸쉬알람, 이메일로 데이터가 구분되어 있습니다. JSON 파일은 대략적으로 아래와 같은 형태입니다. (mail 알람의 경우엔 HTML 파일을 전송하는 방식입니다. thyemleaf를 통해 전달받은 파라미터 값만 HTML에 주입하는 형태로 구현되어 있어서 msg 안에 String 대신 JSON 형태의 데이터가 들어가고 있습니다.) [알람 JSON 데이터 구조 예시] { "code1" : { "Sms" : { "title" : "sms 제목", "msg" : "sms 메세지", }, "Push" : { "title" : "push alarm 제목", "msg" : "push alarm 메세지", }, "Mail": { "title" : "mail 제목", "msg": { "name" : "#{name}", "use" : "#{use}", ... }, "code2" : {... }, ... } [문제 인지 & 개선 방향 고민] 알람 데이터가 JSON으로 정의되어 있다보니, 기능 개발을 위해 Json 파일을 읽고, JsonObject와 Map 자료구조로 데이터 가공을 할 수 밖에 없는 상황인데요. 제가 알기로는 자바에서 Map 자료구조를 사용하게되면 타입 자체가 불명확해서 지양해야 하며, JSON 파일로 관리 시 하드코딩에 해당되어 기능 자체에 제약이 많다고 판단하여 해당 상황을 DTO로 관리함과 동시에 Database에서 관리하도록 바꿔볼까 생각중입니다. [궁금증 & QnA] 이 상황에서 고민 & 궁금증이 몇 가지 있습니다. 1. 해당 알람 데이터를 DB 관리로 바꾸는게 더 나은 선택인지? -> 만약 바꾼다고 하면 Alarm Table을 따로 두고, User Table과 N:M 매핑하는식으로 구현할 생각입니다. 2. , mail HTML Template이 다양하다보니, Template 마다 넘겨줘야하는 JSON 데이터가 다양한 상황입니다. 그러다보니 mail msg 컬럼에는 다양한 형태의 JSON 데이터가 들어가게 되어 이걸 DB로 구현한다고 하니 막막한 상황입니다. -> 결국 해당 부분만 JSON 데이터로 넣는것 말고는 떠오르는 방법이 없네요.(해당 부분만 JSON 데이터로 넣으면 오히려 관리가 더 어려워지지 않을까 고민입니다.) 3. 다른 분들은 알람 기능을 어떻게 구현하는지 궁금합니다.

개발자

#spring

#database

#json

#fcm

답변 1

댓글 0

조회 293

일 년 전 · 정하승 님의 질문 업데이트

api의 첫번째 호출 이후부터 antd Button 렌더링 안되는 이슈가 있습니다.

```jsx import { Popover, Modal, Button, Image, Result } from "antd"; const [prevImg, setPrevImg] = useState(["any"]); const [loading, setLoading] = useState(false); const [removeImgFiles, setRemoveImgFiles] = useState([]); const combinePrevImages = (prevImages, newImages) => { const combinedImages = [...prevImages, ...newImages]; return combinedImages; }; useEffect(() => { const postSeg = async () => { try { const res = await axios.post( "apiurl", { filepath: filePath, clips: sortableList.map(list => `${list.seg.start}-${list.seg.end}`), frame: frameValue }, { proxy: false } ); return res.data; } catch (error) { console.error("Error posting segments:", error); return []; } finally { setLoading(false); } }; const postSegments = async () => { if (segments[0]?.start === 0 && segments[0]?.end === 0) return; if (sortableList && filePath) { setLoading(true); const res = await postSeg(); const combinedPrevImg = combinePrevImages(prevImg, res.results); setPrevImg(combinedPrevImg); console.log("Post Request Success"); } }; postSegments(); }, [filePath, segments, frameValue]); const handleModalOpen = useCallback(() => setModalOpen(true), []); const handleModalClose = useCallback(() => { setRemoveImgFiles([]); setModalOpen(false); }, []); const handleDeleteButtonClick = async () => { if (removeImgFiles.length > 0) { setPrevImg([...removeImgFiles]); setRemoveImgFiles([]); } else { const result = await showSwal({ title: "Are you sure delete?", showCancelButton: true, confirmButtonText: "Confirm", cancelButtonText: "Cancel", confirmButtonColor: "#3085d6", cancelButtonColor: "#d33" }); if (result.isConfirmed) { setRemoveImgFiles([...prevImg]); setPrevImg([]); } const success = await Promise.all(removeImgFiles.map(deleteFiles)); return success; } } const handleRemoveFinish = async () => { if (removeImgFiles) { for (const filePath of removeImgFiles) { try { await removeFile(filePath); } catch (e) { console.log("File Remove Error", e); } } } setRemoveImgFiles([]); handleModalClose(); }; return ( <motion.div initial={{ x: width }} animate={{ x: 0 }} exit={{ x: width }} transition={mySpring} > <div style={{ fontSize: 12, padding: "0 5px", color: "var(--gray12)", display: "flex", justifyContent: "space-between", alignItems: "center" }} > <FaAngleRight title={t("Close sidebar")} size={20} className="angle-right" role="button" onClick={toggleSegmentsList} /> {header} <FaExpandArrowsAlt title={t("Image Inspection")} size={18} className="expand-arrow-alt" style={{ cursor: "pointer" }} role="button" onClick={!loading ? handleModalOpen : handleModalClose} /> <Modal title={t("Image Inspection")} centered onCancel={handleModalClose} open={modalOpen} footer={[]} width="100%" > <div className="imagecontainer"> <Button danger className="toggle-remove" onClick={handleDeleteButtonClick}> {removeImgFiles.length > 0 ? "Add" : "Remove"} </Button> {prevImg?.length > 10 && prevImg.map(img => ( <Popover key={img}> {removeImgFiles?.includes(img) ? ( <span> <Result className="result" icon={<FaSmile />} subTitle="delete" /> </span> ) : <Image key={uuidv4()} src={img} preview={{ src: img }} alt={uuidv4()} /> )} </Popover> ))} </div> <Button block onClick={handleRemoveFinish}> Finish </Button> </Modal> </div> ) ``` api 호출을 통해 frameValue 개수(여기서는 12개씩) 만큼 이미지를 렌더링 하고 있는데 두번째 호출부터는 Button이 렌더링되지 않아서 어디가 잘못됐는지 알고싶습니다.. 필요한 부분이 imagecontainer 클래스네임인 div를 렌더링 해야합니다.

개발자

#react

답변 0

댓글 0

조회 81

일 년 전 · 익명 님의 질문

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

조회 355

일 년 전 · 김도열 님의 새로운 댓글

nysql에서 외래키 참조

syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[CONSTRAINT fk_name] FOREIGN KEY(name) REFERENCES uesr_into(name) ON UPD' at line 5 CREATE TABLE a_check( id MEDIUMINT AUTO_INCREMENT PRIMARY KEY, name MEDIUMTEXT not null, age MEDIUMINT not null, [CONSTRAINT fk_name] FOREIGN KEY(name) REFERENCES uesr_into(name) ON UPDATA CASCADE ); 무슨 에러에요? 데이터가 있어야 한다는 걸까요?

개발자

#mysql

답변 1

댓글 1

보충이 필요해요 2

조회 56

일 년 전 · 김병수 님의 답변 업데이트

mysql에서의 외래키

CREATE TABLE a_check( id INT INTEGER AUTO_INCREMEnT PRIMART KEY, name MEDIUMBLO not null, age MEDIUMINT not null [CONSTRAINT CASCADE] FOREIGN KEY(name) REFERENCES uesr_into(name) ON UPDATA ) 여기에다가 age 의 외래키를 더 추가할건데 추가할 수있나요?

개발자

#mysql

답변 1

댓글 0

보충이 필요해요 1

조회 83

일 년 전 · 김도열 님의 새로운 답변

mysql에서 값을 제한할 수 있나요

CREATE TABLE uesr_into( id SMALLINT AUTO_INCREMENT PRIMARY KEY, name MEDIUMTEXT NOT NULL, sex ENUM('M' ,'F') NOT NULL, job MEDIUMTEXT age MEDIUMINT NOT NULL if(age>20 AND age<100, NOT NULL, '입소가 불가능 합니다.') ); if문에서 값을 못게 할 수 없나요?

개발자

#mysql

답변 1

댓글 0

조회 69

일 년 전 · 박지수 님의 새로운 답변

코드에 문제가 있나요?

CREATE TABLE t_Today( t_Today TIMESTAMP default CURRENT_TIMESTAMP ); mysql에서 쿼리를 생성하고 있는 데 에러가 떠요You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

개발자

#mysql

답변 1

댓글 0

보충이 필요해요 1

조회 52

2년 전 · 장성호 님의 새로운 답변

mysql 관련오류

0 8 09:46:09 create table week( name varchar(30) not null,-- 일정 이름 start_time time default '10:00:00',-- 시작 시간 end_time time default '16:00:00',-- 끝나는 시간 number tinyint auto_increment primary key, check (start_time<end_time) ) Error Code: 1050. Table 'week' already exists 0.000 sec

개발자

#mysql

답변 1

댓글 0

조회 133

2년 전 · 익명 님의 질문

mysql 오류가 있어요?

create table week( name varchar(30) not null,-- 일정 이름 start_time time default '10:00:00',-- 시작 시간 end_time time default '16:00:00',-- 끝나는 시간 number tinyint auto_increment primary key check (start_time<end_time) 0 7 09:43:20 create table week( Error Code: 3813. Column check constraint 'week_chk_1' references other column. 0.000 sec

개발자

#mysql

답변 0

댓글 0

보충이 필요해요 1

조회 74

2년 전 · 이영준 님의 새로운 답변

리액트 컴포넌트 설계에 대해 질문이 있습니다.

현재 Dropdown 컴포넌트를 compound pattern을 접목하여 구현을 해보고있습니다. ChatRoomHeader 라는곳에있는 DotsIcon을 클릭하면 Dropdown이 랜더링되게끔 구현을 하였는데요. 각 메뉴 리스트들을 배열로 해서 map을 사용하여 렌더링해주고있습니다. 제가 생각하는 문제점은 Dropdown안에 있는 로직들이 뭔가 전혀 상관없는곳에서 정의하고 props로 내려주는것에대해서 약간 문제점이 있어보이는것같습니다.. 혹시 다른방법이 있을까요? 아니면 참고할만한 블로그 알려주시면 감사하겠습니다 (__) 'use client'; import Link from 'next/link'; import ArrowLeftIcon from '@/public/arrow-left.svg'; import FlexBox from '@/components/ui/FlexBox'; import DotsIcon from '@/public/tabler_dots.svg'; import Dropdown from '@/components/ui/Dropdown/Dropdown'; import Divider from '@/components/ui/Divider'; export default function ChatRoomHeader({ title }: { title: string }) { const copyToClipboard = async () => { try { await navigator.clipboard.writeText(window.location.href); alert('복사 성공'); } catch { alert('복사 실패'); } }; const CHAT_ROOM_OPTIONS = [ { name: '공지', }, { name: '사진', }, { name: '링크' }, { name: '공유하기', event: copyToClipboard }, { name: '채팅방 나가기' }, ]; return ( <FlexBox as="header" justify="between" align="center" className=" p-8 h-14 tablet:h-24 w-full gap-4 bg-white border-b-[1px]" > <FlexBox className="gap-1"> <Link href="/community"> <ArrowLeftIcon className="w-7 h-7" /> </Link> <p className="text-xl font-bold">{title}</p> </FlexBox> <Dropdown> <Dropdown.Trigger> <DotsIcon className="w-6 h-6 tablet:w-7 tablet:h-7" /> </Dropdown.Trigger> <Dropdown.Menu> <li className="block tablet:hidden"> <Dropdown.Item>인원</Dropdown.Item> <Dropdown.Item>스케줄</Dropdown.Item> <Divider type="horizontal" /> </li> {CHAT_ROOM_OPTIONS.map((option) => ( <Dropdown.Item key={option.name} event={option.event}> {option.name} </Dropdown.Item> ))} </Dropdown.Menu> </Dropdown> </FlexBox> ); }

개발자

#react

답변 3

댓글 1

추천해요 2

조회 1,074

2년 전 · axios_yw 님의 새로운 답변

react dataTable 추천해주세요!

[ 주요 기능 ] 1. Header : sticky, multi sorting, pin 2. Body : cellEdit, drag&drop 3. Footer : paging 4. Option : export(excel, pdf), chart [ 확인 ] 1. react 2. typescript 위 조건에 만족하는 추천 react dataTable 있을까요~? 유료도 환영입니다!!

개발자

#react

#datatable

#typescript

#grid

답변 2

댓글 0

조회 422

2년 전 · 달레 님의 답변 업데이트

영화 예매 프로젝트의 예매 기능과 관련하여

안녕하세요. 토이 프로젝트로 영화 예매 서비스를 만들어보고 있습니다. 어느 정도 기능 구현이 완료되었다고 생각했었는데, 오늘 생각지도 못한 고려 사항을 발견해버렸네요 ㅠㅠ.. 좌석 모델과 예매 모델 사이의 관계의 모호함이 있었습니다.. 저는 MovieSchedule 모델을 두어 참조하는 영화의 id, 상영 시작 시간, 상영 종료 시간, 참조하는 screen(상영관)의 id를 column으로 두었습니다. 그리고 Reservation 모델이 이 MovieSchedule 모델을 참조하도록 하고, 예매 인원, 예매하는 유저의 아이디 등의 column을 갖도록 하였습니다. 아래 코드를 참조부탁드립니다(Prisma ORM을 사용하였습니다). 하지만 이렇게 구성을 하다보니, 같은 영화, 같은 상영관이지만 시간대만 다른 좌석(같은 screen, 다른 MovieSchedule을 참조)의 경우에, seat와 reservation이 one-to-many로 설정되어 있기 때문에 이미 다른 시간대(다른 MovieSchedule)에서 해당 좌석을 예매 해두었다면, 좌석은 더 이상 예매를 할 수 없는 상태가 되더군요.. schema를 변경할 필요가 있을 것 같은데 ERD를 설계해본 경험이 별로 없다보니 어떤식으로 변경해야 할지 감이 잘 안 잡힙니다.. 제가 생각해본 대안들은 다음과 같습니다. 1. movieSchedule에 대응하는 screen과 seat를 생성하고, 상영 후 해당 screen 및 seat를 모두 삭제. 이러면 여러 시간대에 같은 screenNum이 여러개 생길 수 있으니 screenNum의 unique 조건을 삭제해야할듯. 2. seat와 reservation의 관계를 many to many로 변경하고 reservation-seat과 같은 table을 하나 더 생성. 해당 테이블은 seatId와 reservationId를 갖고 있을 것이므로, 좌석 조회 시 reservation의 movieSchedule과 조회하는 movieSchedule이 일치하면 예약되었음을 확인할 수 있음. 위 대안들이 적절한지, 그렇지 않다면 어떤 대안이 있을지 조언 부탁드립니다 ㅠㅠ

개발자

#erd

#sql

#javascript

#prisma

답변 2

댓글 4

조회 383

2년 전 · 커리어리 AI 봇 님의 새로운 답변

spring boog Oauth2 client 질문 합니다!

react.js (port:3000) srping boot(port: 8080) 각각 배포 한 상황입니다. 인터넷에서 많은 자료를 찾을 수 있지만, 프로덕션에서 사용하기엔 좀 많은 걱정들이 있이서, 해소 되지 않은 부분들을 몇가지 여쭈어봅니다! 1. 많은 예시를 보면,  flow 는 이렇더라구요 - 사용자가 구글 로그인을 클릭함 (localhost:8080/oauth2/google?redirect_uri=localhost:3000/ ) 이 링크는 서버에서 사용자를 구글 로그인으로 리다이렉트 시키고, qusery String 으로 작성된 redirect_uri 는 최종 목적지 (login 이 success 되고 난 후 이동 할 )redirect_uri 이다 - 서버(8080)에서는 이용자가 구글로그인을 할 경우 code 를 받아와서 해당 code 로 다시 provider (google) 에게 유저의 정보를 제공 받은 이후 JWT 를 생성하여 사용자가 맨처음 구글로그인을 클릭했을때 redirect_uri 에 작성된 localhost:3000에 쿼리스트링으로 accessToken 을 포함해서 리다이렉션 시킨다 (localhost:3000?accessT=e.....) - 클라이언트는 해당 토큰을 저장하고 후처리를 진행한다 라고 하는 경우가 많았습니다. 그런데 이렇게되면 url 에 accessToken 이 url 에 노출되는게 맞나? 싶더라구요 사실 쿠키로 심어서 보내면 되겠지만 요구사항에는 쿠키를 사용하지 않기로 했습니다. 그러면 어떻게 처리해야할까요? 도저히 클라이언트에서 안전하게 토큰을 받을 수 있는 방법이 떠 오르질 않네요 ... 2. 보통 프로덕션에서는 User table 과 OAuth2 table 을 별도로 두나요 ? ( Oauth2 테이블은 OAuth2 에서 제공받은 id, provider, userFK 정도만 저장 )

개발자

#spring-boot

#oauth2.0

답변 1

댓글 0

조회 171

2년 전 · 𝙍𝙞𝙘𝙝𝙖𝙧𝙙 님의 새로운 답변

데이터 분석가로 이직하는 방법 조언 구합니다.

안녕하세요, 저는 인공지능 SI 프로젝트 경력 3년 차 AI 엔지니어입니다. 제목에 적은 대로 저는 현재 B2C 회사의 데이터 분석가로의 이직을 원하는 상태입니다. 이에 따라, 1. 데이터 분석가가 되기 위해 갖추어야 할 필수 역량 2가지와 구체적인 공부 방법 2. 퇴근 후, 주말 동안 오로지 공부에만 매진한다고 했을 때, B2C 회사의 신입 데이터 분석가로 이직할 수 있는 최소 기간 (3개월, 6개월, 1년 등) 총 2가지 항목에 대해서 조언해 주시면 정말 감사하겠습니다. 2번은 당연히 상대적인 수치라는 것을 알지만, 아래에 있는 제 간략한 이력을 보시고, 대략적으로라도 짚어주신다면 정말 감사할 것 같습니다. 1. 개발자가 된 이유 - 저는 비전공자이며, 재학 시절 경영학 막 학기에 막연하게 데이터를 다룰 수 있는 직업을 가지고 싶었습니다. 국비교육이 눈에 띄었고 6개월 수료 후 연계 SI 중소기업에 취업했습니다. 글을 쓰는 시점으로 딱 3년이 되었습니다. 2. 재직 중 경험한 것 - 비정형(텍스트, 이미지, 음성) 데이터 수집, 레이블링, 전처리 - 최신 딥러닝 모델 깃허브 소스 확보하여 파인튜닝 - 추론 서비스 API 구현 3. 재직 중 터득한 스킬셋 - python - pytorch, tensorflow (필요한 메서드 구글링해서 활용할 수 있는 정도) - SQL 4. 자격증 - 컴퓨터 활용능력 1급 - ADsP - SQLD - 빅데이터 분석 기사 필기 5. 따로 준비하고 있는 것 - SQL 코딩 테스트 - Tableau(책 보면서 실습 한 내용을 포트폴리오로 활용) 긴 글 읽어주셔서 감사드립니다.

개발자

#데이터분석가

답변 2

댓글 0

추천해요 4

조회 607