inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

궁금한점 있습니다

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 강사님 궁금한것이 있어서 질문 남깁니다 public void returnBook(String bookName) { UserLoanHistory targetHistory = this.userLoanHistories.stream () .filter(history -> history.getBookName().equals(bookName)) .findFirst() .orElseThrow(IllegalAccessError::new); //findFist()는 옵셔널로 반홚나다 targetHistory.doReturn(); } 이 로직에서 만약 한 책을 빌렸다가 반납하면 그 히스토리를 반납완료 상태로 만들어주고 끝내고 다시 그 책을 빌리려고 한다면 새로운 히스토리를 만들어서 List에 저장할텐데 그럼 다시 그책을 반납할 경우 findFirst()를 해서 그 히스토리를 찾아왔을때 이미 반납된 책을 다시 반납하는 행위가 되는것이 아닌건지 궁금해서 질문 드립니다!

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
wjddjs21 댓글 1 좋아요 2 조회수 271

트랜잭션 로직을 공통처리 하는 방법으로 적절할까요?

해결됨

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

## 트랜잭션 서비스 @Injectable() export class TransactionService { constructor(private readonly dataSource: DataSource) {} async transaction(callback) { const queryRunner = this.dataSource.createQueryRunner(); await queryRunner.connect(); await queryRunner.startTransaction(); try { await callback(queryRunner); await queryRunner.commitTransaction(); return true; } catch (error) { console.error(error); await queryRunner.rollbackTransaction(); throw error; } finally { await queryRunner.release(); } } } ## 트랜잭션 모듈 (글로벌) @Global() @Module({ providers: [TransactionService], exports: [TransactionService], }) export class TransactionModule {} ## 사용예제 async join(email: string, nickname: string, password: string) { const user = await this.usersRepository.findOne({ where: { email } }); if (user) { throw new HttpException('이미 존재하는 사용자입니다.', 401); } const hashedPassword = await bcrypt.hash(password, 12); await this.transactionService.transaction(async (queryRunner) => { const result = await queryRunner.manager.getRepository(Users).save({ email, nickname, password: hashedPassword }); const sleact = await queryRunner.manager.getRepository(Workspaces).findOne({ where: { name: 'Sleact' } }); await queryRunner.manager.getRepository(WorkspaceMembers).save({ UserId: result.id, WorkspaceId: sleact.id }); const channel = await queryRunner.manager .getRepository(Channels) .findOne({ where: { name: '일반', WorkspaceId: sleact.id } }); await queryRunner.manager.getRepository(ChannelMembers).save({ UserId: result.id, ChannelId: channel.id }); }); } 안녕하세요 제로초님. 트랜잭션 관련해서 로직 작성하다가 실행부를 제외하고는 너무 공통되는 것 같아서 방법을 고민하다가 위 소스처럼 처리하면 어떨까 싶어 작성해보았습니다. 트랜잭션 서비스를 생성해서 공통이되는 트랜잭션 로직을 모아두고, 콜백함수를 받아서 처리하는 형태로 해보았는데요! 일단 동작은 정상적으로 하는데, 이렇게 했을 때 발생할만한 문제가 있을지 짐작이 가지 않아서 문의 남깁니다! 위와같은 로직으로 트랜잭션을 공통처리 했을 때 생길만한 사이드이펙트가 있을까요?

  • node.js
  • express
  • nestjs
  • typeorm
김영욱 댓글 1 좋아요 0 조회수 328

Dto 생성시 유틸리티 타입을 사용할수 있나요?

해결됨

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

DB를 기반하여 Users엔티티를 만들었을떄 join함수에서 사용할 DTO를 만들기위해 Users를 상속받아 Pick이나 Omit을 사용하여 일부 데이터만 사용하고 싶습니다. 리액트의 유틸리티 타입처럼 기본 클래스에서 일부만 상속을 받는 방법이 있을까요?

  • node.js
  • express
  • nestjs
  • typeorm
최석우 댓글 1 좋아요 0 조회수 286

우분투 사용법

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

강의 듣다가 윈도우에서 우분투로 바꿨는데 사용법이 익숙치 않아요 터미널에서 bash 라는 창을 어떻게 켜는지도 모르고 , 단축키도 몰라요. 전체적으로 미숙해요. 이런건 어디서 배워야하나요?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
kql 1 댓글 2 좋아요 0 조회수 462

변수의 타입에 클래스를 지정해준 것과 지정 안한 것 과의 차이가 어떻게 되는지 궁금해서 질문을 남깁니다.

미해결

타입스크립트의 모든 것

안녕하세요? 현 강의에서 user에 new UserInfo() 클래스를 할당하고 동시에 해당 변수에 타입으로 클래스를 할당할 수 있다고 하셨는데 그렇게 되면 본래 UserInfo 상단에 지정된 인자들의 타입을 한번 더 점검해준다는 뜻인가요?? 해당 부분이 이해가 안되서 질문을 남깁니다.

  • typescript
  • Deno
  • nestjs
도도한 바다사자 댓글 2 좋아요 0 조회수 390

OS 바꿨는데 처음부터 다시 들어야하나요?

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

전에 WINDOW 쓰고 있어서 오류가 많이 걸린다고 하소연 한적 있었는데 선생님이 우분투로 바꾸라고 해서 우분투 듀얼 부팅 설치했는데 지금까지 들었던 강의에서 사용되었던 우분투 명령어를 모르니 처음부터 다시 들어야하나요?... 거의 다 들은 거 같은데...

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
kql 1 댓글 1 좋아요 0 조회수 357

인자에 객체 값을 넣는 이유

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

인자에 객체 값을 넣는 이유가 안전하기 때문이라고 하셨는데 정확히 어떤 부분이 안전한지 알려주실 수 있나요?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
송원 댓글 2 좋아요 0 조회수 299

의존성조언에서 UserService의 login은 Clock에 의존하는지 모르지 않나요?

미해결

Java/Spring 주니어 개발자를 위한 오답노트

의존성 조언 두번째 방법에서 문제점이 UserService.login은 여전히 의존성이 감춰져있다. 위와 마찬가지로 Userservice.login을 테스트할 때 clock에 의존하고 있는지 알 수 없다. 이거였는데 세번 째 방법도 UserService를 사용하는 메서드는 login(user)만 남겨서 user가 Clock에 의존하는지 모르지 않나요? 아까 맥도날드 예제에서는 인터페이스를 사용하면 일을 시킨다고 설명하셨는데 이것도 인터페이스를 사용해서 일을 시키는거니 이렇게 구현하면 내부에서 clockHolder를 사용해도 외부에서 몰라도 되나요?

  • java
  • spring
  • 객체지향
  • 소프트웨어-테스트
seiyoung an 댓글 2 좋아요 0 조회수 472

오버라이딩 질문

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

class 공중부품 { run = () => { console.log("날라서 도망가자"); }; } class 지상부품 { run = () => { console.log("뛰어서 도망가자"); }; } class Monster { power = 10; 부품; constructor(부품, power) { this.부품 = 부품; this.power = power; } attack = () => { console.log("공격하자!"); console.log("내 공격력은 " + this.power + "야!"); }; run = () => { console.log("도망가자!"); }; } run 메소드를 this.부품.run ();으로 바꿔주지 않아도 뛰어서 or 날아서 도망가자고 바뀌던데요.. 상속관계면 오버라이딩으로 생각하고 알아서 바뀌는 것은 이해했는데 이렇게 객체를 집어넣었을 때도 자동을 바꿔주는건 왜 그런건가요?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
karmesin924 댓글 1 좋아요 0 조회수 236

docker-compose build시 에러발생

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

"setenv: invalid argument" 라는 에러가 발생합니다만 어떤 부분을 고치면 에러를 고칠 수 있는 지 알려주시면 감사하겠습니다. yaml파일 version: "3.7" # 컴퓨터들 services: # 컴퓨터이름 my-backend: build: context: . dockerfile: Dockerfile ports: - 4000:4000 # 컴퓨터이름 my-database: build: context: . dockerfile: Dockerfile.mongo ports: - 27017:27017 터미널 hyunminyu@HYUNMINnoAir backend % ls Dockerfile docker-compose.yaml node_modules util.js Dockerfile.mongo email.js package.json yarn.lock Phone.js index.js swagger hyunminyu@HYUNMINnoAir backend % docker-compose build setenv: invalid argument

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
s-june.lee 댓글 1 좋아요 0 조회수 236

python pandas dataframe을 엑셀 vlookup처럼 활용하고 싶은데 쉽지 않습니다. 도와주세요

미해결

하고 싶은 것 일부 주문이 서비스 유형: 픽업임에도 배달메뉴코드로 생성되어 이를 찾고 싶습니다. (배달메뉴와 픽업메뉴 코드는 서로 다름) 엑셀 vookup을 사용해서 상품코드를 배달 메뉴 테이블에서 검색하고, 검색되지 않으면 오주문으로 판단하는 코드를 구현했습니다. 같은 프로그램을 파이썬을 통해 구현해보고 싶은데, 다른 dataframe에 없는 값을 찾아 행을 추가하는 과정이 어려워 조언을 구하고 싶습니다. 파이썬 코드 df_pickup = 픽업 주문내역 데이터 프레임 delivery_menu_code = df_delivery_menu["상품코드"] df_misorder = pd.DataFrame() # 픽업 주문내역에서 상품코드를 꺼내 해당 상품코드가 배달 메뉴 코드에 포함되어 있는지 확인 # 만약에 코드가 없으면 해당 row를 df_misorder에 추가 for idx, row in df_pickup.iterrows(): misorder = df_delivery_menu[delivery_menu_code.str.contains(row["상품코드"], na = False)] if len(misorder) != 0: df_misorder.concat(row) else: pass # 어떻게 추가해도 계속 0개로 나와서, 도와주시면 감사드리겠습니다! len(df_misorder)

  • python
  • pandas
  • excel
  • vlookup
최경완 댓글 1 좋아요 1 조회수 1020

app.module.ts 하는도중에

미해결

탄탄한 백엔드 NestJS, 기초부터 심화까지

화면처럼 AppModule에 붉은 줄이 떠서 확인을 해보니 'AppModule' 클래스가 'NestModule' 인터페이스를 잘못 구현합니다. 'configure' 속성이 'AppModule' 형식에 없지만 'NestModule' 형식에서 필수입니다.ts(2420) nest-module.interface.d.ts(6, 5): 여기서는 'configure'이(가) 선언됩니다. 라고 뜨는데 어떤식의 해결을 해야할 지 모르겠습니다.

  • node.js
  • mongodb
  • express
  • nestjs
  • ssr
댓글 1 좋아요 0 조회수 402

몽고db compost 데이터베이스

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

몽고db compose 에서 데이터베이스가 나타나지 않습니다..... localhost로도 했고 아이피로도 바꿔서 해봤는데도 안되고 근데 포스트맨에서는 동작이 잘 되는데 왜그런건가요.....

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
조규은 댓글 1 좋아요 0 조회수 201

퀴즈06

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

backend/index.js 안녕하세요. 퀴즈06을 푸는 도중에 제가 짠 코드가 맞는지 궁금해서 여쭤봅니다 ㅜㅜ.. 우선 signup.js에서 벡앤드 서버로 axios를 통해서 데이터를 보내고 거기서 폰번호가 맞는지 확인하고 토큰을 coolsms 서비스를 통해서 발송하는 코드를 짰습니다. 그 이후에 인증번호와 토큰을 매칭시키고 맞다면 success를 리턴하게 했구 이메일도 비슷한 과정으로 짰습니다. 너무 어렵게 느껴져서 GPT 도움을 통해 코드를 짰는데 이게 맞는지 의심이 되네요 휴.. 혹시 퀴즈에 대한 정답예시이런건 없나요? 아무래도 독학으로 온라인 부트캠프 과정을 밟다보니 포트폴리오는 혼자 해결하는데 좀 어려운 거 같습니다 맞는지도 잘 모르겠고.. 긴 글이지만 성의있게 봐주시면 정말 감사하겠습니다!

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
이하이 댓글 1 좋아요 0 조회수 279

에러나서 시간을 많이 잡아먹어요

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

window용이라서 에러가 나면 검색하느라 시간을 많이 잡아먹어요.기본 1시간 이상 걸리는거 같아요 이걸 감내해야되는 건가요?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
kql 1 댓글 1 좋아요 0 조회수 323

안녕하세요 환경 관련 질문드립니다

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

현재 컴퓨터에 업무로 인한 파일들이 많아 용량으로 인해서 파티션을 나누는 용량을 포함해서 아무리 해도 용량 확보가 어려운 상황에.. 본체에 추가적으로 SSD를 추가할 수 없는 상황인데 혹시 현 상황에서 우분투를 외장 SSD에 설치한 뒤에 학습을 진행하여도 문제가 없을까요 ? 혹은 vm웨어를 통한 가상환경에서도 학습에 문제가 없을지 궁금합니다.

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
이종언 댓글 1 좋아요 0 조회수 280

사용자 정의 함수 방언 등록

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 사용자 정의함수를 db에 등록시켜놓은 다음에 jpql로 사용을 해보니 따로 방언을 등록하지 않아도 사용이 가능합니다. List<String> str = em.createQuery("select create_prefix(m.username) from Member m", String.class).getResultList(); create_prefix는 직접 등록한 함수입니다. 수업에서는 방언으로 사용자 정의 함수를 등록해야지 적용이 된다고 하는데 이 경우 왜 작동되는지 알고싶습니다.

  • java
  • jpa
준영 댓글 2 좋아요 1 조회수 874

Record 타입 질문

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

interface IProfile { name: string; age: number; school: string; hobby?: string; } type eee = "철수" | "영희" | "훈이"; type fff= Record<eee, IProfile>; fff가 key가 철수,영희,훈이고 value가 IProfile 인것은 이해하는데, 이게 철수,영희,훈이가 뭔 타입을 말하는 건지 모르겠고,이게 뭔 의미인지도 잘 모르겠어요

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
kql 1 댓글 1 좋아요 0 조회수 204

자동 생성되는 괄호 넘어가는 단축키

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

중괄호 등을 통해서 코드를 작성할 때 중괄호가 [] 이렇게 두개 자동으로 생성되는데요. 이외에도 '' 등 두개씩 자동으로 만들어줘서 코드를 작성하는데는 편리한데 'LEE' 등 코드를 쓰고 EE에서 '를 넘어 가기 위해 방향키를 눌러줘야 하는 불편함이 있습니다. 혹시 빠르게 작성하기 위해 단투키 같은게 별도로 있을지 문의드립니다

  • python
9시30분출근 댓글 1 좋아요 0 조회수 581

강의를 다 듣고 어떻게 공부해야 할지 궁금합니다.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

Q1. nest.js 같은 라이브러리들을 자유자재로 써야 하나요? Q2. docs를 따로 보면서 사이드 프로젝트를 만들며 공부해야 하나요? 아니면 또 다른 강의를 구매해서 공부해야하나요? 기초적인 지식은 어느정도 감이 잡힌 것 같은데, 세부적인 설정 부분이나 고급 기능들은 어떻게 접근할지 잘 모르겠습니다. 강사님은 어떻게 공부하시나요?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
dalim508 댓글 1 좋아요 0 조회수 369

인기 태그

인프런 TOP Writers

주간 인기글