한 달 전 · Sin88ho 님의 질문
SIN88🥇️SIN88.COM | LINK VÀO NHÀ CÁI SIN88 04/2025
SIN88 là nhà cái uy tín hàng đầu trong lĩnh vực cá cược trực tuyến tại Việt Nam. Với giấy phép hoạt động hợp pháp, SIN88 mang đến môi trường giải trí an toàn, minh bạch. Người chơi có thể tham gia cá độ thể thao, casino online, game slot và nhiều sản phẩm hấp dẫn khác. Giao diện thân thiện, hỗ trợ 24/7 và khuyến mãi lớn là điểm mạnh giúp SIN88 giữ vững vị thế trong thị trường cá cược. Địa Chỉ: 187 Ng. 141 Giáp Nhị, Giáp Nhị, Hoàng Mai, Hà Nội, Việt Nam Phone: 0983 721 968 Email: sin88ho.com@gmail.com #sin88 #sin88hocom #trangchusin88 #dangnhapsin88 #linkvaosin88 Website: https://sin88ho.com/ Social: https://mxoemu.info/forum/member.php?action=profile&uid=20817 https://sin88hocom.yurls.net/en/page/1196371 https://linkfly.to/sin88hocom https://the7thcontinent.seriouspoulp.com/en/user/21740/sin88hocom https://leasedadspace.com/members/sin88hocom/ https://www.nu6i-bg-net.com/user/sin88hocom/ http://linoit.com/users/sin88hocom/canvases/SIN88 https://www.theyeshivaworld.com/coffeeroom/users/sin88hocom https://tawk.to/sin88hocom
디자이너
#sin88
답변 0
댓글 0
조회 11
2달 전 · Tiradadecartasgratis 님의 질문 업데이트
Tiradadecartasgratis
Discover the best love stories across genres – curated and reviewed for you. Address: 27 Mai Thi Luu, Ward Da Kao, District 1, HCMC Phone: 0903978979 Email: contact@tiradadecartasgratis.biz Website: https://tiradadecartasgratis.biz/ Social https://www.facebook.com/tdcgratis/ https://www.youtube.com/@tdcgratis https://x.com/tdcgratis https://www.pinterest.com/tdcgratis/ https://www.linkedin.com/in/tdcgratis/ https://tdcgratis.tumblr.com/ https://vimeo.com/tdcgratis https://www.reddit.com/user/tdcgratis/ https://soundcloud.com/tdcgratis https://band.us/@tdcgratis https://500px.com/p/tdcgratis?view=photos https://cfgfactory.com/user/311721 https://www.motiondesignawards.com/profile/5110 https://contest.embarcados.com.br/membro/truy%e1%bb%87n-tiradadecartasgratis/ https://smf.rcweb.net/index.php?action=profile;u=78728 https://careerly.co.kr/qnas/10213
개발자
#tdcgratis
답변 0
댓글 0
조회 66
일 년 전 · 문채이 님의 질문
미국 시애틀 기업 탐방 도움 요청드립니다.
안녕하세요, 현직 개발자 여러분! 저는 성신여자대학교에 재학 중인 컴퓨터공학과 3학년 문채이라고 합니다. 저는 성신여자대학교에서 하계 시즌에 운영하는 글로벌 기업탐방 프로그램을 준비하는 팀의 팀장입니다. 저희 팀은 총 6명으로 구성되었으며 탐방주제는 it이고 탐방지역은 미국 시애틀, 탐방기간은 6/22 토요일에서 7/3 수요일 사이로 생각하고 있습니다. 글로벌 기업탐방 프로그램은 학생들 스스로 팀을 구성하고 탐방을 계획하여 학교에서 제공되는 장학금을 받은 후 8~12일간 해외의 다양한 기관과 기업을 방문하고, 현장 관계자 인터뷰, 특강, 세미나 등의 일정을 경험하는 프로그램입니다. 학생들이 폭넓은 진로를 설정하고 취업 동기부여를 가지게 하고자 마련된 프로그램으로, 저희가 직접 기업, 정부기관(공공기관), 연구소 등을 5곳 이상 컨택해야합니다. 저희는 몇 달 간 컨택을 위한 여러 기업을 찾아 연락을 취해왔으나, 아직 채워야 하는 컨택 수는 미달이며 컨택을 마치고 사업계획서를 제출해야하는 일자(5/6)는 코앞까지 다가온 상황입니다. 교수님들께도 도움을 요청하였으나 미국 쪽에 연이 닿아있으신 분들이 많지 않고, 있더라 하더라도 컨택이 어렵다는 답변들을 받았습니다. 근래에는 새벽마다 6시간씩 비대면 회의를 하며 컨택을 진행하고 있으나 그럼에도 불구하고 아직 성사된 수가 현저히 적습니다. 때문에 이에 많은 어려움을 겪고 있어 고민 끝에 이렇게 커리어리 Q&A에 글을 남기게 되었습니다. 혹시 미국 시애틀이나 그 근교 지역의 기업이나 기관(사기업, 공기업, 정부기관, 연구소 등) 방문 및 인터뷰 연결에 도움을 주신다면 정말로 큰 도움이 될 것 같습니다. 또한 저희가 구글로 세미나, 컨퍼런스 등을 찾아보고는 있으나 영어로 서치하는 능력이 부족해 워싱턴 D.C.에서 개최되는 aws summit 외에는 참여 가능한 마땅한 행사를 찾지 못했습니다. 따라서 이에 관련된 정보를 알고 계시다면 저희에게 공유해주시면 정말 감사할 것 같습니다. 저희 팀은 기업 내부 탐방 및 인터뷰 진행을 주 목적으로 하고 있습니다. 인터뷰는 10분 남짓의 짧은 시간만 내주시면 되고, 기업 탐방이 어렵다면 외부에서 인터뷰만 진행해도 괜찮습니다. 글로벌 기업탐방 프로그램은 it와 저희의 진로에 대해 깊게 탐구하고 또 새롭게 개척해나가는 기회가 될 것이며, SNS를 통해 계정을 별도로 개설해 관련 정보를 공유할 예정이므로 이와 관련된 정보와 진로 및 취업에 관심이 있는 한국의 대학생들에게 큰 도움이 될 것입니다. 개발과 관련된 질문을 공유하는 커뮤니티에 주제에 부합하지 않는 글을 올리게 되어 무척 송구스럽습니다. 하지만 현직자 여러분께서 도움을 주신다면 그 이상으로 더 큰 배움을 얻어올 수 있도록 최선을 다하겠습니다. 긴 글 읽어주셔서 감사드립니다. 국가 - 미국 지역 - 1순위 시애틀, 2순위 시애틀 근교 일시 - 6월 22일 ~ 7월 3일 주제 - ITㆍ개발 email - 20221156@sungshin.ac.kr 문채이 드림.
개발자
#대외활동
#글로벌
#해외
#대학생
답변 0
댓글 0
추천해요 2
조회 210
일 년 전 · 익명 님의 질문 업데이트
프론트에서 메일 전송 기능 구현
안녕하세요 리액트에서 메일 전송 기능을 구현하려고하는데 입력폼에서 보내는 사용자의 이메일과 받는 사용자의 이메일을 입력받아서 메일을 전송하고싶은데 nodemailer를 사용하면 해당 이메일 주소로 인증된 사용자만 메일을 보낼 수 있고, emailJS는 특정 메일에만 전송이 가능한데 혹시 동적으로 구현할수 있는 라이브러리나 방법이 있을까요ㅠㅠ
개발자
#typescript
#react
#next.js
답변 0
댓글 0
보충이 필요해요 1
조회 214
일 년 전 · 삭제된 사용자 님의 답변 업데이트
소셜로그인을 지원할때 소셜로그인과 로컬로그인 계정이 같은 경우 어떻게 해야하나요
제가 만든 db는 email이 unique라서 공통된 email은 들어올 수 없습니다 그렇다면 소셜로그인으로 사용자가 로그인할때 이미 해당 email이 들어있다면 사용자에게 통합할꺼냐고 물어봐야하나요? 만약 a라는 사람이 b와 같은 이메일을 가지고 있는데 a는 구글로그인으로 가입한사람 b는 로컬로 가입한 사람이라면 어떻게 해야하는 걸까요? Email을 unique로 가져가는건 틀린 선택인건가요? 고수님들은 어떻게하는지 궁금합니다
개발자
#backend
#database
#frontend
답변 1
댓글 1
조회 359
일 년 전 · 초코칩 님의 새로운 답변
for문을 이용한 중복체크 방법
public MemberDTO doRegist() { sc.nextLine(); System.out.println("*****************************************************"); System.out.print("아이디를 입력하세요 : "); String id = sc.nextLine(); System.out.print("비밀번호를 입력하세요 : "); String pwd = sc.nextLine(); System.out.print("이름을 입력하세요 : "); String name = sc.nextLine(); System.out.print("나이를 입력하세요 : "); int age = sc.nextInt(); System.out.print("성별을 입력하세요 : "); char gender = sc.next().charAt(0); sc.nextLine(); System.out.print("핸드폰 번호를 입력하세요 : "); String phone = sc.nextLine(); System.out.print("이메일을 입력하세요 : "); String email = sc.nextLine(); System.out.println("*****************************************************"); MemberDTO user = null; if(answer == 'Y') { user = new MemberDTO(id, pwd, name, age, gender, phone, email); }else { System.out.println("로그인 페이지로 돌아갑니다."); mainLogin(); } return user; } 여기에 for 문으로 아이디 중복체크를 넣고 싶은데 어떻게 넣어야 할까요...ㅠㅠ...
개발자
#intellij-java
답변 1
댓글 0
보충이 필요해요 1
조회 164
일 년 전 · 이승훈 님의 새로운 댓글
리액트 useState 와 함수 관리 어떻게 하는게 좋나요?
안녕하세요. 스타트업에서 일하고 있는 신입 프론트엔드 개발자 입니다. 현재 쓰고 방식은 // 이메일 동의 통신 const [emailAgreed, setEmailAgreed] = useState(); const handleEmailAgreementClick = () => { 생략 } // 새로운거 const [새로운거, set새로운거] = useState(); const 새로운거함수 = () => { 생략 } 이렇게 리액트에서 작성을 하고 있습니다. const [등등, set등등] = useState(); 전부다 위로 올려서 적는게 좋은건가요? 아니면 제가 하는 방식 해도 사용해도 문제가 없을까요?
개발자
#react
#신입개발자
#프론트엔드
답변 1
댓글 1
조회 104
2년 전 · 장성호 님의 답변 업데이트
제 3정규화 관련 질문있습니다.
만약 member 테이블에 email (unique) nickname (unique) introduction 이렇게 3개의 컬럼이 있을 경우 email -> nickname, nickname -> introduction, email -> introduction 이므로 3정규화를 진행하게 되면 member(테이블) email nickname member_introduction(테이블) nickname introduction 이렇게 둘로 나뉘는게 맞나요? 결국 한 테이블에 unique 제약조건이 있는 컬럼이 2개 이상일 경우 3정규화를 필수로 진행해야 한다는 얘기 같은데 제가 제대로 이해한건지 궁금합니다.
개발자
#정규화
#database
답변 1
댓글 1
조회 57
2년 전 · 양현빈 님의 질문
파이어베이스 이메일 인증 만료 메시지가 계속 뜨는데 같은 문제 겪으신 분 계신가요?
안녕하세요! 저는 현재 파이어베이스, 플러터 이용해서 웹앱을 개발 중입니다. 파이어베이스 auth 사용해서 회원가입과 로그인을 처리하고 있어요! 회원가입 시 userCredential.user!.sendEmailVerification() 메서드를 호출해 사용자의 메일 주소로 이메일 인증 메일을 보냅니다. 가끔 메일이 안 보내지는 일은 있었지만, 지금까지 잘 사용하고 있었는데, 갑자기 메일로 온 링크를 클릭했을 때 만료 메시지만 뜨기 시작했어요. 메시지 전문은 아래와 같아요. “이메일 인증 재시도 이메일 인증 요청이 만료되었거나 링크가 이미 사용되었습니다.” 추가로 확인해보니, 비밀번호 재설정 메일도 링크 클릭하니 만료되었다는 메시지가 뜨네요ㅠㅠ 2주 전에 파이어스토어 규칙 부분을 변경한 게 있는데, 그게 원인인가 싶어 모두 true로 설정 후 테스트해봐도 계속 문제가 발생합니다. 파이어베이스에서 보내주는 이메일 링크 클릭 시 뜨는 만료 메시지 해결 경험 있으시면 어떻게 해결하셨는지 공유해주시면 정말정말 감사하겠습니다..!!
개발자
#파이어베이스
#플러터
#이메일인증
#인증만료
#비밀번호재설정
답변 0
댓글 0
조회 99
2년 전 · 류호준 님의 답변 업데이트
카페24 웹호스팅 중 cors에러 관련 질문입니다.
정부 지원사업으로 3개월짜리 인턴십 진행중인 신입개발자 입니다. 현재 회사에는 시니어 개발자나 선임 개발자가 없어서 정말 초짜 백엔드 1명, 프론트 1명이서 프로젝트르 진행중입니다. node.js - react로 구현한 웹페이지를 카페24 웹호스팅을 통해 배포중입니다. (호스팅 : node.js 호스팅 일반형 / 도메인: htcoummunity.cafe24app.com) 배포된 웹페이지를 테스트 도중 cors에러를 만났습니다. 상황= 로그인 버튼을 누르면 로그인 정보를 체크하는 API가 cors에러로 인해 응답을 받아오지 못하고 있습니다.(모든 api가 안됩니다.) 에러메세지= Access to fetch at 'http://localhost:8001/api/signup/checkuser' from origin 'http://htcoummunity.cafe24app.com' has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space `local`. POST http://localhost:8001/api/signup/loginEmail net::ERR_FAILED 자체적인 분석으로는 'http://htcoummunity.cafe24app.com' 가 public IP이기 때문에 로컬호스트로 요청하는 api는 리소스의 Private 수준이 더 높기때문에 cors정책에 의해 막힌 것이라고 해석했습니다. 하지만 적절한 해결책은 찾지 못하고 있습니다. Proxy설정까지는 시도해봤지만 문제가 해결되지는 않았습니다. 인턴십이 이제 3일정도 남아서 배포만이라도 깔끔하게 마무리하고 싶은데 해결이 되지 않고 있습니다. 부디 해결책을 제시해주시면 감사하겠습니다!
개발자
#react
#node.js
#cors
#카페24
답변 1
댓글 0
조회 724
2년 전 · 최건 님의 질문
firebase authentication
html에서 아래 같이 data를 전송했을 때 백엔드에서 const {createUserWithEmailAndPassword,signInWithEmailAndPassword,signOut,browserSessionPersistence, setPersistence}= require("firebase/auth"); const db = require("../config/firestore"); const {email,password} = req.body; console.log(email,password) await signInWithEmailAndPassword(auth,email,password) res.redirect("/api/home") 로 받으면 첫 번째 로그인시 Cannot POST /auth/login가 뜨면서 로그인이 안되고 뒤로 갔다가 다시 로그인을 하면 로그인이 완료되는 오류가 발생합니다... firestore은 form 데이터를 받아 저장하는 것에 오류가 발생하지 않는데 왜 authentication에서는 이러 오류가 발생하는지 궁금합니다 ㅠㅠ 해결 방안도 궁금합니다 ! ㅠㅠ
개발자
#firebase
#firebase-authentication
답변 0
댓글 0
조회 60
2년 전 · 익명 님의 질문 업데이트
nest.js 빌드시에 static파일을 dist에 포함시키는법... ㅜㅜ
안녕하세요 ! nest.js를 통해서 nodemailer와 handlebars를 이용해서 이메일 템플릿으로 메일 발송을 작업하고있습니다 ! yarn start:dev 로 실행하면 dist에는 작성한 템플릿파일이 생성되지않아 메일이 발송을 할 수 없는 상황입니다... (직접 파일을 dist폴더에 복붙하면 발송가능..) static파일의 경우 어떻게하면 build혹은 start시에 dist폴더에 포함시킬수있는지 답변주시면 감사하겠습니다 !!!! 현재 static파일의 경로는 /src/config/email-templates 에 위치하고있습니다 ! (똑같이 /dist/config/email-templates 에 위치시키고싶음....) 또한 package.json에 복사 스크립트를 넣어서 nest build && npm run copy 혹은 nest start && npm run copy 이런식으로 실행해도 yarn build때만 실행되고 start에서는 복사가 되지않습니다 ㅜㅜ
개발자
#nest.js
답변 0
댓글 0
조회 281
2년 전 · 익명 님의 답변 업데이트
queryString에 관하여
http://test.com?auth=true&data={"endPoint":"/auth","data":"{"email":"test@test.com","name":"홍길동"}"} const query = queryString.parse(window.location.search); query 사용해서 data안에 객체로 되어있는 정보들 중 data안에 email 정보(test@test.com)을 뽑아오려면 어떻게해야하나요? const query = queryString.parse(window.location.search); console.log('query.data',query.data) //query.data까지는 뽑히는데 console.log('query.data.data', query.data.data) //undefined 그래서 const parsedData = JSON.parse(query?.data); //JSON형식 const email = parsedData.data.email; //test@test.com 정보가 뽑혔어요! 하지만 query?.data에서 에러가 납니다. **error 메세지 No overload matches this call. Overload 1 of 2, '(text: string, reviver?: ((this: any, key: string, value: any) => any) | undefined): unknown', gave the following error. Argument of type 'string | (string | null)[] | null' is not assignable to parameter of type 'string'. Type 'null' is not assignable to type 'string'. Overload 2 of 2, '(text: string, reviver?: ((this: any, key: string, value: any) => any) | undefined): any', gave the following error. Argument of type 'string | (string | null)[] | null' is not assignable to parameter of type 'string'. Type 'null' is not assignable to type 'string'. query?.data에서 위와 같은 에러가 납니다.. query?.data의 type은 JSON형식 아니고 string입니다. console.log(query?.data) // {"endpoint":"/auth","data":{"email":"test@test.com","name":"홍길동"}} string에서 email을 뽑아야할까요?.. JSON형식으로 가져올순 없을까요? 에러 원인 및 피드백 부탁드립니다.
개발자
#react
#json
#querystring
#parse
#stringify?
답변 2
댓글 0
조회 88
2년 전 · 수민 님의 새로운 댓글
NestJs에서 SRP
안녕하세요 Nest.js를 공부 중인 학생입니다. 이번에 공부한 내용들을 가지고 사이드 프로젝트를 하던 중 SRP와 관련한 의문이 생겨 질문남깁니다 ㅠㅠ nestjs를 공부할 때 컨트롤러는 유저와 서비스를 이어주는 역할이고 서비스는 비즈니스 로직을 담당하는 것이라고 배웠습니다. 그리고 컨트롤러는 너무 커지지 않도록 하는 것이 좋다고 들었습니다. 이를 고려해서 코드를 짜다보니 한 서비스 내에 너무 많은 로직이 몰리는 듯한 느낌이 들었습니다. 여러 모듈로 분리하고 필요한 서비스를 하나의 서비스 내에 몰아서 사용하다보니 의존성이 커지고 재사용성이 없다고 느껴졌습니다.. 그래서 SRP를 고려하여 코드를 짜려다 보니 하나의 서비스는 하나의 기능만을 담당해야 하고, 그렇게 구현한 서비스들을 컨트롤러에 주입하여 사용하는 것이 맞다고 하더군요.. 그렇게 코드를 짜다보니 이번엔 컨트롤러가 너무 비대해지고, 정작 비즈니스 로직을 담당한다던 서비스 쪽은 너무 작아져서 재사용하기도 애매하고 오히려 불필요하다고 느껴질 정도입니다. 사진 속 코드가 바로 그 예시입니다. 이메일 인증이 필요한 회원가입 기능을 구현하는 코드이고 플로우는 다음과 같습니다. 입력받은 이메일, 이름, 전화번호에 해당하는 유저가 존재하는지 확인 -> 없다면 해당 유저 정보를 DB에 저장 -> 이메일 인증에 사용할 token 생성 후 DB에 저장 -> 이 token을 입력받은 이메일로 발송 위 기능 구현을 위해 auth serrvice, users service, email service로 분리하였습니다. 하지만 보시다시피 컨트롤러에 오히려 로직이 몰려있는 느낌이고, 정작 auth service 내의 register 함수는 전달받은 token과 userId를 바탕으로 DB에 저장하는 로직만을 담당하게 됩니다.. 이렇게 짜는게 정말 맞는지 아니라면 피드백 부탁드립니다 ㅠㅠ
개발자
#백엔드
#nest.js
답변 2
댓글 4
추천해요 7
조회 662
2년 전 · 커리어리 AI 봇 님의 새로운 답변
개발자 선생님들 도와주세요..
안녕하세요 초보개발자입니다 지금 구글로 코드 복붙하며 게시판 수정중인데 아예 똑같이 복붙 하였는데 저는 왜 이런 식으로 나올까요 도와주세요 .. ㅠㅠ 프로젝트 발표가 코앞인데.. 1번째사진은 작성자의 사진이고 2번째 사진이 제 출력 화면입니다... 코드는 댓글에 적어두겠습니다..도와주세요.. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!--부트스트랩은 어떤device로 접속하더라도 해상도에 맞게 알아서 설정되는 탬플릿이다. --> <meta name="viewport" content="width=device-width" , inital-scale="1"> <!--스타일시트를 참조, 주소는 css안에 부트스트랩.css--> <link rel="stylesheet" href="css/bootstrap.css"> <title>JSP 게시판 웹 사이트</title> </head> <body> <!-- 네비게이션 구현 네비게이션이라는 것은 하나의 웹사이트의 전반적인 구성을 보여주는 역할 --> <nav class="navbar navbar-default"> <!-- header부분을 먼저 구현해 주는데 홈페이지의 로고같은것을 담는 영역이라고 할 수 있다. --> <div class="navbar-header"> <!-- <1>웹사이트 외형 상의 제일 좌측 버튼을 생성해준다. data-target= 타겟명을 지정해주고--> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-exmaple="false"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <!-- 여긴 웹페이지의 로고 글자를 지정해준다. 클릭 시 main.jsp로 이동하게 해주는게 국룰 --> <a class="navbar-brand" href="main.jsp">JSP 게시판 웹 사이트</a> </div> <!-- 여기서 <1>에만든 버튼 내부의 데이터 타겟과 div id가 일치해야한다. --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <!-- div 내부에 ul은 하나의 어떠한 리스트를 보여줄때 사용 --> <ul class="nav navbar-nav"> <!-- 리스트 내부에 li로 원소를 구현 메인으로 이동하게만들고--> <li><a href="main.jsp">메인</a></li> <!-- 게시판으로 이동하게 만든다. --> <li><a href="bbs.jsp">게시판</a></li> </ul> <!-- 리스트 하나 더 생성 웹페이지 화면에서 우측 부분--> <ul class="nav navbar-nav navbar-right"> <!-- 원소를 하나 구현해 준다. 네비게이션 우측 슬라이드메뉴 구현 --> <li class="dropdown"> <!-- 안에 a태그를 하나 삽입한다. href="#"은 링크없음을 표시한다. --> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">접속하기<span class="caret"></span></a> <!--접속하기 아래에 드랍다운메뉴 생성 --> <ul class="dropdown-menu"> <!-- li class="active" 현재 선택된 홈페이지를 의미 --> <li><a href="login.jsp">로그인</a></li> <li class="active"><a href="join.jsp">회원가입</a></li> </ul> </li> </ul> </div> <!-- 네비게이션 바 구성 끝 --> </nav> <!-- 하나의 컨테이너처럼 감싸주는 역할 --> <div class="container"> <div class="col-lg-4"></div> <!-- 회원가입 폼은 위의 양식은 일치하며, 이제 내부 폼만 바꿔준다. --> <div class="col-lg-4"> <div class="jumbotron" style="padding-top: 20px;"> <!-- 양식 삽입 post는 회원가입이나 로그인같이 어떠한 정보값을 숨기면서 보내는 메소드/ 로그인 Action페이지로 정보를보내겠다--> <form method="post" action="joinAction.jsp"> <!-- 회원 가입에 맞게 위에 액션은 joinAction페이지로 밑에 제목은 회원가입 화면으로 변경 --> <h3 style="text-align: center;">회원가입 화면</h3> <div class="form-group"> <!-- 회원 가입에서도 userID or userPassword는 동일하게 가져가고, 회원가입에 필요한 나머지 속성추가 --> <input type="text" class="form-control" placeholder="아이디" name="userID" maxlength="20"> </div> <div class="form-group"> <input type="password" class="form-control" placeholder="비밀번호" name="userPassword" maxlength="20"> </div> <!-- userName 추가 --> <div class="form-group"> <input type="text" class="form-control" placeholder="이름" name="userName" maxlength="20"> </div> <!-- 성별 선택 추가 --> <div class="form-group" style="text-align: center;"> <!-- 버튼 공간을 따로 마련해준다.(남,녀) --> <div class="btn-group" data-toggle="buttons"> <!-- 선택이 된곳에 표시를 하는 active를 설정해준다. --> <label class="btn btn-primary active"> <input type="radio" name="userGender" autocomplete="off" value="남자" checked>남자 </label> <label class="btn btn-primary"> <input type="radio" name="userGender" autocomplete="off" value="여자" checked>여자 </label> </div> <!-- 성별 선택부분 완료 --> </div> <!-- email 작성부분 구현 --> <div class="form-group"> <!-- placeholder는 아무런 입력이 없을때 띄워주는 값 --> <input type="email" class="form-control" placeholder="이메일" name="userEmail" maxlength="20"> </div> <!-- 버튼 또한 회원가입으로 value변경 --> <input type="submit" class="btn btn-primary form-control" value="회원가입"> </form> </div> </div> <div class="col-lg-4"></div> </div> <!-- 애니메이션을 담당하게 될 자바스크립트 참조 --> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <!-- 특정홈페이지에서 제이쿼리 호출 --> <script src="js/bootstrap.js"></script> </body> </html>
개발자
#jsp
#java
답변 2
댓글 4
보충이 필요해요 3
조회 388
2년 전 · 커리어리 AI 봇 님의 새로운 답변
[mysql] 추가 정보를 저장하는 테이블에서도 고유한 id가 필요하나요?
<user table> id <- primary key email password <user_info table> id <- primary key user_id <- unique key name age address ... 이런 구조의 테이블을 작성하는데, user_info 테이블의 user_id값은 user 테이블의 id값을 참조합니다. 제 생각에는 user의 id값 자체가 고유한 값이기 때문에 user_info 테이블에서는 id값이 필요하지 않을 것 같다는 생각이 드는데, 보통 어떤 방법이 많이 사용되나요?
개발자
#mysql
#database
#rdb
답변 2
댓글 0
조회 221
2년 전 · 커리어리 AI 봇 님의 새로운 답변
spring security 권한 처리
데이터베이스에 user테이블과 role테이블 그리고 user_role테이블을 만들어 user_id와 role_id를 만들어 다대다 매핑을 하였습니다. 기존에는 configureGlobal방식으로 .authoritiesByUsernameQuery(“select u.email, r.name from user_role ur inner join user u on ur.user_id = u.id inner join role r on ur.role_id = r.id where u.email = ?") 이런 방식으로 했는데 userDetailsService 인터페이스를 이용하여 로그인 처리를 하는 방식에서 유저의 권한을 어떻게 처리해야할지 모르겠습니다ㅠㅠㅠ 아직 시큐리티에 대해 잘 몰라 자세히 알려주시면 정말 감사하겠습니다 ㅠㅠ
개발자
#spring
#springboot
#spring-security
#권한처리
#userdetailsservice
답변 1
댓글 0
추천해요 1
조회 372
2년 전 · 손정현 님의 답변 업데이트
react axios 로 api호출시 recoil value 전달 실패
회원가입 마지막 단계 페이지인 관심태그 페이지입니다. 이미 nickName, email, phoneNum, pwd, subGroup, workYear는 recoil의 userState에 저장된 상태입니다. 다음 코드를 실행하면 api 호출에는 성공하는데, isSuccess가 false가 되면서 '이메일을 입력해주세요'라는 message가 뜨고 회원가입 실패 alert 창이 뜹니다. 아무래도 recoil value의 전달에 실패한 것 같은데 왜 그럴까요? 참고로 api 주소는 가짜로 적었습니다. function InterestTag() { const [user, setUser] = useRecoilState(userState); const [interestIdx, setInterestIdx] = useRecoilState(userState); const [buttonColor, setButtonColor] = useState("f1f4f7"); const nickName = useRecoilValue(userState).nickName; const email = useRecoilValue(userState).email; const phoneNum = useRecoilValue(userState).phoneNum; const pwd = useRecoilValue(userState).pwd; const subGroup = useRecoilValue(userState).subGroup; const workYear = useRecoilValue(userState).workYear; const handleTagClick = (interestIdx) => { setInterestIdx(interestIdx); setUser({ ...user, interestIdx: interestIdx, isLogin: true, }); setButtonColor("#36f"); }; console.log(interestIdx); const navigate = useNavigate(); const handleSubmit = () => { axios .post("https://abcd.shop/users", { data: { nickName: nickName, email: email, phoneNum: phoneNum, pwd: pwd, subGroup: subGroup, workYear: workYear, interestIdx: interestIdx, }, }) .then((response) => { console.log(response.data); if (response.data.isSuccess === true) { alert("회원가입 성공"); navigate("/"); } else { alert("회원가입 실패"); } }); };
개발자
#react
#axios
#recoil
답변 1
댓글 0
조회 354
2년 전 · 커리어리 AI 봇 님의 새로운 답변
스프링 시큐리티 접근제어 문제 질문
스프링 시큐리티에 AbstractAuthenticationToken authentication = new UsernamePasswordAuthenticationToken( "email", null, AuthorityUtils.createAuthorityList("admin") ); 이런식으로 값을 넣어주고 컨트롤러에서 SecurityContextHolder.getContext().getAuthentication() 로 값을 뽑았을 때 [Principal="email", Credentials[PROTECTED], Authenticated=true, Granted Authorities=[admin]] 이렇게 값이 잘 옵니다. 문제는 시큐리티 콘피그에서 http.authorizeRequests() .mvcMatchers("/offers/**").hasAuthority("admin") 으로 설정해놓았는데 offers에 접근하면 403 forbidden에러가 뜹니다.... hasRole로 바꾸어도 마찬가지고요. 왜 해당 에러가 발생하는지 궁금합니다. csrf().disable()도 하였습니다. SecurityContextHolder.getContext().getAuthentication()에 있는 값으로 SecurityConfig에 있는 권한을 설정하는 것이 아닌가요? 검색하며 시도를 해보았지만 해결되지 않아 질문합니다.
개발자
#백엔드
답변 1
댓글 0
추천해요 1
조회 288
3년 전 · 손정현 님의 답변 업데이트
SQL 테이블 구성 도움 부탁드려요
안녕하세요, SQL 테이블을 구상하려고하는데, 어떤 방식이 더 좋을지 몰라서 질문합니다. 요구사항은 사용자의 부가 정보를 저장하면 되구요. 부가 정보는 이메일, 주소, 전화번호 등등이 있습니다. 1번 방법 (사진 참고): contactType과 content로 다양한 정보 유형을 받는다 2번 방법 (사진 참고): email, phone, address 등 고정된 값을 받는다 1번과 2번 중 어떤 방식이 더 좋을지 잘 모르겠어요. 1번 방법이 더 많은 정보의 유형을 저장할 수 있지만 조회 할때 좀 더 복잡할 것 같고 2번 방법은 저장하려는 정보 유형이 추가될 때마다 칼럼을 추가해줘야하지만 조회 할때 좀 덜 복잡한 것 같습니다. 혹시 이런 유형의 테이블을 설계할때 팁 같은게 있을까요?
개발자
#백엔드
#sql
답변 1
댓글 1
추천해요 4
조회 321