묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
검증 처리의 위치와 서비스 단계에서 validator처리 문제점
안녕하세요 김영한 은사님, 강의 열심히 잘 보고 있습니다.다름 아닌 개인 프로젝트 중 궁금한 질문이 생겨서 다음과 같이 남깁니다.Q1. 검증의 처리는 컨트롤러 or 서비스 단계 중 어디서 하는 것이 적당한가요? 구글링 결과 다 상황에 따라 다르다는 답변을 들었습니다. 그러나 실무 경험이 풍부한 김영한 강사님과 다른 수강생들의 의견이 궁금합니다. 만약 상황에 따라 다른 단계에 구현한다면 그에 따른 유지보수 문제는 감수하고 가는게 맞나요?Q2. 저는 재활용성을 우선시하여 서비스 단계에서 validator 를 주입하여 처리하고 있습니다. 그런데 binding result를 어떻게 처리해야할 지 모르겠습니다.물론 커스텀 에노테이션, bean validation을 사용하면 된다는 것을 알고 있습니다. 그러나 아직은 공부 단계이므로 validator을 통해서만 해결해보고 싶은데 방법이 있을까요? public String join(@ModelAttribute("member") MemberSaveForm memberForm,BindingResult bindingResult) { Member saveMember = new Member(memberForm); //아래와 같은 부적절한 코드 발생 bindingResult = memberService.join(saveMember, bindingResult); //서비스의 메소드 파라미터로 bindingResult를 넣고 그 메소드내에서 검증 처리 후 // 에러를 주입해서 다시 돌려주는 코드 if (bindingResult.hasErrors()) { return "/user/join"; } }
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
full screen이 아닐 때
선생님 풀스크린이 아닐 때 이미지가 아래와 같이 위 아래로 분리는 되나, 명확하게 보이지 않습니다. 이 현상은 혹시 어떻게 해결할 수 있을까요? 제가 잘못했나 싶어, 선생님 코드(html, css)를 그대로 복사해도 똑같이 나옵니다 ㅠ
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
RestApi에 대하여
안녕하세요! 강사님 항상 좋은강의 정말 감사드립니다. 평소에 Api 특히 Rest APi에 대해서 너무 광범위한 사용과 문맥에 정말 개념이 잡기가 어려웠는데, 이번 강의를 통해서 많이 개념이 잡혀나가는것 같아 뿌듯하고 감사합니다. 공부를 하던중에 궁금한 것이 있는데 1. Rest api라고 하는건 mvc패턴에서의 api(템플릿 엔진을 주로 사용하여 리턴해주는 컨트롤러)는 Rest api의 범주에 들어오지 않는건가요? 2. 그리고 클래스 Annotation중에 @RestController가 붙으면 http body 부분에 json 형식으로 data가 디폴트로 나가는 건지 궁금합니다. 데이터를 text/plain이나, xml같은 형식으로 body에 response하려면 어떻게 해야할까? 라는 궁금증이 있습니다. 답변 부탁드립니다!
-
미해결더 자바, Java 8
Optional에서 of()는 언제 사용할까요??
Optional ofNullable()과 of()의 차이는 널 값을 가질 수 있는지로 알고있는데요.ofNullable()의 코드를 봐도 내부적으로 of()를 사용하고 성능상에도 큰차이가 있을까? 라는 생각이 드는듯한 코드인데 of()를 사용하는 경우가 어떤것이 있을까요?? public static <T> Optional<T> of(T value) { return new Optional<>(value); } public static <T> Optional<T> ofNullable(T value) { return value == null ? empty() : of(value); }
-
미해결취미로 해킹#3(WebGoat)
webwolf 인코딩
webwolf를 실행할려는데 이런 메시지가 뜹니다. 어떻게 해결해야 하나요?
-
미해결
이직 준비중인 현직 개발자입니다 제발 조언좀 ㅜㅜㅜㅜㅜ
안녕하세요 지방에서 C#을 사용하는 개발자입니다 . 지금 이직 고민중이라 다른 언어들도 개인적으로 공부중입니다. 서울 수도권쪽을 희망하는데 찾아보니 다른언어를 사용했을때는 경력을 안쳐준다는 얘기를 듣고 겁이나 이렇게 질문을합니다 ..ㅠㅠㅠ 시작점이 잘못 된걸까요...... ㅠㅠㅠ 다른언어도 지금 열심히 공부중인데 ㅜㅜㅜ
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
학습률 최적화
뒤에 내용에서는 Learning rate scheduler 방식으로 epochs 마다 성능 평가 지표에 따라 동적으로 학습율을 변경했는데 optimizer에서는 어떻게 적용할수있나요? adam으로하면 자동으로 되는건가요?
-
미해결3DS MAX 입문강좌 (입문부터 자동차 예제까지)
동영상이 안나옵니다... 동영상을 볼 수 없다고 떠요..
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결스프링 시큐리티
운영환경에서 이중화 시 권한 리소스 처리
안녕하세요. 강사님 WAS가 이중화되면 권한 리소스는 어떻게 관리되나요? 캐시 서버를 주로 사용하나요? 아니면 매요청때마다 UrlFilterInvocationSecurityMetadatsSource 의 getAttributes 메서드에서 요청되는 URL에 부여된 롤 정보만 DB에서 조회하는 것도 괜찮을까요? 이렇게하면 ant 패턴을 적용이 어려운 점은 있겠네요. 이중화 될 때 Best Practice가 궁금합니다. 감사합니다.
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
ApiResponse
ApiResponse 를 적용하고있는데여 . @ApiInternalServerErrorResponse({ description: '서버 에러', }) 이런 데코레이터는 전체다 먹이고 싶은데, 그럼 class 위에다가 데코레이터 넣으면 되는걸까요 ?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품등록 뷰에 @{/items/new}
안녕하세요 강의 너무 잘 듣고 있다가 질문드립니다 상품등록 뷰에 action만 @{/items/new}인 이유가 있을까요?
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
jupyter lab 실행시 server connection error
아나콘다prompt 창에서 (base) C:\Users\***\Desktop\python_class>jupyter lab 으로 주피터랩 실행한뒤에 python3 실행하면 몇초뒤에 kernel 선택하라고 뜨면서 python3 선택하면 또 몇초뒤에 server connection error 가 뜨네요.. 해결방법 좀 알려주세요ㅠㅠ
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
print('a \t b')와 t_s1 = "Click \t Start!"의 차이
둘다 똑같이 \t 를 사용했는데 콘솔 상에서 띄어쓰기 간격이 달라서 여쭤봅니다. 바로 프린트를 들어가고 하나는 변수를 설정한 다음 프린트를 했는데 이 차이인가요?
-
미해결초보를 위한 도커 안내서
wordpress Error establishing a database connection 오류뜨시는 분들
mysql 접속 포트 변경해주셨다면 wordpress 이미지 run 해주실 때 아래와 같이 internal뒤에 :port 번호 적어주시면 됩니다! WORDPRESS_DB_HOST=host.docker.internal:[mysql 변경한 port]
-
미해결홍정모의 따라하며 배우는 C++
*this
Digit& operator++ (){ ++m_digit; return *this; } //postfix Digit operator++ (int){ Digit temp(m_digit); ++(*this); return temp; } *this에 대해서 더 알고 싶습니다. 지금 객체에는 멤버변수와 멤버함수가 있고, this는 객체를 포인팅하고 있는 포인터, *this는 멤버 변수가 되는건가요? *this가 객체 자체가 되는거고, *this.m_digit이 말이 되는거 아닌가요? 조금헷갈리네요
-
미해결홍정모의 따라하며 배우는 C++
연습문제 질문입니다
연습문제를 풀던 중 배열은 포인터와 증감연산자를 사용할 수 없다는 것을 발견했습니다. 빨간 줄에서 "expression must be a modifiable lvalue" 라고 뜨는데 배열은 포인터처럼 증감연산자를 사용하지 못하는 이유가 있나요?
-
미해결홍정모의 따라하며 배우는 C++
컴파일에러
main문에 강의상 shuffle하기 위한 그 컴파일 방식?이 컴파일러가 c++17 이후라서 저렇게 추가했는데요! #include <iostream> #include <vector> #include <algorithm> #include <random> using namespace std; class Cents{ private: int m_cents; public: Cents(const int ¢s):m_cents(cents){} int& getCents() { return m_cents; } int getCents() const { return m_cents; } friend std::ostream& operator << (std::ostream &out,const Cents ¢s){ out<<cents.m_cents; return out; } friend bool operator > (const Cents&c1, const Cents&c2){ return c1.m_cents > c2.m_cents; } //std::sort쓸때는 >를 해야지 <를 하면안됨 }; int main(int argc, const char * argv[]) { std::random_device rd; std::mt19937 g(rd()); vector<Cents>arr(20); //arr이름으로 된 Cents형 20개 for(unsigned i = 0 ; i<20 ; ++i){ arr[i].getCents() = i; //getCents의 반환형이 참조형이 되야함을 기억할 것! //함수 리턴값은 R-value 입니다. int a = 3; 이라는 식이 있을 때 바로 여기서 3이 R-value 라는 것을 앞에서 배우셨을 겁니다. R-value 메모리는 임시 객체이며 개발자가 임의로 수정할 수 없습니다. 함수 리턴값에 대입을 하고 싶다면 L-value 로서 리턴될 수 있도록 getCetns 의 리턴형을 int & 로 바꿔주세요. } std::shuffle(begin(arr),end(arr),g); for(auto &e : arr){ cout<<e<<" "; }cout<<endl; std::sort(begin(arr),end(arr)); //sort는 크기 비교하는 거라서 >나 <가 필요한데 > 필요하다. for(auto &e : arr){ cout<<e<<" "; }cout<<endl; return 0; } 오류내용:
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
run실행시 테스트코드에서 컨트롤러로 돌리는 방법
실행시 이전강의에서 실행한 테스트코드만 실행되는데 다시 8080포트로 실행하는 방법을 모르겠습니다...
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
안녕하세요 선생님 질문이 있습니다.
안녕하세요 선생님. 수업내용중 질문이 있습니다. 다음 그림과 같이 7:50분에 있는 내용대로 코드를 적고 실행을 시켜보았더니, 가장 마지막 문장처럼 errorCode 024가 나옵니다. 아무리 찾아봐도 해결법이 보이지 않아서 질문을 드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Paging, batchSize관련 질문
team1에 멤버 2명, team2에 멤버 5명 이런식으로 있다고 할때 배치 사이즈 설정의 경우 2로 설정을 하면 팀의 단위를 2개 기준으로 나눠서 배치로 조회하는 것은 알겠습니다. 그러면 위의 경우 7개의 결과가 출력되는 건데, ---- 만약 한번에 총(팀단위 x) 5개씩 조회를 하고 싶다면 이 건의 경우 배치사이즈 설정으로는 페이징 할 수 없는 것 같은데, (팀 a 멤버1, 2 / 팀 b 멤버 1,2,3) (팀b 멤버 4,5)이런식으로 이 경우에는 어쩔수 없이 멤버를 기준으로 조회해서 (멤버 + 팀) 5개씩 Maxsize 설정을통해 5개씩 출력하는 수밖에 없는 건가요? (+ team이름 기준으로 순서를 매겨?) ---- 만약에 테이블에서 결과를 k개씩 출력한다고 할때,어떤 경우에는 N:1(member -> team join)에서 페이징이 아닌 1:N 관계에서 조회가 필요(team -> member join)하고 k개씩 페이징하고 싶다고 하면 배치로는 해결하지 못하는 것 같은데 다른 방법이 있을까요? --- 여기서 예시로 든 case에는 사실, 멤버를 기준으로 팀을 조인하고 페이징하면 해결이 되지만, 어떤 경우에는 1:N관계에서 출력이 필요한 경우도 있지 않을까해서 여쭤봅니다. 그런경우는 거의 없을까요? 답변주시면 감사드리겠습니다.