inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Ruby on Rails 공식 가이드 따라잡기

Security

안녕하세요 강사님 질문이 있어 글을 작성합니다.

해결된 질문

118

감바스

작성한 질문수 92

0

  1. rails 같은 경우에는 서비스 계층과 레포지토리 계층이 없는지 궁금합니다. rails로 개발하는 현업에서는 계층을 나누지 않고 개발하는 건가요?

  2. 마이그레이션 파일을 만들면서 느꼈던 점은 스키마를 변경했던 부분들을 모두 기록하여 나중에 살펴보기 좋다라는 느낌이 들었습니다. 다만 테이블이 굉장히 많아지고 시간이 지나면서 스키마를 변경 할수록 migrate 폴더에 굉장히 많은 마이그레이션 파일들이 생성될꺼 같은데 이부분에 대해서는 어떻게 처리하는지 궁금합니다.

  3. 스프링으로 개발을 했을때는 DB로 가져온 데이터를 DTO 객체로 변환 후 클라이언트에 전송 했는데 rails는 DTO 객체 변환없이 클라이언트에 바로 보내는건지 궁금합니다.

  4. rails에서는 컨트롤러 별로 요청 경로를 관리하는게 아니라 routes.rb에서만 요청 경로를 관리 하는건지 궁금합니다.

감사합니다.

ruby ruby-on-rails

답변 1

0

Stark

안녕하세요, 질문 감사드려요! 아래와 같이 답변드릴게요.

1. 서비스 계층과 레포지토리 계층

Rails에서는 Active Record 패턴을 사용해서 데이터 액세스를 직접 모델에서 처리하는 경우가 많아요. 그래서 전통적인 의미의 '레포지토리 계층'을 따로 두지는 않아요.

하지만 비즈니스 로직이 복잡해질 경우, Service Object나 Query Object 같은 패턴을 사용해서 서비스 계층을 나누기도 해요.

2. 마이그레이션 파일 관리

마이그레이션 파일이 많아져도 성능에는 영향을 주지 않지만, 관리가 어려울 수 있어요.

이럴 때는 schema.rb 또는 structure.sql을 기준으로 기존 마이그레이션 파일을 정리하고, 새로운 베이스 마이그레이션을 생성하는 방법을 사용하기도 해요.

3. DTO 객체 변환 여부

Rails에서는 보통 DTO 객체를 따로 만들지 않고, Active Record 모델을 그대로 JSON으로 변환해서 API 응답으로 보내는 경우가 많아요.

하지만 ActiveModel::Serializerjson_builder 같은 도구를 활용하면 Spring에서 DTO를 사용하는 것처럼 특정 필드만 선택해서 변환할 수도 있어요.

4. 요청 경로 관리

네, Rails에서는 routes.rb에서 모든 요청 경로를 정의하는 게 일반적이에요.

각 컨트롤러에서 개별적으로 경로를 관리하지 않고, RESTful 구조에 맞춰 resources 메서드를 사용해서 자동으로 경로를 생성하는 방식이 보편적이에요.

질문해 주셔서 감사합니다!

0

감바스

답변 감사합니다!

혹시 다음 강의 찍게되면 마우스좀 치워주세요

0

48

0

스타업 클라우드 질문

0

106

2

vscode를 설치했는데 myapp폴더가 없어요!

0

92

1

토스페이먼츠 크롬에서는 되는데 사파리나 엣지 브라우저에서 나오지 않을 경우

0

107

2

커서에서 해결책을 못 찾을 경우 ㅠㅠ

0

98

2

error 메시지 빨간색 창은 레일즈로 한 화면에서만 뜨는건가요?

0

98

2

SSL 관련 이슈 해결

0

49

1

tidewave 로 인프런을 구현 해보고 있는데요.

0

76

2

shadcn 스타일 적용

0

82

2

kamal setup시 오류

0

86

2

scaffold 생성 시 테일윈드

0

63

2

도커를 이용한 배포가 에러가 굉장히 많이 납니다. 혹시 깃허브 이용

0

100

2

루비설치중문제

0

48

1

ubuntu 설치시 문제..

0

69

2

지금 시점에서 루비온레일즈를 배우는게 여전히 유효할까요?

0

133

2

윈도우 환경에서 surf 작동안되는 경우..

0

96

2

모델 생성 중 정지 현상

0

87

1

surf 명령어 입력 안되는 문제

0

100

2

kamal deploy 실행시 오류

0

90

2

레일즈를 사용하던 기업들이 주 언어를 바꾼 이유가 궁금합니다

0

148

1

강의 감사합니다.

0

132

1

kamal로 배포해보기 챕터는 아직 업데이트 전인가요?

0

169

1

tailwindcss code generator 링크가 잘못된 것 같아요.

0

249

1

show api 작성시 생성된 @article을 instance 변수로 만드는 이유가 있나요??

0

252

1