#post

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

3달 전 · 익명 님의 질문 업데이트

Django serializer 현업에서는 어떻게 설계를 어떻게 하시나요?

안녕하세요 RN 개발을 진행하면서 백엔드로 Django를 사용하고 있고, Django를 공부한지 몇개월 되지 않았습니다. 개발을 진행하면서 아래의 문제가 생겼는데, 혹시 애초에 serializer와 model을 잘못 설계한 것은 아닌지, 또한 현업자 분들은 어떻게 시리얼라이저를 사용하시는지 궁금합니다. [문제 설명] 프로젝트의 모델에는 하위 게시글 모델이 여러 개 올 수 있습니다. 모델 구조는 아래와 같습니다. Project { id: number, posts: Post[], } Post { id: number, project: number, <- 무한 참조를 방지하기 위해 id } 앱 개발을 하다가 Post 데이터에서 Project까지 UI를 그려야하는 상황에서 또 프로젝트를 불러오는 API를 사용하니까 (프로젝트 id에서 프로젝트 오브젝트 불러오기, fetchProjectAPI). UI 지연이 되어서 프로젝트 오브젝트를 불러오고 싶은데, 프로젝트 시리얼라이저 내에서 또 포스트 오브젝트가 나오고 거에서 또 프로젝트가 나오는 문제가 생기더라구요. 이와 같은 경우에는 어떻게 해결하면 좋을까요? posts를 제외한 ProjectSummarySerializer를 새로 생성하면 되겠지만 근본적인 해결책은 아니라고 생각합니다 (제외하고 싶은 필드가 생길때마다 시리얼라이저를 만들어야하니깐요). 혹시 애초에 모델을 잘못 설계한걸까요? 또한 애초에 오브젝트로 반환하는 것을 잘 안하나요? (DB 와 송수신 로드를 줄이기 위해서 아이디로만 반환한다던지)

개발자

#django

#serializer

#model

답변 0

댓글 0

보충이 필요해요 1

조회 67

3달 전 · 박정후 님의 새로운 답변

Oauth2(ios,android)할 때 스프링부트에서 할일

웹으로 구현했을때는 리다이렉트 url등으로 백단에서 인증 받아서 진행 했었는데 네이티브 앱에서의 Oauth2 Docs를 보고있는데 앱단에서 모든 처리를 하는 걸로 보여서요 그럼 그 이후에 그 사람의 프로필정보나 아이디만 보내면 백엔드에서 그걸로 로그인이나 회원가입이 되는게 맞나요? 그렇게 되면 로그인이나 회원가입 api url만 알고있으면 postman으로 아무 닉네임이나 보내면 회원가입이나 로그인이 될 것 같은데 보통 어떤 방식으로 하는지 알고싶습니다.

개발자

#oauth

#네이티브앱

답변 1

댓글 0

조회 53

4달 전 · @SoftyChoco 님의 새로운 답변

게시글 이미지 업로드를 구현하는데 궁금한 점이 있습니다.

velog를 참고하여 Spring + Vue를 이용하여 마크 다운 기반 게시글을 구현하고 있습니다.. 글을 쓰는 도중에 이미지를 올리면 s3에서 url를 반환하여, 이것을 통째로 Post 테이블 Content 필드에 저장하여 순서를 보장하는 식으로 진행하고 있습니다. 로직 흐름은 이렇습니다. 1. 사용자가 이미지를 올린다면, 클라이언트에서 글쓰기 버튼을 눌렀을 때 미리 만들어 놓은 UUID와 이미지를 서버로 보낸다. 2. 서버에서는 s3객체에 임시 저장 여부를 확인하는 isTemp를 태그를 넣어서 서버를 걸쳐서 S3에 쏜다. 3. S3에서 객체를 찾아서 key값과 클라이언트에서 보낸 uuid를 Image 테이블에 저장해서 Post와 간접적으로 연관 관계를 맺는다. 4. 글쓰기를 누른다면 내용과 UUID를 보내서 UUID를 Post의 primary key로 사용하고, UUID 기반으로 Image 테이블에서 key들을 갖고 와서 S3 객체의 isTemp 태그를 false로 바꾼다. 4-1 . 뒤로 가기나 임시 저장을 눌렀을 때는 isTemp를 true로 설정하고 저장한다. 5. 30일이 지날 때마다, Post에 있는 isTemp를 통해 임시 여부를 확인하여 임시 저장된 글을 삭제하고, S3에서는 수명 주기를 설정하여 태그를 기반으로 true인 이미지들을 삭제한다. 객체를 삭제하는 이유는 불필요한 데이터가 공간을 차지하는 것이 별로라고 판단했습니다. UUID는 글을 다 쓰기도 전에 서버로 쏘기 때문에, 어떤 게시글에서 쓰였는지 확인하기 위해서 사용했습니다. 성능이나 용량 면에서 안 좋다고 하지만, 이는 데이터를 넣어 놓고 조회를 하여 성능을 확인하였고 현재 프로젝트 크기를 생각했을 때 접목해도 상관없을 것 같아 넣었습니다. 하지만 이런 식으로 진행하니, 만약 사용자가 중간에 이미지 링크를 삭제한다면? 이라는 시나리오를 생각했을 때 이를 대처할 방도가 떠오르지 않습니다. 다른 분들은 어떤 식으로 처리했는지, 제가 너무 어렵게 생각하고 짜는지 궁금합니다.

개발자

#spring-boot

#s3

#게시글

답변 1

댓글 0

조회 61

4달 전 · 박정환 님의 새로운 댓글

스프링부트 로컬 환경에서는 되지만, 배포 환경에서 404 에러가 발생합니다.

안녕하십니까 선배님들. 스프링부트 API 서버를 개발하고 배포하였는데 다음과 같은 문제가 발생하였습니다. 로컬 환경에서는 잘 작동하지만, 배포 환경에서 특정 POST 요청에서 404에러가 발생하는 문제였습니다. 해당 요청은 JSON을 반환하는 컨트롤러입니다. 서핑을 하던 중, Spring Security의 CSRF의 문제일 수도 있다고 하던데 저는 현재 Security를 사용하지도 않고 다른 POST 요청은 잘 응답하여 뭐가 원인인지 잘 모르겠습니다. 아래는 application.yaml과 Controller 코드입니다. 감사합니다. // application.yaml spring: application: name: tika servlet: multipart: max-file-size: 50MB max-request-size: 50MB

개발자

#스프링

#자바

답변 1

댓글 2

조회 76

4달 전 · 이성원 님의 새로운 답변

아마존 Ec2 성능

개인적으로 사용할 테스트용서버를 구하고 있습니다. 아무래도 개인적으로 상용하기위한 서버이기 때문에 월에 만원 안쪽으로 사용가능한 서버를 찾고 있으며 Ec2의 경우는 최초1년 무료로 사용가능한것으로 알고 있어 고려중입니다. 혹시 Ec2를 사용해본 경험이 있으신분들 중에 성능에 대해서 문의드립니다. Docker기반 파이썬 fastAPI서버 1기 Java Spring 서버 1기 (jar 기동 고려중이며 추후 Doker로 올릴 가능성 있음) DB서버 1기 (Docker 기반 postgerSQL 고려중) 일단 생각나는것은 이렇게 3가지 입니다. 아직 외부접속같은것은 필요 없기에 아파치와 같은 설정은 생각없습니다. Ec2가 충분히 위 사양을 버텨줄까요? 물론 요청이 많아지면 힘들어지는건 당연할듯합니다만, 일 요청건수 100 ~ 1000건 이내로 고민중입니다.

투표

개발자

#amazon

#ec2

#server

답변 2

댓글 1

조회 1,278

6달 전 · Supernova 님의 새로운 답변

커리어리 개발툴은 뭘로 만들어졌을까요, 서버 최적화 방법 질의

커리어리 웹뷰는 뭘로 만들어졌나요 ? 우연히 커리어리를 알게 되어서 사이트를 구경하던중 글 남깁니다. 저는 올해 40세이고 취미로 코딩을 배우면서 현재는 메타의 threads 와 비슷한 웹뷰를 만들고 있습니다. 독학으로 배우다보니 깊이가 없어서 한계에 직면해 있는거 같아요. 커리어리에서 스크롤을 내리다보면 딜레이 없이 페이지들이 거의 무한으로 내릴 수 있던데 기술적으로 그게 참 궁금하고요. 게시글을 포스트 했을때도 거의 딜레이 없이 게시물 업데이트가 되더라구요. 저 같은 경우에는 Next JS 로 웹뷰를 구성했고 database 는 vercel neon (무료버전. 서버는 싱가폴위치) Image 는 uploadthing (100GB 유료걸제 10$. 서버는 한국) 게시글 post 시에 단순 텍스만 입력을 하더라도 업로드 되고 화면에 뿌려지는데 2~3초의 딜레이가 발생합니다. database 가 무료 버전에 싱가폴에 있어서 반응이 느린건지 코드 최적화가 문제인지 모르겠습니다. 제가 테스트중인 사이트 주소는 아래와 같습니다. https://newchat-omega-inky.vercel.app/ 게시글 업로드 속도만 높일 수 있다면 정말 좋을 거 같은데 뭔가 벽에 막힌거 같습니다 ㅜㅜ

개발자

#커리어리-개발툴

#서버최적화

답변 1

댓글 0

조회 91

7달 전 · 포크코딩 님의 새로운 답변

API 변경 시 가장 효과적인 처리 방법은 무엇인가요?

안녕하세요, API 변경 처리에 대해 여러분의 의견을 듣고 싶습니다. 현재 우리 프로젝트에서는 POST api/model 엔드포인트를 사용 중입니다. 이 API의 request body 구조에 큰 변화가 필요한 상황이 발생했을 때, 어떻게 처리하는 것이 가장 좋을까요? 제가 생각한 간단한 접근 방식은 다음과 같습니다: 1. api/model2라는 새로운 엔드포인트를 생성합니다. 2. 기존 api/model을 deprecated 처리합니다. 3. 프론트엔드에서 api/model2를 사용하도록 수정합니다. 4. 일정 기간 후 api/model을 제거합니다. 5. api/model2의 이름을 api/model로 변경합니다. 이런 방식이 일반적인가요? 아니면 다른 더 효과적인 방법이 있을까요?

개발자

#백엔드

#api

#협업

답변 1

댓글 0

추천해요 1

조회 36

8달 전 · 익명 님의 질문

[사이드 프로젝트] 패션 이커머스 플랫폼 '푸츠(PUTS)' 앱 개발팀 모집

프로젝트 소개: ‘푸츠(PUTS)_Pick Up The Style!’서비스는 패션 디자이너 브랜드를 중심으로 BM특허까지 보유한 혁신적인 패션 커머스 플랫폼서비스 입니다. 데모버전까지 외주개발을 통해 개발이 완료되었지만 현시점에서 리뉴얼하여 새롭게 런칭버전을 개발하고자 역량있는 팀원을 모집합니다. <참고> 본 서비스의 시장성은 2024년 약 19조 5천억원(캐주얼) 정도의 시장성을 예상하고 있으며 연간 약 3.5%씩 지속적으로 성장 중에 있습니다. 3-5년이내 시장의 10%이상 점유를 목표하고 있으며 시장을 장악 가능한 비즈니스 모델과 마케팅 능력을 보유하고 있습니다. (참조: https://global.fashionseoul.com/2023-11-10/Korean-Fashion-Market-Size-Anticipated-Highest-Growth-Ever) 우리는 패션과 기술을 접목해 사용자와 소비자에게 최상의 쇼핑 경험과 정보 공유, 소득을 제공하는 서비스로 패션산업의 큰 파도를 함께 일으킬 분들을 모집합니다. 사이드 프로젝트 형태로 진행되며, 유연한 근무 환경에서 협업을 지향합니다. 3-5년이내 엑싯을 목표로 진행됨으로 임금지급 방식이 아닌 지분분배 방식으로 진행됩니다. 프로젝트 완료시 파트별 기여도에 따라 지분설정이 되며 관련 내용은 프로젝트 진행 전 협의를 통해 산정하여 계약진행 예정.(급여를 제공 받고자 하시는 분은 정중히 사양합니다.) 모집 직군: 1. 프론트엔드 개발자 (1~2명) o 주요 업무: 모바일 앱 UI/UX 구현, 웹 랜딩페이지, 사용자 인터페이스, 어드민 프론트엔드 개발 o 기술 스택: React Native 또는 Flutter, JavaScript/TypeScript, HTML/CSS o 우대 사항: 모바일 퍼포먼스 최적화 경험, 패션 커머스 개발 경험 2. 백엔드 개발자 (1~2명) o 주요 업무: 서버 및 데이터베이스 설계, API 개발, 어드민 백엔드 개발 o 기술 스택: Node.js, Django, AWS, PostgreSQL, RESTful API o 우대 사항: 대용량 트래픽 처리 경험, 보안 및 결제 시스템 개발, 이커머스 어드민개발 경험, 포인트관리 및 쿠폰설정 관리 등 3. UI/UX 디자이너 (1명) / 대표자와 함께 진행 또는 대표자가 진행 o 주요 업무: 모바일 앱 디자인, 사용자 경험 설계 o 필수 스킬: Figma 또는 Photoshop, Illustrator o 우대 사항: 패션 브랜드 디자인 경험, 사용성 테스트 및 피드백 반영 경험 근무 형태: • 프로젝트 기반 협업 (파트타임 가능) • 원격 근무 가능 (주 1회 온라인 미팅) • 유연한 일정과 주도적인 업무 환경 우대 사항: • 사이드 프로젝트 경험 • 패션, 커머스에 대한 관심과 열정 • 스타트업 문화에 익숙한 분 • 책임감 강하신 분 지원 방법: • 이력서와 포트폴리오를 [dcode00@naver.com]로 제출 • 지원 시 사이드 프로젝트 경험 및 참여 가능 시간을 명시해 주세요. 문의: • 이메일: [dcode00@naver.com] • 카카오톡/오픈채팅방: [https://open.kakao.com/o/gi5ixgVe] • 회사주소: 경기도 안산시 상록구 한양대학로55 제2과학기술관 지하2층 B210호 (한양대학교 에리카캠퍼스 소재) 지원 마감일: [채용 완료시까지] 로켓펀치 참여링크 https://www.rocketpunch.com/jobs/139647 문의: • 이메일: [dcode00@naver.com] • 카카오톡/오픈채팅방: [https://open.kakao.com/o/gi5ixgVe]

개발자

#사이드플젝

#사이드프로젝트

#팀빌딩

답변 0

댓글 0

추천해요 1

보충이 필요해요 1

조회 181

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

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

조회 531

9달 전 · 포크코딩 님의 새로운 댓글

Next.js Dynamic Routing 관련 질문

현재 ./pages 폴더에서 page router로 라우팅 관리 중에 있습니다! id별 post 상세창 조회를 위해 ./pages/post-detail/[id].tsx 와 같이 작성했으나 Whitelabel Error Page This application has no configured error view, so you are seeing this as a fallback. Fri Aug 30 21:08:21 KST 2024 [67199a4f-4509] There was an unexpected error (type=Not Found, status=404) 만 발생합니다 참고로 ./pages/post-write.tsx 와 같은 파일은 정상 작동합니다 혹시 무엇이 문제일까요? 추가+) 혹시 Next.js 14에서 page router 방식을 사용하는것이 문제일지 궁금합니다

개발자

#react

#next.js

답변 1

댓글 2

조회 52

9달 전 · 이상래 님의 새로운 답변

RESTful API에서 POST 메서드만 사용하는 것의 문제점과 대량 데이터 처리 시 GET/DELETE와 POST의 차이점에 대해

일반적으로 GET, POST, DELETE, PUT 등의 HTTP 메서드를 구별하여 사용하는 것이 권장됩니다. 하지만 모든 요청을 POST로만 처리하는 방식으로 개발할 경우 발생할 수 있는 이슈가 무엇이 있을까요.. 백단에서 성능에는 큰 차이가 없지 않은가요? post만을 사용해 개발해도 될까요?

개발자

#restfulapi

#post

답변 1

댓글 0

조회 88

10달 전 · 개발자A 님의 새로운 답변

다국어 변역 api사용 저장시 느린 속도 문제

DB에 정보 저장하는데요 ranslationResponse response = restTemplate.postForObject(TRANSLATION_ENDPOINT, request, TranslationResponse.class); api를 통해 영어 중국어 일본어로 변역해서 변역 내용 같이 DB에 저장 하려고 합니다. 그런데 저장할 때 문장이 길어지면 변역 시간이 느려저서 사용자쪽에서 많이 기다려야 하는 상황입니다. 기본 내용만 저장하고 파이널리문에서 번역해서 다시 저장하는 방법을 생각 해서 적용 해보았는데 브라우저에서 결과 받는 속도는 같았습니다.ㅠ 그렇다고 브라우저에서 ok 결과를 받은 후 번역을 비동기로 호출하는 것도 불필요한 비용 발생일 것 같고요 창을 먼저 꺼버리자니 오류 처리 못할 것 같구요 저장중 이라는 알림으로 처리 해야하는건지 사용자 입장에서 개선 하고 싶은데 방법을 잘 모르겠습니다. 혹시 해결방안 알고 계신분이 계시다면 조언 부탁드립니다.

개발자

#다국어-변역-api

#spring-boot

답변 1

댓글 0

조회 42

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

기술 스택이 진짜 난잡하게 됬는데 이럴땐 어떻게 해야될까요...

저는 8년차 개발자 입니다. 첫회사에서 7년 다음 회사에서 1년의 경력을 가지고 있습니다. 첫회사에서 Spring Framework를 다뤘구요, 웹팀에서 화면 구현에 더 중점을 두고 개발을 하느라 제품에 사용된 spring기술을 전부 파악하니깐 5년차가 되어있었습니다. 그때쯤 되니깐 팀장부터 말단 직원까지 저한테 다 물어보러 오더라구요... 그래서 더이상 성장을 못한다고 판단하고 혼자서 SpringBoot로 이것저것 만들어보고 python도 배우고 node.js도 배워보고 React.js도 배워보고 그러면서 지냈습니다. 그러다가 이직 제안을 받게 되어서 바로 이직하게 되었어요. 두번째 회사는 클라우드, AI 등 최신기술을 사용하는 스타트업 회사였어요. 여기서 내부 서비스를 유지보수하면서 지내다가 회사에 돈이 없어서 SI 프로젝트를 몇개 진행하게 되었는데 제가 총괄을 맡아서 시스템설계, DB 설계, React.js, Flask 전부다 맡아서 진행하게 되었습니다. 이 프로젝트 진행하면서 AWS 서비스를 직접 구축하게 되었는데 그제야 진짜 성장한다고 느껴졌습니다. (VPC, LB, EC2, S3, Amplify, API Gateway 등등등) 직접 하나하나 구축하면서 클라우드서비스 파악도 되고 참 뿌듯했습니다. DB는 왠만한 RDBMS는 다 다뤄본거 같습니다. Mysql/MariaDB, 오라클, PostgreSQL, Cubrid, MS-SQL 까지요 근데 이 DB들 설치하고 쿼리 날려본게 큰 장점은 또 아닌 거 같고.. 그리고 impala, Redis, Elastic Search, InfluxDB 도 해봤구요... 그리고 DB 테이블 설계하고 쿼리 튜닝하는것도 할수는 있는데 이건뭐 짬차면 다 할 줄 아는거라 메리트도 없구요. 이렇다보니 뭐 하나 잘한다는 느낌이 안듦니다... 뭔가 할줄 아는건 많은데 알맹이가 빠져있는 느낌이에요.. 몇군데서 불합격통보를 받으니 좀 답답하네요

개발자

#커리어

#물경력

답변 1

댓글 0

조회 197

일 년 전 · 조현아 님의 질문 업데이트

PostLike 테이블에서의 JPA 관계 설정 (Web, Spring, JPA)

Post 테이블 (Long pno, String cotent) UserInfo 테이블 (String uid, String nickname) PostLike 테이블 (Long pno, String uid) Post에 대한 좋아요 정보를 PostLike테이블에서 관리하고 있습니다. 여기서 PostLike 엔티티를 정의할 때 1) UserInfo userInfo, Post post를 @ManyToOne으로 관리할지, 2) 아니면 그낭 Long pno, String uid로 관리할지 고민입니다. 1번 방법) 장점 : Post, UserInfo를 delete 할때 알아서 관련된 좋아요 정보를 찾아서 삭제해준다는 면에서 무결성 관리가 편함. 단점 : JPA는 where pno=(삭제하는 게시글 id)처럼 쿼리 한 번으로 삭제하지 못 한다. 먼저 PostLike 테이블에 pno가 삭제 게시글 id와 같은 것들이 무엇이 있는지 확인하고, 해당 id에 해당하는 row를 deleteById로 하나하나 삭제하기 때문에 쿼리가 N+1 필요해서 성능 이슈가 생긴다. 2번 방법 ) 장점 : 성능 문제가 해결된다. 쿼리 한 번으로 게시글 혹은 유저를 삭제했을 때 관련 좋아요 정보를 삭제할 수 있다. 단점 : 무결성 관리를 직접 해줘야 해서 프로그래머가 신경써서 관리해야 한다. ◼️ 질문 1 1번 방법과 2번 방법 중에서 2번 방법을 선택하려고 합니다. Trade off를 제대로 한 게 맞을까요? Post와 Comment에서는 @ManyToOne을 사용하고, Follow나 PostLike에서는 @ManyToOne을 사용하지 않는 것이 제멋대로인 것 같아서 고민입니다. ◼️ 질문 2 유저를 삭제할 때 해당 유저가 좋아요를 누른 기록을 유지하는 것이 좋을까요, 삭제하는 것이 좋을까요? 요구사항에 따라 달라진다는 것은 알지만 그래도 일반적으로 사용되는 방법이 궁금합니다.

개발자

#spring-boot

#jpa

#backend

#web

답변 0

댓글 0

조회 29

일 년 전 · 포크코딩 님의 새로운 답변

Api 에 대한 질문

어떠한 사이트에서 Open api같이 api를 제공해주는거 말고 사이트에서 제공해주지 않은 api로 리퀘스트 하는건 Api를 어떻게 구한건가요? 주로 리퀘스트 post요 get도 포함

개발자

#api

답변 1

댓글 0

보충이 필요해요 2

조회 34

일 년 전 · 박정환 님의 새로운 답변

벨로그를 어떻게 유지하는게 좋을까요??

1년 전 처음 개발공부를 시작했을때부터 벨로그에 글을 올려와서 벨로그가 글 무덤이 되어버렸어요 ㅎ 지금이라도 재정비하는 시간을 가져아하는지 아니면 이대로 그냥 가도 될지가 고민입니다. 제 벨로그 주소입니다 https://velog.io/@sseohyun_0v0/posts 먼저 제 벨로그의 문제점은 다음과 같습니다 1. 표준화되어있지 않다 처음에는 별생각없이 쓰다보니 이미지도 없고 제목도 엉망진창입니다.. 2. 퀄리티가 낮은 글들이 많다 일단 가독성이 낮은 글이 많습니다 특히 초기에 작성한 글은 이모티콘 남발로 인한..^^ 도대체 무슨 글인지 안읽힐때가 많습니다. 3. 너무 기초적인 내용이 많습니다. 그리고 그런 글들은 기초적인 내용에서 끝납니다. - 공부를 시작할때부터 써와서 HTML태그와 HTTP 내용도 가득 담겨있습니다. 이런 글들이 읽는 사람으로 하여금 아니 이걸 모른다고..? 생각이 들게 하지 않을까. 걱정이 됩니다. 4. 글의 깊이가 떨어집니다. 제 수준에서는 강의도 보고, 책도 보고 인터넷도 참고하면서 정리했다고 생각했는데 몇달이 지나서 돌아보면 부족한 점이 많이 보이는 것 같습니다. 클론코딩을 하면서 적어둔 글들이 특히 그런데, 따라가는 것에 조급해서 클린코드나 복잡도는 신경을 많이 못쓴게 티가 많이 납니다. 초반에 적었던 글도 마찬가지이고요 5. 위 이유들로 인해 오히려 전문성이 떨어진다. 실제로 떨어지긴합니다. 최근 글의 수준이 딱 제 수준이 맞습니다. 그러나 예전에 작성했던 너무 기본적인 내용의 글과 깊이가 부족한 많은 글 때문에 오히려 저평가 될까봐 걱정입니다. 앞으로는 저는 어떻게 해야할까요? 1. 그냥 유지 한다. 2. 자신 있는 글들은 유지하고 나머지 글들은 지운다. 일년동안의 노력이 담긴글이라 아쉬운 마음도 있긴 합니다. 그러나 지우는게 맞다는 결론이 나면 무조건 지울 생각입니다. 3. 부족한 글들을 보완한다. 음... 이러면 가장 좋겠지만 현실적으로 어렵기도 합니다. 저는 기초를 다져나가는 중에 제 부족한 점을 발견하는 중이라서 보완할 점은 새로 작성하는 글에 담고 있습니다. 내가 잘못알고 있었던 점을 발견해도 해당 내용을 다시 찾아서 수정 보완하기에는 시간이 너무 많이 소요됩니다.. 또한 다른 분들이 생각하시는 좋은 개발 블로그에 대해서 궁금합니다.

개발자

#벨로그

답변 1

댓글 0

조회 273

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

Next.js axios patch메서드 cors error

현재 마이스터고 재학 중인 2학년 학생입니다. 학교에서 Next.js를 사용하여서 서비스를 만드는 프로젝트를 하고있습니다 이 프로젝트 중 서버와의 통신을 위한 axios를 customAxios로 만들었고 기존 put메서드로 수정 api를 호출했을 당시엔 요청이 갔는데 patch메서드로 하니 CORS에러가 계속 뜹니다. velog와 wrtn등을 이용하여 withCredentials: true도 줘보고 package.json에 "proxy"도 줘봤는데 계속 CORS에러가 뜨네요.. 혹시 몰라서 postman으로 호출했을때는 정상적으로 호출이 가는데 이 경우는 무엇이 문제일까요? 도와주시면 감사하겠습니다.. ㅠㅠ

개발자

#corserror

#next.js

#react

#frontend

답변 1

댓글 0

조회 96

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

이력서에 첨삭할 진행했던 프로젝트들 내용을 보다 더 잘 적고 싶어요.

이력서에 첨삭할 지금까지 진행했던 프로젝트들 내용을 적고 있는데 한눈에 보기 쉽게 큰 범주로 적기에는 너무 포괄적으로 적는것 같고 개발한 기능들을 세부적으로 적거나 해당 프로젝트 진행 후 낸 성과들을 다 나열하면 내용이 너무 길어지는것 같아서 어느정도로 구체화해서 적어야될지 헷갈려서 조언을 구해 봅니다. 아래는 지금 작성된 내용입니다. 현재는 프로젝트별로 포괄적으로 적거나 좀 더 디테일하게 적거나 기준점을 못찾은 상황입니다. [ 2022. 12 ~ 2022. 01 • 프로젝트 명 : 집 클릭 • 주요 설명 : 전세임대 지원 사이트로 권리분석을 의뢰할 수 있는 사이트 • 담당 업무 : 자사 서비스 웹 크롤링 기능 개발 -puppeteer 사용 등기부등본 발급 자동화 웹 크롤링 작업 • 기술 스택 : Node.js 2023. 06 ~ 2023. 07 • 프로젝트 명 : 브릭 인프라 • 주요 설명 : 자사 서비스 종합 관리 사이트 • 담당 업무 : 자사 어드민 프론트엔드 개발 • 기술 스택 : React 2023. 08 ~ 2024. 06 • 프로젝트 명 : 키오 솔루션 • 주요 설명 : QR 주문 결제로 보다 편리한 결제 시스템을 이용할 수 있는  솔루션 • 담당 업무 : 자사 솔루션 "키오" 활용 서비스 개발 및 운영 유지 보수 - 메뉴형 결제 서비스 "키오브릭" 프론트엔드 유지 보수 - 금액입력형 결제 서비스 "스마트 노점" 프론트엔드 개발 및 - 해당 서비스 관련 어드민 풀스택 유지 보수 - 자사 어드민 풀스택 유지 보수 • 기술 스택 : React, GraphQL, Node.js, MySQL 2023. 09 ~ 2024. 06 • 프로젝트 명 : 오늘 우리 가게 • 주요 설명 : 자영업자 대상 매출, 리뷰, 주문 현황, 광고 현황 분석 앱 • 담당 업무 : 자사 서비스 오늘 우리 가게 기능 개발 및 운영 유지 보수 - React Native 앱 메인 화면 개발 - 전체 React Native 앱 기반 프로젝트 WebView 기반 프로젝트로 전환 작업 진행 - 리뉴얼 된 WebView 구성 화면 프론트엔드 개발 - 우리 가게 리뷰 듣기 TTS 하이브리드 기능 개발 - 네이버 클라우드 이용 카카오 알림톡 서비스 벡앤드 유지 보수 - 앱 테스트 및 배포, CodePush 작업 진행 • 기술 스택 : React Native, MobX, React, Redux, TypeScript, Next.js, Node.js, MySQL 2023. 11 ~ 2024. 02 • 프로젝트 명 : 빌딩 CAS • 주요 설명 : 건물 내 입주사들을 위한 공지, 관리비 결제 및 장터 커뮤니티 기능을 제공하는 앱 • 담당 업무 : 외주 서비스 빌딩 CAS 프론트엔드 및 앱 개발 - WebView 기반 프로젝트 초기 환경 구축 및 아키텍처 설계 - React Native 앱 메인 화면 개발 - WebView 주요 기능 프론트엔드 개발(소셜로그인, 회원 정보 관리, 관리비 결제, 문의하기, 중고장터 게시판) - 앱 테스트 및 배포, CodePush 작업 진행 • 기술 스택 : React Native, React, MobX, Node.js, PostgreSQL *** 포트폴리오 링크를 통해 더 자세한 내용을 확인 하실 수 있습니다. ]

개발자

#이력서

답변 1

댓글 0

조회 335

일 년 전 · 최용빈 님의 답변 업데이트

파이썬 오류 좀 고쳐주세요 ㅠㅠ

import time import requests import streamlit as st API_BASE_URL = "http://localhost:8000/qna" # Fastapi로 api 생성 def request_chat_api(user_message: str) -> str: url = API_BASE_URL resp = requests.post( url, json={ "user_message": user_message, }, ) resp = resp.json() print(resp) return resp["answer"] def init_streamlit(): st.set_page_config(page_title='Dr. KHU', page_icon='🩺') if "messages" not in st.session_state: st.session_state.messages = [{"role": "assistant", "content": "안녕하세요! Dr.seo입니다🩺"}] # Initialize chat history if "messages" not in st.session_state: st.session_state.messages = [] # Display chat messages from history on app rerun for message in st.session_state.messages: with st.chat_message(message["role"]): st.markdown(message["content"]) def chat_main(): if message := st.chat_input(""): # Add user message to chat history st.session_state.messages.append({"role": "user", "content": message}) # Display user message in chat message container with st.chat_message("user"): st.markdown(message) # Display assistant response in chat message container assistant_response = request_chat_api(message) with st.chat_message("assistant"): message_placeholder = st.empty() full_response = "" for lines in assistant_response.split("\n"): for chunk in lines.split(): full_response += chunk + " " time.sleep(0.05) # Add a blinking cursor to simulate typing message_placeholder.markdown(full_response) full_response += "\n" message_placeholder.markdown(full_response) # Add assistant response to chat history st.session_state.messages.append( {"role": "assistant", "content": full_response} ) if __name__ == "__main__": init_streamlit() chat_main() 이 코드를 실행시키면 자꾸 AttributeError: st.session_state has no attribute "messages". Did you forget to initialize it? More info: https://docs.streamlit.io/library/advanced-features/session-state#initialization 라고 뜨네요..

개발자

#파이썬

#python

답변 2

댓글 1

보충이 필요해요 2

조회 347

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

신입 개발자 기술 스택 수준

안녕하세요. 웹 개발 쪽으로 입사한 지 1년 정도 되어가는 신입 개발자입니다. 이전에 "IT 신입 포지션 변경"이라는 질문 글을 쓰고, 많은 관심 가져주셨었는데 그 이후가 현재 상태입니다 ㅎㅎ 약 1년 정도 회사를 다니면서 요즘 궁금한 점이.. 제가 하고 있는, 또는 했었던 것들이 신입 개발자에게 요구되는 당연한 것들인지가 궁금해서 질문드립니다. 먼저, 저희 회사는 중소 기업치고는 사원수가 꽤 있는 편에 속합니다. (2~300전후) 저는 백엔드 공부 후에 어쩌다 보니 프론드 개발자로 입사했고, 추후 백엔드도 같이 맡게 될 거라 듣고 들어왔습니다. 먼저 제가 와서 사용한 기술 스택입니다. (git, postman 등과 같은 툴 또는 라이브러리는 제외) React, Next, Vite, TypeScript, Keycloak, Nginx, Docker, Jenkins, MySQL, MongoDB, Spring, JSP.. 일단.. 생각나는 건 이 정도이고, 막상 적고 보니 많은 걸 했네요.. 지식의 깊이는 물론 신입 입장이기에 깊지는 않지만, 해당 기술들을 사용하고 활용하는 부분에 있어서는 문제 될 정도는 아닌 것 같습니다. 프론트 쪽은 소규모부터 대형 프로젝트(진행 중)까지 거의 혼자? 진행을 했고..(현재 프로젝트의 서버는 시니어분이 하고 계심) 지금도 하고 있습니다. 서버 쪽은 혼자 직접 파이프라인 설계 및 빌드, 배포까지 해봤고 서버에 도커 올리는 것까지도 다 해본 것 같습니다. (물론 정말 힘들었지만 동작은 잘 됨.. 왜 되는지는 그때나 지금이나 저도 모름) 같은 개발자 친구들은 저보고 많이 하는 편이라고는 하는데, 같은 신입이라 정확히 얼마나 많이 하는 건지 감이 잘 안 옵니다. (그냥 하라면 해야지라는 마인드라..) 시니어 분도 조금씩 시키시다가 잘 해내서 점점 업무를 많이 주시는 건 알고 있는데, 현직 자분들의 생각이 궁금합니다.

개발자

#기술스택

#신입

#웹개발

답변 3

댓글 0

조회 1,716

일 년 전 · 김유진 님의 새로운 댓글

리액트에서 superagent를 활용해서 minio에 업로드하는 방법을 알려주세요 😂

제발 도와주세요 ㅜㅜㅜㅜㅜ 몇일동안 오류를 해결하지 못하고 있어요.. .. 리액트 웹에서 모바일 핸드폰으로 웹을 접속했을 경우, input을 통해서 사진을 업로드하거나 촬영한 이미지를 minio에 업로드 하고 싶은데, 아래 부분에서 계속 오류가 발생해서 도움을 요청해요 ㅠㅠ https://min.io/docs/minio/linux/developers/javascript/API.html#presignedPostPolicy 위 문서를 참고해서 코드를 작성했어요! [핸드폰으로 웹 접속 -> 사진 업로드/촬영 -> minio 업로드] 이 순서인데, minio에 이미지가 업로드가 되지 않고 계속 오류를 발생시켜요. superagent를 활용해서 minio에 업로드가 가능하다고, 위 문서를 참고해서 작성을 했는데, 계속 아래 에러 메시지를 전달받고 있어요ㅜㅜ 아래 에러를 게속 반환해요. <Error> <Code>MalformedPOSTRequest</Code> <Message>The body of your POST request is not well-formed multipart/form-data. (The name of the uploaded key is missing)</Message> <BucketName>bucket</BucketName> <Resource>/bucket</Resource> <RequestId>RequestId...</RequestId> <HostId>HostId...</HostId> </Error> f12 개발자 모드 페이로드 전달 데이터 bucket: 데이터 Content-Type: multipart/form-data x-amz-date: 날짜정보 x-amz-algorithm:데이터 x-amz-credential: 데이터 policy: 데이터 x-amz-signature: 데이터 file: (바이너리)

개발자

#react

#superagent

#typescript

답변 1

댓글 2

조회 71

일 년 전 · 익명 님의 질문

arrayfield 와 many=True

django에서 postresql 을 쓸 때 arrayfield 와 many=True 의 차이가 무엇인가요? 각각 어떤 경우에 쓰게 되는지 궁금합니다. arrayfield 는 postgresql의 특징 중 하나라고 생각하는데, 실제로는 many=True를 선호하는 경향이 있는 거 같은데 그럼 postgresql은 왜 쓰나요?

개발자

#postgresql

답변 0

댓글 0

조회 23

일 년 전 · 익명 님의 질문

[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

조회 76

일 년 전 · 김인후 님의 새로운 답변

백엔드 개발할때 http method 활용 여부

get post patch put delete 를 가장 자주 사용하는 것으로 알고 개인 프로젝트에도 활용해서 api를 잘 만들고 있는데요 혹시 get과 post만으로도 개발을 하는 경우가 대부분인가요? 국비에서 팀원간 얘기를 하다가 결론이 안나서 문의 드려요

개발자

#http

답변 1

댓글 0

조회 55

일 년 전 · 예빈 님의 새로운 댓글

타입스크립트 타입지정

리액트 쿼리로 OptimisticUpdate 를 구현했는데 onError 에서 context 타입 지정을 어떻게 해야할지 모르겠습니다 ㅠㅠ context : 타입 하면 오류나고, data : 타입 = context 해도 오류나고 as 를 쓰면 해결되긴 하는데 더 좋은 방법 없을까요? ㅠㅠㅠ 'use client'; import { useState } from 'react'; import { toast } from 'react-toastify'; import { usePostLikeCount } from '@/hooks'; interface LikeContextType { previousLikeCount: number; previousIsLike: boolean; } export const useOptimisticLike = ( boardId: number, initialLikeCount: number, initialIsLike: boolean, refetch: () => void ) => { const [optimisticLikeCount, setOptimisticLikeCount] = useState(initialLikeCount); const [optimisticIsLike, setOptimisticIsLike] = useState(initialIsLike); const { mutate: postMutate } = usePostLikeCount(boardId, { onMutate: async (): Promise<LikeContextType> => { setOptimisticLikeCount((prev) => optimisticIsLike ? prev - 1 : prev + 1 ); setOptimisticIsLike((prev) => !prev); return { previousLikeCount: optimisticLikeCount, previousIsLike: optimisticIsLike, }; }, onError: (err, variables, context) => { const data: LikeContextType = context; if (data) { setOptimisticLikeCount(data.previousLikeCount); setOptimisticIsLike(data.previousIsLike); } toast.error('좋아요 업데이트에 실패했습니다.'); }, onSuccess: () => { refetch(); }, }); const uploadLike = () => { postMutate(); }; return { optimisticLikeCount, optimisticIsLike, uploadLike, }; };

개발자

#react-query

#typescript

답변 1

댓글 1

조회 60

일 년 전 · 지민성 님의 질문

React Spring 배포과정 중 의문의 404

react + spring boot로 진행하는 프로젝트가 현재 cloudtype이라는 플랫폼으로 배포중에 있습니다. 문제는 정확한 서버주소를 호출하는 것 같음에 불구하고 404 에러가 발생하여 해결하지 못하고 있습니다. 현재, 아래 사진과 같은 로그가 클라이언트, 서버에 각각 발생합니다. 서버에서는 다음과 같이 구성되어있고 @RestController @RequestMapping("/v1/login") @RequiredArgsConstructor @CrossOrigin(origins = "https://web-secondchance-front-bug-1cupyg2klvnmgdft.sel5.cloudtype.app") public class KakaoController { private final KakaoService kakaoService; private final Logger LOGGER = LoggerFactory.getLogger(KakaoController.class); @PostMapping("/kakao-login") public ResponseEntity<UserDto> kakaoLogin(@RequestBody KakaoLoginDto kakaoLoginDto) { String code = kakaoLoginDto.getCode(); LOGGER.info("Get Code from FrontEnd : {}", code); LOGGER.info("Request getAccessToken()"); kakaoLoginDto = kakaoService.getAccessToken(code); String accessToken = kakaoLoginDto.getAccess_token(); LOGGER.info("access_token : {}", accessToken); if(accessToken != null){ UserDto userDto = kakaoService.getUserInfo(accessToken); return ResponseEntity.ok(userDto); } else { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); } // accessToken이 null임에도 getUserInfo를 부름. // 안부르게 끔 위의 방법을 포함하여 // 1. map에서 true, false를 사용하여 해봄 // 2. getAccessToken을 map객체로 반환하게끔 하여 accessToken이 있으면 true, 없으면 false로 하여 isEmpty 함수로 체크하여 부름 // 위의 두 방법 전부 소용없음. 그냥 getUserInfo를 부름. } @PostMapping("/kakao-logout") public String kakaoLogout(){ return "ok"; } } 현재 리액트에서는 다음과 같이 axios.post로 접근하여 code를 전달합니다. 무엇이 문제일까요?

개발자

#react

#spring-boot

#배포

#404

답변 0

댓글 0

추천해요 1

조회 158

일 년 전 · 이양일 님의 새로운 답변

스프링부트 ServiceInterface에 요청문 작성

안녕하세요 MSA아키텍처를 적용한 개인프로젝트 진행중에 궁금한 사항이 생겨서 글 작성합니다 회원정보 수정을 한 뒤 수정이 정상적으로 완료되었을 때 클라이언트에 완료되었다는 메세지와 함께 로그아웃 메서드를 실행시키고 싶어서 public interface IUserInfoService { @PostMapping(value = "security/v1/logout") void logout(); } 이렇게 서비스 인터페이스에 작성을 해두고 컨트롤러에서 userInfoService.logout(); 으로 호출하여 실행하는데 권장되는 방법인지, 더 좋은 방법이 있는지 궁금해서 질문드립니다

개발자

#springboot

#java

#spring-security

#msa

답변 1

댓글 0

추천해요 1

조회 335

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

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

조회 83

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

금액과 같이 숫자를 POST요청 보낼때

자바스크립트 환경이고 Number 타입을 post 요청으로 보내는 상황입니다. 숫자 20자리를 넘어가면 지수표기법(예를 들어, 1.21e+25)로 바뀌어서 서버단에서 유효하지 않은 정수라고 오류가 났습니다 이런 큰 숫자의 경우에는 문자열로 다루는 게 더 좋은가요? 어떻게 다루시는지 궁금합니다

개발자

#javascript

#number

#restapi

답변 1

댓글 0

조회 159

일 년 전 · 예범 님의 새로운 댓글

다중 POST, PUT 질문 !

선배님들 Teacher - 관계테이블 - Classroom 가 있는 경우에 Teacher의 POST를 통해 A,B 관계테이블을 다중 등록으로 3개를 등록했다고 가정해보겠습니다. Teacher의 PUT을 통해 Teacher와 관계테이블을 수정할 때 관계 테이블 3개가 아닌 적은 2개, 많은 4개를 등록하는 경우입니다. 덧붙여 설명하자면, 선생님이 A,B,C 수업에 속했지만 A,B에만 속하게 변경하거나 A,B,C,D에 속하는 경우입니다. 1) Teacher의 관계테이블을 모조리 삭제하고 A,B,C,D를 다시 POST로 관계테이블을 설정한다. 2) 만약 4개의 관계테이블을 추가하려고 한다면, 기존에 3개가 있으므로 3개는 그냥 교체하고 1개는 생성한다. 만약 적은 2개의 관계테이블을 추가하려고 한다면, 기존에 3개가 있으므로 2개는 교체하고 1개는 삭제한다. 1,2안 중 어떤 방법을 사용해야할까요? 아니면 보통 이런 경우 사용하는 방법이 있을까요 ?!!!! 1안 같은 경우는 id가 무지막지하게 생성될 것 같습니다… 제가 학부생이라 부족합니다. 잘 부탁드립니다 !

개발자

#spring-boot

#spring

#java

#백엔드

답변 1

댓글 1

조회 126