묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]
안녕하세요 혹시 24절기 데이터가 한국천국문화연구원 정보와 같지 않은가요?
제가 강의를 산 이유가 24절기 db데이터가 필요해서인데 db넣어보고 데이터보니까 24절기 데이터가 한국천문연구원에서 가져온 사이트하고 다르더라구요 그러면 대운 시작나이가 잘못뽑힐것같은데 잘뽑히시던가요??..https://uncle.tools/manse/solar-terms/1992
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
aws - lightsail 이용 관련
강사님 현재 aws - Lightsail은 7월15일 이후 계정 생성시 유료로 전환이 되었다고 하는데 이럴 경우에는 강의 내용과 완전히 바뀌는 것 같습니다. 이럴 때는 어떤 걸 사용해야 할까요?
-
해결됨따라하며 배우는 NestJS
회원가입 기능 구현 버전 변경에 따른 코드수정(해당 사항은 업데이트 예정이 없나요?)
Custom Repository 부분에서 에러가 나서 해결 하긴 하였으나 맞는 과정인지는 잘 몰라 문의드립니다.강의에서 사용하는 @EntityRepository방식은 구버전(0.2.x) 방식으로 최신버전에서는 제거되었습니다. 강의 코드를 그대로 따라하면 ... is not a function같은 에러가 발생합니다.그래서user.repository.ts, auth.modules.ts 수정, auth.service.ts를 수정 1. user.repository.ts 수정 1. user.repository.ts 수정 Repository를 일반 서비스로 만들기 위한 핵심 작업입니다. 수정 내용: @EntityRepository(User) 데코레이터를 삭제하고 @Injectable()을 추가했습니다. Repository 클래스를 초기화하기 위해 constructor (생성자)를 추가하고, 그 안에서 super()를 호출했습니다.// src/auth/user.repository.ts import { Injectable } from '@nestjs/common'; import { DataSource, Repository } from 'typeorm'; import { User } from './user.entity'; // ... @Injectable() // ✅ 변경 export class UserRepository extends Repository<User> { // ✅ 생성자 추가 constructor(private dataSource: DataSource) { super(User, dataSource.createEntityManager()); } async createUser(/* ... */): Promise<void> { // ... } }2. auth.service.ts 수정-> providers 배열에 UserRepository를 추가했습니다.이유: providers 배열에 등록해야만 AuthModule이 "아, UserRepository라는 서비스를 모듈로 포함시켰습니다.// src/auth/auth.module.ts import { UserRepository } from './user.repository'; // ... @Module({ imports: [TypeOrmModule.forFeature([User])], controllers: [AuthController], providers: [ AuthService, UserRepository, // ✅ UserRepository를 providers에 등록 ], }) export class AuthModule {}3.auth.service.ts 수정> 서비스에서 Repository를 주입받는 방식을 변경합니다.수정 내용: @InjectRepository(User) 데코레이터를 삭제하고, 생성자에서 UserRepository를 직접 타입으로 선언하여 주입받습니다.이유: UserRepository는 이제 마법 같은 존재가 아닌 일반 서비스이므로, 다른 서비스를 주입받을 때와 똑같이 클래스 이름만으로 간단하게 주입받을수 있습니다.// src/auth/auth.service.ts import { Injectable } from '@nestjs/common'; import { UserRepository } from './user.repository'; // 🗑️ import { InjectRepository } from '@nestjs/typeorm'; <- 삭제 @Injectable() export class AuthService { constructor( // 🗑️ @InjectRepository(User) <- 삭제 private userRepository: UserRepository, // ✅ 직접 주입 ) {} async signUp(/* ... */): Promise<void> { return this.userRepository.createUser(/* ... */); } }일단 이런식으로 수정했는데 이 과정이 맞는지는 잘 모르겠습니다! 강사님이나 따로 혹시 올라와 있는 코드가 있다면 참고해보겠습니다!
-
해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기
비전공자인데 AI가 발전한 요즘 백엔드로 진로를 하고 싶으면 어떤식으로 공부를 해야 하는지 알 수 있을까요???
비전공자이고 백엔드로 하고 싶은데,AI가 발전한 현재 시점에서 어떻게 공부를 해야 할지 조언을 구하고 싶습니다.
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
4강 http 서버 만들때 ESM방식으로 해도 될까요?
{ "name": "package-manager", "version": "1.0.0", "main": "app.js", "license": "MIT", "type": "module", "dependencies": { "express": "^5.1.0" } }package.json 에 type: "module" 넣고 import express from "express"; const app = express(); const PORT = 3000;요런식으로 해도 괜찮겠죠?!
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
모듈 사용 시 단점이 있나요?
모듈 사용 시 장점은 알게 되었는데 혹시 모듈로 많이 쓸 경우 단점 같은 경우도 있을까요? 용량이든지 등등 궁금합니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
CSR , SSR 의 수요 궁금증 질문
안녕하세요, 개인적으로 궁금한 게 있어서 질문드립니다.요즘 React Router를 보면 SSR 프로젝트를 위한 프레임워크가 나오는 등, 서버 사이드 렌더링 환경을 지원하는 방향으로 발전하고 있는 것 같더라고요.그래서 문득 궁금해졌는데,요즘 시장에서는 CSR방식의 수요가 많이 줄어드는 추세인가요?아니면 여전히 CSR 중심의 프로젝트도 많은 편인가요?현재는 CSR 기반으로 개발하고 있는데, 앞으로의 흐름을 생각하면 SSR 관련 기술도 공부해야 할지 고민 중입니다.현업에서 체감하시는 부분이나 조언을 듣고 싶습니다
-
미해결FastAPI 실전편: JWT와 Redis로 완성하는 인증 시스템
pdm 패키지를 사용하지 못할경우
uv사용해도 괜찮나요? Poetry 로 JWT 강의 해보다가 막혀서 mac에서 진행했는데 윈도우에서도 하고 싶어서 질문드립니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
섹션5부터...
섹션5부터 자바 프로젝트가 완전 바뀌어 있는데 만들어야될 db정보도 없고... 어찌해야 할지 모르겠네요...
-
해결됨코드로 배우는 React 19 with 스프링부트 API서버
간단한 코드 질문!!
private String makeTempPassword() { StringBuffer buffer = new StringBuffer(); for(int i = 0; i < 10; i++){ buffer.append( (char) ( (int)(Math.random()*55) + 65 )); } return buffer.toString(); } 해당 코드에서 StringBuilder가 아닌 StringBuffer를 사용하는 이유가 따로 있나요??성능적으로 큰 차이는 없겠지만 혹시 특별한 이유가 있는지 궁금해서 여쭤봅니다!!
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
tbl_todo 질문입니다
강의 12분 55초에malldb로 들어가서 tbl_todo가 떠야하는데 저는 없네요그래서 한참 이것저것 찾아보니까 tbl_todo가root/apidb/에 있네요.어디가 잘못된건가요?ㅜㅜ
-
해결됨코드로 배우는 React 19 with 스프링부트 API서버
수업 외 질문인데 'tbl'이 무슨 의미인가요???
Table 어노테이션에서 이름 지정 시 tbl 이라는 접두사가 붙었는데 무슨 의미가 있는건가요??
-
해결됨Spring Boot JWT Tutorial
3강 secret key 관련해서 질문있습니다
secret key 를 특정 문자열을 Base64로 인코딩 한거라고 하셨는데 어떤 문자열을 Base64로 인코딩해서 넣어야 하나요?
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
node.js 버전 및 typescript 적용 문의
안녕하세요 강사님.node.js 강의 수강을 이제 막 시작한 프론트엔드 개발자 수강생입니다.1. 모든 강의는 node.js 14 버전 기준으로 녹화가 된게 맞나요? 맞다면 22LTS 버전으로 설치해도 강의를 수강하는데 문제는 없을까요? 2. 그리고 프로젝트 생성 처음부터 typescript 적용하고 싶은데, 초보자에게 괜찮을까요?비추천이시라면 typescript 없이 시작하려고 합니다.감사합니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
엔티티클래스에서 질문입니다
엔티티클래스 만들기 5분 20초경에 create table todo{ tno bigint ~~~~~ 이런식으로 떠야하는데}저는 jdbc url [Connecting through datasource 'HikariDataSource ~~~이런식으로 뜹니다~~~중간에 뭐가 잘못된거 같은데 어디를 수정해야하나요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
수정시 writer값이 삭제되는 오류
putOne의 파라미터로 todo를 넘기면 괜찮은데todoModify를 넘기면 writer가 삭제되는 오류가 생깁니다ㅠㅠㅠ todoModify를 따로 사용하는 건 코드안정성 때문인가요? const handleClickModify = () => { const todoModify: TodoModify = { tno: todo.tno, title: todo.title, dueDate: todo.dueDate, complete: todo.complete, }; //putOne(todoModify) 하면 writer가 삭제되는 오류수정 필요 putOne(todo).then((data) => { console.log("modify result : ", data); setResult("Modified"); }); };
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
12.7. 방장기능(강퇴) 질문드립니다.
socket.on('kicked', (data) => { console.log('강퇴 이벤트 수신'); alert(data.message); window.location.href = data.redirectUrl; }); socket.on('kickUser', (userId) => { console.log('강퇴 요청 받음:', userId); const targetSocket = chat.sockets.get(userId); if (targetSocket) { console.log('강퇴 대상 소켓 찾음'); targetSocket.emit('kicked', { message: '강퇴되었습니다.', redirectUrl: '/' }); setTimeout(() => { // 강퇴된 소켓 연결 해제 targetSocket.disconnect(true); console.log(`사용자 ${userId} 강퇴 완료`); }, 100); } else { console.log(`사용자 ${userId} 소켓을 찾을 수 없음`); } }); socket.on('kicked',가 작동을안하네요 서버쪽에서는 targetSocket.disconnect(true)정상작동합니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
교안 31 오타 수정해주세요
page -> size리액트 잘 모르시는 분들은 에러가 아닌데 dtoList1개 오시면 한참 해매실 것 같네요,
-
미해결카카오,구글 SNS 로그인(springboot3, vue3)
소셜 로그인 설계
안녕하세요 강사님 혹시 oauth2 를 이용한 로그인을 한 다음에 사용자 프로필을 받는 것이 서비스 플로우인데 이럴경우 웹이 아닌 앱을 사용할경우 (로직은 다른 거 알고 있습니다.) (PCKE 방식 사용 예정입니다.)oauth2 를 해서 사용자 db에 저장이 되고 이렇게 처음에 저장이 되고 그 다음에 프로필을 받으면 저 값이 수정이 되게 만들어 주는 게 맞을지 질문드립니다. 사용자엔티티에 Provider 나 socialId 로 값을 받습니다. (구글과 애플을 사용할 예정입니다.) @Entity @Table(name = "users") @Getter @NoArgsConstructor @Setter public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id") private Long id; @Column(name = "name", nullable = false) private String name; @Enumerated(EnumType.STRING) @Column(name = "SEX", nullable = false) private Sex sex; @Column(name = "age", nullable = false) private Integer age; @Column(name = "nationality", nullable = false) private String nationality; @Column(name = "introduction", length = 40, nullable = false) private String introduction; @Column(name = "visit_purpose", length = 40, nullable = false) private String visitPurpose; @Column(name = "languages", nullable = false) private String languages; @Column(name = "hobby", nullable = false) private String hobby; @Column(name = "created_at", nullable = false) private Instant createdAt; @Column(name = "updated_at", nullable = false) private Instant updatedAt; @Column(name = "Provider", nullable = false) private String provider; @Column(name = "social_id", nullable = false) private String socialId; @Column(name = "email", nullable = false) private String email; @Builder public User(String name, Sex sex, Integer age, String nationality, String introduction, String visitPurpose, String languages, String hobby, String provider, String socialId, String email) { this.name = name; this.sex = sex; this.age = age; this.nationality = nationality; this.introduction = introduction; this.visitPurpose = visitPurpose; this.languages = languages; this.hobby = hobby; this.provider = provider; this.socialId = socialId; this.email = email; this.createdAt = Instant.now(); this.updatedAt = Instant.now(); } public void updateProfile(UserUpdateDTO dto) { if (dto.getName() != null && !dto.getName().trim().isEmpty()) { this.name = dto.getName().trim(); } if (dto.getSex() != null) { this.sex = dto.getSex(); } if (dto.getAge() != null) { this.age = dto.getAge(); } if (dto.getNationality() != null && !dto.getNationality().trim().isEmpty()) { this.nationality = dto.getNationality().trim(); } if (dto.getIntroduction() != null && !dto.getIntroduction().trim().isEmpty()) { this.introduction = dto.getIntroduction().trim(); } if (dto.getVisitPurpose() != null && !dto.getVisitPurpose().trim().isEmpty()) { this.visitPurpose = dto.getVisitPurpose().trim(); } if (dto.getLanguages() != null && !dto.getLanguages().trim().isEmpty()) { this.languages = dto.getLanguages().trim(); } if (dto.getHobby() != null && !dto.getHobby().trim().isEmpty()) { this.hobby = dto.getHobby().trim(); } this.updatedAt = Instant.now(); // 수정 시각 갱신 } }
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
쿠키에 accessToken, refreshToken을 담고, 조회 시에 undefined
쿠키안에 accessToken과 refreshToken을 JSON.stringfy()로 문자열로 담아주는데 getCookie()를 할시에 object타입으로 전달되어서 accessToken과 refreshToken이 undefined로 잡혀 갱신이안됩니다.