11분 전 · kevin 님의 새로운 댓글
[React] 도움!! 같은 함수 2번 실행하는 방법
안녕하세요, 스타트업에 취업한 신입 프론트 개발자입니다. 지금 회사에서 jwt 토큰으로 로그인을 구현하고있는데, 지금 3일째 붙잡고있는데 전혀 해결이 안되서 너무 막막합니다 ... 페이지가 처음 열릴 때 load_board()라는 함수를 실행합니다. 이는 axios 통신을 하는 함수이고 만약 res.data=== 'reload' 라면 refresh_token()함수를 실행한 후 다시 load_board()를 실행하고 싶습니다. 이걸 어떻게하면 좋을까요 ?... 제가 해봤던 방법은 1번 .then((res) =>{ setIsRefresh(true); } useEffect(()=>{ if(isRefresh){ refresh_token(); setIsRefresh(false); load_board() },[isRefresh]) 이 방법은 되긴되나 서버와 통신을 최소 3번씩하고 ... (refresh_token()를 실행하기전에 자꾸 load_board()를 실행해서...) 2범 async await을 써보니 useEffect(()=>{ const res = load_board(); if(res.data ==='reload'){ await refresh_token(); await load_board} ... },[]) 이건 확실히 한번만 실행이되는데 refresh_token()의 리스폰이 오기전에 load_board()를 실행하니까 의도한대로 안돼요 . . . . . . . . 이걸 어쩌면 좋을까요. . . . . .
#react
#로그인
#jwt
#비동기
답변 3
댓글 4
조회 113
24분 전 · 익명 님의 질문
프론트엔드 책 추천부탁드립니다
3년차 프론트엔드 개발자입니다. 책을 기반으로 스터디를 진행하고자 하는데요. 스터디를 하면서 논의할만한 내용이 많거나 프론트 개발자로서 알아야할 좋은 내용이 담겨져 있는 책이 있을까요? 추천해주시면 감사하겠습니다
#프론트공부
#프론트엔드
#스터디
답변 0
댓글 0
조회 2
40분 전 · 남 재민 님의 새로운 답변
리액트 네이티브로 앱을 만들려면 뭐부터 해야하나요..?
자바스크립트는 기초까지, 리액트는 아예 배우지도 않았는데 사정 상 앱을 만들어야해요.. 리액트 네이티브로 만들려고 하는데 인터넷을 찾아봐도 모르겠어요.. 어떤 것부터 공부해야하나요?
#react-native
답변 2
댓글 0
조회 30
한 시간 전 · 이정윤 님의 댓글 업데이트
Next.js에서 클라이언트 컴포넌트와 서버 컴포넌트의 axios interceptor 동기화
안녕하세요 Next.js 13버전 page router방식으로 개발중입니다. 클라이언트 컴포넌트와 서버 컴포넌트에서의 통신을 위해 각각 axios interceptor를 구현했습니다. 각각 store와 cookie에서 accesstoken값을 헤더에 넣어주는 역할을 하고 있는데 문제가 되는 부분은 토큰 만료 이후 갱신하는 부분입니다. interceptor가 두개이다보니 처음에는 서로 동일한 토큰응 가지고 있지만, 만약 클라이언트 컴포넌트에서 요청시 토큰이 만료되면 갱신하는 요청을 보내고, 서버 컴포넌트에서 요청시 만료되면 갱신하기 때문에 서로 일치하지 않는, 유효한 토큰이 두개가 되는 상황입니다. 현재 서버에서는 유효한 토큰이 하나만 존재하도록 설계를 해놓진 않아서 작동하는데 문제는 없지만 많이 찝찝하네요. 혹시 좋은 방안이 있을까요? 혹은 비슷하게 구현하신 분들의 상황을 공유 받을 수 있을까요?
#react
#next.js
답변 2
댓글 11
추천해요 3
조회 520
7시간 전 · 익명 님의 새로운 댓글
Next.js에서 page.js
안녕하세요. Next.js를 공부하던 중 궁금한점이 생겨 질문드립니다 ! 제가 app/page.js 파일에 사용자가 로그인했다면 메인화면 컴포넌트를 보여주고, 로그인하지 않았다면 로그인 컴포넌트를 보여주도록 작성해두었습니다. 그런데 궁금한 점이 로그인을 했는지 유무를 getserversession을 통해 세션을 확인해서 판단합니다. 그런데 이때 비동기처리를 위해 await를 붙여줘야하는데, 그렇다면 page.js의 Home() 자체에 async를 붙여주어야합니다. 그래서 해당 방법을 사용해 제가 생각한 로직은 구현했습니다. 그런데 궁금한 점이 page.js에서 export default async function Home() 이런식으로 작성해도 되나요? 제가 page.js의 역할을 정확히 이해하지 못한 느낌이 들어 질문드립니다. (챗 지피티에게 물어보니 13버전 이전의 내용만 알고 있는 듯합니다. 또한 컴포넌트 자체에 async를 붙이면 안된다고 답변이 옵니다 !)
#next.js
답변 1
댓글 1
조회 35
11시간 전 · 익명 님의 질문
백엔드 JAVA 코딩테스트 공부
대학교 3학년 학생입니다 1,2학년때 배운거 다 까먹었고 이제 정신차리고 공부하려는데 코딩테스트 공부를 시작해보려합니다 solved.ac로 플래티넘까지 찍기 Vs 프로그래머스 풀기 무엇을 추천하시나요?? 언어는 자바로 할려고 합니다 왜냐하면 주력언어로 쓸것인데 공부할겸 코딩테스트 공부도 같이 하려고하기 때문입니다 이런부분도 조언해주시면 감사하겠습니다
#코딩테스트
#백엔드
답변 0
댓글 0
조회 14
12시간 전 · 이상원 님의 새로운 댓글
Next dev server가 자꾸 터집니다 ㅠㅠ
안녕하세요. 이번엔 Next에서 dev server가 자꾸 말썽입니다. npm run dev를 통해서 dev server를 열어 두고, 실시간으로 작업물을 저장하면 변경점을 빠르게 컴파일을 통해 확인하면서 작업하던 가운데 어느 순간부터 컴파일이 계속 더져지게 됩니다. 터미널에서는 계속 waiting이 뜨게 되고, 브라우저를 새로고침하면 Internal server error가 검은색 화면에 흰색 글씨로 보이며, 터미널에는 다음과 같은 에러들이 나열됩니다. 아마 .next 에서 생기는 것을 보니 빌드 폴더를 생성할 때 마다 이러는 것 같은데, next에서는 build 폴더를 따로 같이 가지고 가면서 개발 서버로 작업을 하면 안되는지 모르겠습니다. 비슷한 경험을 하신 분의 블로그에서는 운영체제가 무슨 문제가 생겨서 한번 밀어야지 해결됐다고 하시는데, 그렇게 까지 리소스를 낭비하기가 싫네요 ㅠㅠ. 비슷한 경험을 겪으셨다면 해결 방법을 요청드리고 싶습니다!
#next.js
#error
#500
답변 3
댓글 3
조회 253
13시간 전 · 이지헌 님의 새로운 댓글
Next.js 이미지 최적화 방식에 대해 질문이 있습니다.
안녕하세요! Next.js 14를 사용해 프로젝트를 진행하던 중 이미지 최적화에 관해 궁금한 점이 생겨서 이 곳에 질문을 남깁니다. 프로젝트를 하며 약 500개의 이미지를 랜덤으로 추천해서 렌더링하는 기능을 구현했습니다. 현재 작업 방식은 프로젝트에서 페이지에서 이미지를 업로드 하는 기능은 필요가 없기에 MongoDB에 이미지 'URL'을 모두 저장하고 클라이언트에서 서버로 요청하면 서버에서 DB에 있는 URL을 리턴해주면 그걸 <img> 태그를 이용해서 화면에 띄우는 방식으로 구현했습니다. 하지만, 이렇게 구현하니 이미지 렌더링 속도가 조금 늦는 현상이 발생해 이를 최적화하고 싶습니다. 제가 생각했던 방법들은 다음과 같은데 어떤 방법이 좋은지, 혹은 더 나은 방법이 있는지 아시는 분이 있으면 추천해주시면 감사하겠습니다. 1. 이미지를 모두 다운받아 public 폴더에 넣고 Next/Image를 사용한다. -> 이 방법을 하려니 사진이 500개가 되고 사진마다 png,jpg 형식도 달라서 적용하는 것도 어려울 것 같고 무엇보다도 프로젝트 파일 사이즈가 커지는게 문제가 될 것 같다는 생각을 했습니다. 만약 사진이 500개가 아니라 1000개 2000개가 된다면 더더욱 그럴 것 같아서요. 이 부분에서 추가로 생각해본 방식이 파일 형식을 모두 avif로 바꾸는건데 그런 접근도 괜찮은건가요? 2. 서버에서 URL 넘어온 그대로 Next/image를 사용한다. -> 모든 파일의 url 형식이 달라서 일일이 next.config.ts에서 설정해주는 게 쉽지않을 것 같다고 생각했습니다. 그래서 모든 파일을 AWS S3에 올려놓으면 URL 주소가 같을테니 그렇게 하는 게 맞는지 궁금했습니다. 아직 제 지식이 짧아서 생각해본 방식은 위와 같은데, 추가로 좀 더 좋은 방식이나 현업에서 사용하는 방식이 있다면 알려주시면 감사하겠습니다. 긴 글 읽어주셔서 감사합니다!!!
#next.js
#리액트
#이미지최적화
#넥스트
답변 1
댓글 1
추천해요 1
조회 35
13시간 전 · 디큐 님의 새로운 답변
비전공자 프론트엔드 입문
안녕하세요 소프트웨어학과를 2학년 2학기까지 하고 휴학한 대학생입니다. 재학 중에 코딩에 대한 열정과 관심이 없었고 군대와 휴학기간이 겹쳐 실력은 거의 비전공자라고 보면 될 정도입니다. 그렇게 휴학 생활을 보내던 중에 작업물이 눈에 보이는 UIUX나 프론트엔드에 관심이 생겨서 독학으로 저에게 맞는 길인지 알아보고 열심히 해보려고 합니다. 그리고 올해 말에 캐나다로 가게 되어서 내년에 취업까지 생각해보려고 하는데 캐나다의 트렌드는 또 다른지 궁금해요! 독학할 때 무엇을 보고 공부해야 하는지, 중요하게 생각해야 할 것은 뭔지 알려주시면 감사하겠습니다! (캐나다에서의 웹 디자이너/개발자 특징도 아시는 분 있으시면 알려주세요~~)
#프론트엔드
#ui
#ux
#해외
#독학
답변 1
댓글 0
조회 60
14시간 전 · 익명 님의 새로운 댓글
클라우드 개발자 부트캠프, 어느 쪽이 더 좋을까요?
저는 비전공으로 국비교육을 통해 디자인, 퍼블리싱 과정을 이수하고 개발자 방향으로 공부중인 사람입니다. 이번에 카카오와 네이버에서 각각 진행하는 클라우드 개발자 양성 부트캠프에 지원하게 되었고, 두쪽 모두에서 간단한 서류전형이 통과되었고 면접 예정을 통보받아 이렇게 질문글을 쓰게 되었습니다. 두 과정 모두 커리큘럼 자체는 유사하지만 [카카오는 4개월간의 비대면 교육과 2개월간의 제주도에서 해커톤을 진행] [네이버는 강남에서 6개월간 대면으로 클라우드 개발 및 데브옵스 수업을 진행합니다.](집에서 대략 1시간 20분 거리) 여러분이라면 어떤 과정이 더 매력적으로 보이시나요? 커리큘럼은 아래 링크에 모두 기재되어 있습니다. 카카오 클라우드 in Jeju 과정 - https://rapa-kakaocloudschool-apply.goorm.io/ 네이버 클라우드 데브옵스 과정 - https://ncamp.kr/
투표
#부트캠프
#카카오
#네이버
#국비교육
#커리큘럼
답변 1
댓글 1
조회 86
14시간 전 · 디큐 님의 새로운 답변
ChatGPT 시대,, 코딩 테스트
요즘은 코딩 테스트를 어떻게 치루는(?) 편인가요? ChatGPT로 웬만한 문제는 다 풀릴텐데 트렌드가 어떤지 궁금합니다
#코딩테스트
#이직
#경력
답변 1
댓글 0
조회 71
15시간 전 · 민경배 님의 새로운 댓글
리액트를 사용하여 프론트 개발 중 API 질문입니다.
리액트를 사용하여 프론트 웹 화면을 개발하고 있습니다. 사용자가 로그인을 하면 화면에 사용자의 닉네임, 프로필 사진, 즐겨찾기 수 등을 띄워줘야 합니다. 그러려면 API가 필요한데 위 정보가 담긴 API는 로그인 구현을 담당하는 백엔드 팀원이 제공하나요? 협업 팀플이 처음이라 모르는 것이 많습니다..
#api
#프론트
#백엔드
#react
#spring-boot
답변 1
댓글 2
조회 49
15시간 전 · undefined 님의 새로운 댓글
TS 고수님, TS에서 타입 캐스팅 'as', 이렇게 이해해도 될까요
안녕하세요, 타입스크립트 고수님들에게 타입스크립트의 키워드 "as"에 대해서 문의 드립니다. 관건은 'as' 인데요 as의 의미를 다음의 순서대로 풀어보았습니다. 아래 코드에서 as의 역할/의미를 아래 순서대로 이해하는게 맞을까요? (=똑 떨어지는 설명이 없다보니, 나름 의미를 풀어서 이해해봤습니다.) 1.*[k in keyof O as O[K] 만약 k가 k in keyof o의 첫번째 값으로 'who'가 들어오고, 텍스트 'who'를 타입을 string이라고 합니다(as는 왼쪽의 값을 오른쪽의 값으로 '간주'하기 때문에) 라고 종종 서적에서 볼 수 있습니다. 2.*k in keyof O == O[K] 저는 as를 "=="이라고 이해하는데요, who(k in keyof O)는 string이라는 타입값이라고 간주합니다(=who는 string 입니다 라는 확정적인 의미가 아니라, "이렇게 할래" 이런 어조로 말입니다.) 3.[핵심!] who ==(비슷하다라고 간주하다) string 이기 때문에, who를 쓰는건 곧 "잠재적?"으로 string이라고 이해해도 될까요??.. (즉, who라고 쓰고 who라는 자리에 타입 string이라고 읽는다..처럼 말이죠...) 4.*who(==string) extends T(number) ? never : K(who) 텍스트 who는 곧(==) string 타입이기 때문에, 3번에서 말한 것처럼, who의 타입은 string이기 때문에 never가 아닌, K즉 who로 종료된다 요약하면, as를 쓰면 위 코드 상에서는 2가지 의미가 떠오르는데요, 1.k라는 텍스트를 o[k]의 타입으로 바인딩을 시키고 2.k는 o[k]라는 타입을 갖게 되어(= 타입 캐스팅), k를 사용하는 건 곧, k의 타입 o[k]를 사용하는 것이다 라고 이해했습니다. k라고 쓰고 o[k]라고 읽는 다 처럼 말이죠, as가 as 이하의 타입으로 "만든다" 라고만 생각하면, 위의 3번 내용이 생각이 나질 않습니다. 아래 코드에서 as를, 코드"순서대로" 이해해보려 하니 조금은 억지스러운 면이 있었지만, 조금은 컴퓨터 답게? as를 제대로 이해하고 있는지 고수님들에게 조언을 듣고 싶습니다! 감사합니다!
#typescript
#as
답변 1
댓글 1
조회 43
16시간 전 · ㄱㅎㅁ 님의 새로운 답변
부트캠프 6개월로 창업해낼 수 있을까요?
안녕하세요. 저는 현재 코딩과 관련없는 전자과를 다니며 휴학중인 대학생입니다. 휴학을 하며 그동안 예비창업패키지를 준비하고 대학생을 대상으로 한 플랫폼을 기획해서 신청을 했다가 아쉽게 탈락했습니다. 그래서 지금 남은 휴학기간동안 부트캠프를 신청할지말지 고민입니다. 물론 듣고나서 이후에 코딩쪽으로 흥미가 확 변할 순 있겠지만 일단은 취업목적으로 들을건 아니에요. 지금 저는 창업을 한다면 피그마를 이용한 기획이나 포토샵을 이용한 디자인 정도야 가능하 개발쪽은 무지해서 어떠한 아이템을 이용해서 창업을 한다 했을 때, 개발자는 돈을 주고 사람을 고용해야하는거니까 차라리 6개월동안 부트캠프를 듣는다면 이 지식을 바탕으로 제가 직접 개발에 힘을 쓸 수 있을 정도인지 궁금해요!! Q1. 부트캠프를 듣는다면, 백엔드부분은 워낙 딥다이빙을 해야 한다해서 프론트엔드,웹풀스택,앱개발중에 하나로 들을 생각중인데 6개월 들은 실력으로 제가 직접 개발에 힘을 쓸 수 있을 정도가 될 수 있을만한 분야는 어떤걸까요?? (워드프레스로 웹사이트 잠깐 만져봤는데 웹부분은 쉬워보이긴하더라고요??!) Q2. 괜히 부트캠프 듣는거보다는 플랫폼을 창업한다고 했을 때, 그냥 사이드 프로젝트식으로 개발자분들을 구해서 진행하는게 더 나을까요? 읽어주셔서 감사합니다..!
#부트캠프
#비전공자
답변 1
댓글 0
조회 20
18시간 전 · 코드 스미스 님의 새로운 댓글
클라우드 서버 비용
Maria 레코드 10000개 이하 Nginx Spring jvm cpu 1프로 이하 돌리려고 하는데 AWS가 좋을까요? NCP이 좋을까요? 어떤걸 호스팅 받는게 좋을지도 질문드립니다
#aws
#navercloudplatform
#ncp
#naver
답변 1
댓글 4
조회 25
19시간 전 · 익명 님의 새로운 댓글
개발 속도가 너무 더딥니다
스프링부트로 백엔드 서버를 개발 중인 대학생입니다. 맨날 소스파일 한 두개 쓰는 장난 코드만 적다가 제대로 프로젝트 만들어보는 건 이번이 처음이에요. 코드 자체는 굉장히 간단한데 클래스 구조를 설계하는 과정에서 시간이 너무 많이 지체되는 것 같아서 고민입니다. 여기서는 인터페이스를 쓰는게 좋지 않을까, 얘는 상속 쓰면 겹치는 코드를 줄일 수 있을 거 같기는 한데 구조가 복잡해보여서 오히려 프로젝트가 더 복잡해지는 건 아닐까, 이 기능은 어떤 서비스 객체에 넣는게 더 자연스러울까, 어디에도 넣기가 부자연스러운데 차라리 서비스 객체를 분리할까 등등 만들면서 코드 짜는 시간보다 클래스 간의 구조를 짜는데 시간이 더 많이 걸립니다. 주변에 동기들 보면 금방금방 코드 짜고 포트폴리오 완성하는 것 같은데 저는 아무리 시간을 쏟아도 성과가 빠르게 나오지 않아서 걱정입니다. 최근에는 인터넷에 잘 만든 코드를 먼저 검색해본 후에 구조를 따라 하는 식으로 공부하고 있는데, 코드를 찾아보고 왜 저 구조를 쓴 건지 이해하는데 또 시간이 소모됩니다. 계속 이렇게 진행하는게 맞을까요? 너무 초조해요...
#spring-boot
#backend
답변 1
댓글 1
조회 40
하루 전 · 익명 님의 새로운 댓글
포트폴리오용 프로젝트를 서버에 배포할때
개발 프로젝트를 포트폴리오용(신입)으로 배포하고 싶은데 어쩔 수 없이 중요한 기능을 하나 빼고 배포할 바에는 배포를 안하는게 나을까요? 웹 자동화 기능(Selenium)이 로컬에서는 잘 돌아가는데 배포 시 오류가 발생해서(방법 왠만한건 해봤습니다) 해당 기능을 빼고 배포하는건 좋은 선택일지 모르겠습니다..
#프로젝트
#서버
#배포
#포트폴리오
답변 1
댓글 1
조회 55
하루 전 · 장성호 님의 새로운 답변
여기서 의존성 주입이 어떻게 이뤄질 수 있는 지 궁금합니다.
안녕하세요 이제 막 스프링부트 공부를 시작한 3학년 학생입니다. 다름이 아니라 스프링부트를 공부하던 중 아래와 같은 의문이 생겨 질문드립니다. @SpringBootApplication @ConfigurationPropertiesScan public class SburRestDemoApplication { public static void main(String[] args) { SpringApplication.run(SburRestDemoApplication.class, args); } } @ConfigurationProperties(prefix = "greeting") class Greeting { private String name; private String coffee; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCoffee() { return coffee; } public void setCoffee(String coffee) { this.coffee = coffee; } } 제가 이해하기로는 @Component(service, repository, controller 등) 어노테이션이 클래스에 부착되어 있어야 해당 클래스의 객체를 스프링 컨테이너에 의해 의존성 주입을 할 수 있다고 알고 있는데, @ConfigurationProperties 어노테이션은 내부를 아무리 찾아도 위에서 언급한 어노테이션을 가지고 있지 않았습니다. 하지만, @RestController @RequestMapping("/greeting") class GreetingController { private final Greeting greeting; public GreetingController(Greeting greeting) { this.greeting = greeting; } @GetMapping String getGreeting() { return greeting.getName(); } @GetMapping("/coffee") String getNameAndCoffee() { return greeting.getCoffee(); } } @RestController 에 의해(@RestController는 내부에 controller 어노테이션이 있더라구요) 스프링 컨테이너로부터 의존성 주입을 받을 수 있는 GreetingController는 greeting 객체를 받아서 생성자 메서드를 실행하므로 스프링 컨테이너에서 Greeting 클래스의 객체를 의존성 주입 받을 수 있는 지 확인해보고 위에서 언급한대로 Greeting은 등록되어 있지 않으므로 오류가 날거라 예상했습니다. 하지만, 아무런 문제없이 자동으로 public GreetingController(Greeting greeting) { this.greeting = greeting; } greeting 객체가 주입이 되었고 실행되었습니다. 제가 이해한 내용이 어디서 틀렸는 지 궁금합니다.
#spring-boot
#java
답변 2
댓글 0
조회 93
하루 전 · 이승훈 님의 새로운 댓글
도커 세팅 후 docker-compose과 data폴더 깃에 푸시 해도 되나요?
현재 도커 세팅 후 pgAdmin4를 사용해서 DB생성까지 했습니다. 그런데 말입니다. 도커에 관련 파일과 폴더는 어떻게 관리를 해야되나요? .env 파일 처럼 gotignore에서 제외시켜야 되는건가요? 아니면 다른 방식으로 푸시를 진행을 해야 되는건가요?
#docker-desktop
#prisma
#pgadmin
답변 2
댓글 2
조회 51
하루 전 · 옥탑방 강아지 님의 새로운 답변
Java개발자 취준 서브 언어를 무엇으로 설정해야 할까요?
복수전공을 하는데 어떻게 하다보니 C계열은 공부를 아예 안했고 학교에선 Python 으로 과제하고 실습하고 플젝을했고요 혼자 공부 하는 것은 Java를 주로 했고 백엔드 자바계열 개발자로 취업을 하고 싶은데.. 사실 파이썬은 너무 다룰줄 아는 사람이 많은 것 같아서 서브언어로 메리트가 있을지 없을지도 모르겠고.. C나 C++은 백악관 권고도 있고 그냥 손이 안가더라고요;. C계열 대체 언어로 주목받는 Rust나 JVM기반인 코틀린 자바와 문법이 약간 비슷한 C# 중에 하나를 서브언어로 취미삼아 다뤄볼까요?? 아니면 그냥 학교에선 파이썬 강의를 들으니 그대로 주력언어로 자바를 하고 서브로 파이썬을 다뤄볼까요? Java를 공부하는 입장에선 연계해서 배우기 쉬운 C#이나 코틀린이 나을까요?? 이것저것 다 해보고 배우기 쉬운걸 고르는거 보단 취업할때 시너지라 해야하나 그런것도 좀 고려하고싶어성..
투표
#java
#kotlin
#python
#c#
#rust
답변 2
댓글 0
조회 160
하루 전 · 백승훈 님의 댓글 업데이트
nextJS 에서 안전하게 token 처리하기
nextjs에서 nextAuth 쓰지않고 안전하게 token 처리하는 완벽한 예시가 있는지 알고싶습니다. 사이드 프로젝트중에 여러 시도를 해봤는데 정답을 못찾겠습니다. 일단 axios 인터셉트로 ssr이나 csr이나 모두 토큰을 헤더에 담아서 보내는 것을 목표로 하고 있습니다. 1. 상태관리 라이브러리를 사용한다. 당연히 ssr 환경에서는 불가하니 탈락 2. 그냥 쿠키를 사용한다 보안 문제가 있으니 탈락. 3. http only 쿠키를 사용한다. csr 환경에서 접근할 수 없으니 탈락. 대안으로 생각해본 방법들은 1. 모든 api를 server action을 랩핑해서 미들웨어처럼 사용하고 http only 쿠키 이용하기 2. 쿠키와 상태관리 모두 값을 넣어두고 두가지 다 관리하면서 서버와 클라이언트 컴포넌트에서 각각 제어하기 하지만 두가지 방법은 너무 번거롭고 버그 양산일 것 같습니다. 많은 분들께 여쭤봤을 때는 그냥 쿠키를 사용하고 보안은 어느정도 포기한다는데 다른 방법이 있을까요?
#next.js
#react
#jwt
답변 1
댓글 5
추천해요 1
조회 265
하루 전 · tkddls8848 님의 질문
K8s에 쓸 os선택
개인적으로 vagrant를 이용한 멀티노드 k8s클러스터를 만들어보고 있습니다. Kubespray를 사용하려면 python3.10이 필요한데 centos7은 기본적으로 python3.6까지 제공됩니다. 강제로 레포지토리를 등록하고 바이너리파일을 받아서 bashrc alias를 등록하여 설치는 했지만 pip을 이용한 의존성 설치에서 계속 에러가 생겨 centos8로 올렸습니다. Centos8가 오픈소스가 아니라는 말도 있고 centos7에 비해 너무 무거워서 os선택에 고민이 있는데 보통 포폴 혹은 개인적인 개발목적으로 쓰는 os는 어떤게 있나요?
#k8s
#centos
#ubuntu
답변 0
댓글 0
조회 13
하루 전 · 장성호 님의 새로운 답변
컴공 특기자전형 평균 수준
올해 막 고3이 된 코딩 새내기입니다. 고1때 알고리즘에 흥미를 느껴 C++로 알고리즘 공부를 시작해 이 특기를 살려 SW특기자 전형을 써 보고 싶은데, 인문계 고등학교에서 저처럼 알고리즘을 공부한 친구가 없어 평균 수준을 잘 모르겠습니다... 제 수준은 map/set, heap, st/qu/dq 수준의 자료구조를 활용할 수 있고, 그래프에 관해서는 dfs/bfs, 다익스트라/벨만-포드/플로이드-워셜 알고리즘을 이해했고 구현/응용할 수 있으며, 기타 분할 정복/투 포인터/초급 수준의 dp 등의 문제를 풀 수 있는 정도입니다. (Solved.ac 골드1) 올해 koi를 준비하고 있는데 특기자 전형으로 대학을 노려볼 만 할까요..?
#algorithm
#대입
답변 1
댓글 0
추천해요 1
조회 67
하루 전 · 장성호 님의 새로운 답변
JpaRepository 다중상속 오류
JpaRepository에 다중상속으로 CustomRepository를 상속하려고 합니다. 근데 자꾸 에러가 나서 질문 드립니다. @Repository public interface UserRepository extends JpaRepository<User, Long>, CustomRepository { Optional<User> findByUserId(String userId); } public interface CustomRepository { void search(); } 에러 메시지 ========================================================= Caused by: org.springframework.data.mapping.PropertyReferenceException: No property 'search' found for type 'User' at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:90) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:443) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:419) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.mapping.PropertyPath.lambda$from$0(PropertyPath.java:372) ~[spring-data-commons-3.2.2.jar:3.2.2] at java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330) ~[na:na] at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:354) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:332) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.repository.query.parser.Part.<init>(Part.java:81) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.repository.query.parser.PartTree$OrPart.lambda$new$0(PartTree.java:259) ~[spring-data-commons-3.2.2.jar:3.2.2] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na] at org.springframework.data.repository.query.parser.PartTree$OrPart.<init>(PartTree.java:260) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.repository.query.parser.PartTree$Predicate.lambda$new$0(PartTree.java:389) ~[spring-data-commons-3.2.2.jar:3.2.2] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na] at org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:390) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:100) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:100) ~[spring-data-jpa-3.2.2.jar:3.2.2] ... 79 common frames omitted
#spring-boot
#java
답변 1
댓글 0
조회 34
하루 전 · 장성호 님의 답변 업데이트
Jpa 커스텀 리포지토리 다중 상속 문제
커스텀 리포지토리 사용중 문제가 발생하여 질문 드립니다. @Repository public interface UserRepository extends JpaRepository<User, Long>, CustomRepository { Optional<User> findByUserId(String userId); } public interface CustomRepository { Long search(User user); } public class ACustomRepositoryImpl implements CustomRepository { @Override public Long search(User user) { return 1L; } } 이런식으로 코드를 작성하고 실행 시키면 아래와 같은 에러 메시지가 나옵니다. 그런데 ACustomRepositoryImpl 구현체 이름을 CustomRepositoryImpl 이렇게 바꾸면 정상적으로 실행됩니다. 명명규칙이 그저 개발자들 간의 약속 인줄 알았는데 규칙을 무조건 지켜야 하는 건지 궁금하여 질문 드렸습니다. Caused by: org.springframework.data.mapping.PropertyReferenceException: No property 'search' found for type 'User' at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:90) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:443) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:419) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.mapping.PropertyPath.lambda$from$0(PropertyPath.java:372) ~[spring-data-commons-3.2.2.jar:3.2.2] at java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330) ~[na:na] at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:354) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:332) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.repository.query.parser.Part.<init>(Part.java:81) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.repository.query.parser.PartTree$OrPart.lambda$new$0(PartTree.java:259) ~[spring-data-commons-3.2.2.jar:3.2.2] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na] at org.springframework.data.repository.query.parser.PartTree$OrPart.<init>(PartTree.java:260) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.repository.query.parser.PartTree$Predicate.lambda$new$0(PartTree.java:389) ~[spring-data-commons-3.2.2.jar:3.2.2] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na] at org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:390) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:100) ~[spring-data-commons-3.2.2.jar:3.2.2] at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:100) ~[spring-data-jpa-3.2.2.jar:3.2.2] ... 79 common frames omitted
#spring-boot
#java
#interface
#jpa
답변 1
댓글 0
조회 21
하루 전 · 방가온 님의 질문
next rewrites 작동 방식이 궁금합니다
next에 있는 rewrites 라는 기능을 사용하면 프록시 역할을 하여 cors 에러가 해결 됩니다 그 이유가 next 서버에서 요청을 보내서 서버끼리 요청을 보내는거는 cors 에러가 생기지 않는 원리 인건가요? 다른 이유라면 알려주시면 감사하겠습니다
#next.js
#next.config.js
#react
답변 0
댓글 0
추천해요 2
조회 12
2일 전 · 익명 님의 새로운 댓글
react에서 에러 status에 따라 에러 모달을 가져오는 법
안녕하세요. 지금 api를 호출 후에 api에서 에러가 났을 때, 해당 에러의 status를 저장하여 해당 status에 맞는 에러 모달을 띄워주려고 하고 있습니다. ``` catch (error: unknown) { if (error instanceof AxiosError) { handleErrorModal(error.response?.status); } return null; } ``` 이렇게 fetchData에서 에러가 발생했을 때, handleErrorModal로 에러 status를 전달하고 있습니다. ``` const [errorType, setErrorType] = useRecoilState(errorDataState); const handleErrorModal = (errorStatus: string | number | null) => { setErrorType(errorStatus); }; ``` 그리고 handleErrorModal 함수는 이와 같이 작성을 해놓은 상태이고요. 근데, setState가 비동기로 작동해서인지 errorStatus가 저장이 되지 않아서 계속 초기값인 null을 띄워줍니다. 그리고, 계속 ``` Warning: Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously later calls tries to update the component. Move this work to useEffect instead. ``` 이 오류를 띄우네요. 이 문제를 해결하기 위해서는 useEffect를 쓰는 방법외에는 다른 방법이 없는걸까요?
#react
#react-query
답변 1
댓글 1
조회 37
2일 전 · aigoia 님의 답변 업데이트
서버리스 쓰기전에 쓰이던 아키텍처는 뭔가요
2024년도 기준으로 현재 서버리스 아키텍처 활용이 높아지고 있는 추세라고 알고 있습니다 그렇다면, 서버리스를 쓰기 바로 이전에 쓰이던 아키텍처는 어떤건지 왜 이전에 쓰이던 아키텍처 보다 서버리스가 활용도가 높아지고 있는지 (차이점?) 알고 싶습니다!
#서버리스
#아키텍처
#질문
답변 2
댓글 0
조회 53
2일 전 · 익명 님의 새로운 댓글
프로젝트 첫 도전하게 되었습니다
안녕하세요 ! 이번에 과제를 하게되어 4달안에 프로젝트를 완성해야하는 상황인데 저희 팀이 거의 노베이스라서요… 공부하면서 만들어보기로 했는데 안드로이드 스튜디오나 리액트 중 고민 중이에요 ! 근데 두 개 다 배운 적이 없어서 뭐가 나을지 감이 안오네요.. 혹시 어떤 걸 더 추천하시나요…?? 빠르게 공부하며 개발하려면 어느게 더 나을까요 🥺
#안드로이드
#react
답변 1
댓글 1
조회 73
2일 전 · 김하늘 님의 답변 업데이트
장기 프로젝트 협업 툴 추천부탁드립니다
안녕하세요! 현재 대학생이고 동기들끼리 공모전을 준비하면서 기획부터 개발까지 8개월 정도 진행되는 프로젝트 시작을 앞두고 있는데요. 1-2개월 단기 프로젝트만 진행하다가 이정도 기간의 프로젝트를 진행하는건 처음이라 프로젝트 관리 도구부터 고민이 되더라구요. 평소엔 노션, 디스코드, 카카오톡을 사용했는데 이번엔 좀 더 체계적으로 프로젝트를 관리할 수 있는 협업 툴을 사용해보고 싶어서요. 현업에서 많이 사용하는 혹은 취업 전 사용해보면 좋겠다고 생각하시는 협업 툴이 있다면 추천 부탁드립니다!
#협업
답변 2
댓글 0
추천해요 1
조회 137