강의에서 배운 게시글 목록 조회 코드에서 궁금한 점이 있습니다. @app.get("/posts", response_model=list[PostResponse]) def get_posts(db: Session = Depends(get_db)): query = select(Post).order_by(Post.created_at.desc()) posts = db.execute(query).scalars().all() if posts is None: raise HTTPException(status_code=404, detail="게시글이 존재하지 않습니다.") return posts SQLAlchemy 2.0의 .all() 메서드는 데이터가 없을 때 None 을 반환하는 게 아니라 빈 리스트 [] 를 반환 한다고 알고있습니다. 결과적으로 if 문을 탈 수가 없는데, 필요 없는 코드가 아닌가 해서요. 그냥 빈 리스트를 반환하면 되지 않나요?
제가 강의를 산 이유가 24절기 db데이터가 필요해서인데 db넣어보고 데이터보니까 24절기 데이터가 한국천문연구원에서 가져온 사이트하고 다르더라구요 그러면 대운 시작나이가 잘못뽑힐것같은데 잘뽑히시던가요??.. https://uncle.tools/manse/solar-terms/1992
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(/* ... */); } } 일단 이런식으로 수정했는데 이 과정이 맞는지는 잘 모르겠습니다! 강사님이나 따로 혹시 올라와 있는 코드가 있다면 참고해보겠습니다!
안녕하세요, 개인적으로 궁금한 게 있어서 질문드립니다. 요즘 React Router를 보면 SSR 프로젝트를 위한 프레임워크가 나오는 등, 서버 사이드 렌더링 환경을 지원하는 방향으로 발전하고 있는 것 같더라고요. 그래서 문득 궁금해졌는데, 요즘 시장에서는 CSR 방식의 수요가 많이 줄어드는 추세인가요? 아니면 여전히 CSR 중심의 프로젝트도 많은 편인가요? 현재는 CSR 기반으로 개발하고 있는데, 앞으로의 흐름을 생각하면 SSR 관련 기술도 공부해야 할지 고민 중입니다. 현업에서 체감하시는 부분이나 조언을 듣고 싶습니다
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를 사용하는 이유가 따로 있나요?? 성능적으로 큰 차이는 없겠지만 혹시 특별한 이유가 있는지 궁금해서 여쭤봅니다!!
안녕하세요 강사님. node.js 강의 수강을 이제 막 시작한 프론트엔드 개발자 수강생입니다. 1. 모든 강의는 node.js 14 버전 기준으로 녹화가 된게 맞나요? 맞다면 22LTS 버전으로 설치해도 강의를 수강하는데 문제는 없을까요? 2. 그리고 프로젝트 생성 처음부터 typescript 적용하고 싶은데, 초보자에게 괜찮을까요? 비추천이시라면 typescript 없이 시작하려고 합니다. 감사합니다.