inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

findById에서 select 할때 for update해야 하는건 아닌지 궁금합니다

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

안녕하세요 ! 너무나 바쁘신줄 알지만 제가 틀리게 이해하고 있는지도 모르겠는데 너무 궁금해서 질문남깁니다. MemberServiceV2의 bizLogic에서 findById를 호출할때 그냥 select하게 되어있는거 같은데 이렇게 되면 락을 획득하는게 아니라서 update를 호출 하기 전에 다른 커넥션? 에서 수정을 위해 select 또는 그사이에 update를 해버리면 현재의 커넥션?(쓰레드?)엉뚱한 값을 update 하게 될 수 있지 않을까요 ? 예를 들어 두개의 커넥션에서 동시에 findById를 호출하고 bizLogic을 수행한다면 하나의 row 에 대해 한쪽에서는 더하기를 다른쪽에서는빼기를 실행해도 최초의 값에서 더하기 혹은 빼기 둘중 하나만을 실행한 결과가 update되지 않을까 하는 생각입니다. 제가 글로 설명을 잘 못하겠는데... 멀티쓰레드에서 동기화 문제와 비슷한 문제가 발생하는건 아닐지 생각이 듭니다. 혹시 제가 제대로 이해못하고 멍청한 질문을 하는거라면 정말 죄송합니다 ㅠㅠ 바쁘신 와중에 긴글 읽어주셔서 감사합니다 그리고 강의 정말 잘보고있습니다 !!!

  • spring
jinkoo906 댓글 1 좋아요 6 조회수 621

webview 사용해보기 에서 에러가 나요.

미해결

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

안녕하세요 강사님 3:23초에 에뮬레이터 재 시작하라고 해서 했는데 console에 보니까 에러가 나더라구요. 내용이 긴데요 밑에 이런식으로 나오고 화면은 흰색으로만 나옵니다. 무엇이 잘못 된 걸까요? 메인과 홈스크린은 맨 밑에다가 적어뒀습니다! 알려주세요! Performing hot restart... Syncing files to device Android SDK built for x86... Restarted application in 865ms. E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebStorageHostApi.create (package:webview_flutter_android/src/android_webview.pigeon.dart:2036:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebViewHostApi.create (package:webview_flutter_android/src/android_webview.pigeon.dart:289:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebSettingsHostApi.create (package:webview_flutter_android/src/android_webview.pigeon.dart:1013:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebSettingsHostApi.setDomStorageEnabled (package:webview_flutter_android/src/android_webview.pigeon.dart:1061:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically (package:webview_flutter_android/src/android_webview.pigeon.dart:1087:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebSettingsHostApi.setSupportMultipleWindows (package:webview_flutter_android/src/android_webview.pigeon.dart:1113:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebSettingsHostApi.setLoadWithOverviewMode (package:webview_flutter_android/src/android_webview.pigeon.dart:1239:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebSettingsHostApi.setUseWideViewPort (package:webview_flutter_android/src/android_webview.pigeon.dart:1263:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebSettingsHostApi.setDisplayZoomControls (package:webview_flutter_android/src/android_webview.pigeon.dart:1288:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebSettingsHostApi.setBuiltInZoomControls (package:webview_flutter_android/src/android_webview.pigeon.dart:1313:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebViewClientHostApi.create (package:webview_flutter_android/src/android_webview.pigeon.dart:1476:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebSettingsHostApi.setUserAgentString (package:webview_flutter_android/src/android_webview.pigeon.dart:1163:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): #1 Future.wait.<anonymous closure> (dart:async/future.dart:521:21) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): #2 WebViewAndroidPlatformController.updateSettings (package:webview_flutter_android/webview_android_widget.dart:275:5) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebSettingsHostApi.setMediaPlaybackRequiresUserGesture (package:webview_flutter_android/src/android_webview.pigeon.dart:1189:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 DownloadListenerHostApi.create (package:webview_flutter_android/src/android_webview.pigeon.dart:1749:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): #1 Future.wait.<anonymous closure> (dart:async/future.dart:521:21) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): #2 WebView.setDownloadListener (package:webview_flutter_android/src/android_webview.dart:379:5) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebChromeClientHostApi.create (package:webview_flutter_android/src/android_webview.pigeon.dart:1861:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): #1 Future.wait.<anonymous closure> (dart:async/future.dart:521:21) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): #2 WebView.setWebChromeClient (package:webview_flutter_android/src/android_webview.dart:399:5) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null) E/flutter ( 5452): #0 WebViewHostApi.loadUrl (package:webview_flutter_android/src/android_webview.pigeon.dart:401:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): E/flutter ( 5452): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(error, java.lang.IllegalStateException: Trying to create a platform view of unregistered type: plugins.flutter.io/webview E/flutter ( 5452): at io.flutter.plugin.platform.PlatformViewsController$1.createForTextureLayer( PlatformViewsController.java:189 ) E/flutter ( 5452): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.create( PlatformViewsChannel.java:122 ) E/flutter ( 5452): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall( PlatformViewsChannel.java:60 ) E/flutter ( 5452): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage( MethodChannel.java:262 ) E/flutter ( 5452): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler( DartMessenger.java:295 ) E/flutter ( 5452): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger( DartMessenger.java:319 ) E/flutter ( 5452): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12) E/flutter ( 5452): at android.os.Handler.handleCallback( Handler.java:938 ) E/flutter ( 5452): at android.os.Handler.dispatchMessage( Handler.java:99 ) E/flutter ( 5452): at android.os.Looper.loop( Looper.java:223 ) E/flutter ( 5452): at android.app .ActivityThread.main( ActivityThread.java:7656 ) E/flutter ( 5452): at java.lang.reflect.Method.invoke(Native Method) E/flutter ( 5452): at com.android .internal.os.RuntimeInit$MethodAndArgsCaller.run( RuntimeInit.java:592 ) E/flutter ( 5452): at com.android .internal.os.ZygoteInit.main( ZygoteInit.java:947 ) E/flutter ( 5452): , null, null) E/flutter ( 5452): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607:7) E/flutter ( 5452): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:167:18) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): #2 TextureAndroidViewController._sendCreateMessage (package:flutter/src/services/platform_views.dart:1134:18) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): #3 AndroidViewController.create (package:flutter/src/services/platform_views.dart:762:5) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): #4 TextureAndroidViewController.setSize (package:flutter/src/services/platform_views.dart:1062:7) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): #5 RenderAndroidView._sizePlatformView (package:flutter/src/rendering/platform_view.dart:179:29) E/flutter ( 5452): <asynchronous suspension> E/flutter ( 5452): 메인은 import 'package:flutter/material.dart'; import 'package:untitled11/screen/home_screen.dart'; void main() { runApp( MaterialApp( home: HomeScreen( ), ), ); } 홈 스크린 import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; class HomeScreen extends StatelessWidget { const HomeScreen({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( body: WebView( initialUrl: 'https://blog.codefactory.ai', ), ); } }

  • 클론코딩
  • Flutter
joshuabys 댓글 1 좋아요 0 조회수 4394

useDebounce hooks 관련 질문드립니다

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

useDebounce함수 내에 있는 useEffect구문을 useEffect(() => {}, []); 이 형태로 바꿔주고 해봤습니다. 웹상에서 searchTerm을 입력할때마다 SearchPage가 리랜더링되고, 그 searchPage(index.js)에서 useDebounce를 사용하고 있고, 따라서 useDebounce에 있는 useEffect도 그때마다 재실행될 줄 알았습니다. 근데 아무리 searchTerm을 변경해줘도 useDebounce에 있는 useEffect는 한번만 실행됐습니다. 왜그런건가요? 제가 useEffect에 대해 잘못이해하고 있는거 같습니다만..

  • react
  • redux
  • tdd
  • typescript
  • Next.js
김창호 댓글 3 좋아요 0 조회수 464

영어단어 맞추기 게임 질문드립니다

미해결

남박사의 파이썬 기초부터 실전 100% 활용

import random words_dict = {'사자':'lion', '호랑이':'tiger','사과':'apple','비행기':'airplane'} words = [] for world in words_dict: words.append(words) random.shuffle(words) chance = 3 for i in range(0, len(words)): q = words[i] for j in range(0, chance): user_input = str('{}의 영어단어를 입력하세요'.format(q)) english = words_dict[q] if user_input.strip().lower() == english.lower(): print('정답입니다!') break else: print('틀렸습니다') if user_input != english: print('정답은 {}입니다'.format(english)) print('모든 문제를 제출했습니다') 전체 코드는 이렇게 작성했고 오류는 line 17, in <module> english = words_dict[q] TypeError: unhashable type: 'list' 이렇게 뜨는데 unhashable type을 구글링 해봐도 튜플 관련 글만 나와서 해결이 안되더군요. 강의를 다시 봐도 제가 실수한 부분을 모르겠어서 질문드립니다.

  • 웹-크롤링
  • python
Ratel C 댓글 2 좋아요 1 조회수 524

fail() 예외를 try -catch로 잡아도 에러 발생

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

예외를 try -catch로 잡아도 에러 발생하는데 이런 경우에는 어떻게 해야할까요?

  • 웹앱
  • JPA
  • spring-boot
  • java
  • spring
유현욱 댓글 2 좋아요 0 조회수 756

postman send 오류

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

이해가 안 가는 부분이 생겨서 질문 드립니다! postman send를 누르면 false가 나오는데 에러 사항이 다음과 같이 공란으로 나오고, 정작 몽고 DB 사이트에 들어가 콜렉션을 확인하면 데이터가 정상적으로 등록되어 있습니다. 서버에서 DB로 데이터가 정상 전달이 된다면 신경 안써도 되는걸까요..?

  • react
  • nodejs
전재민 댓글 1 좋아요 0 조회수 523

스프링 부트가 errorPage 자동으로 등록할 때 질문입니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링부트가 제공하는 기능 중 errorPage를 자동으로 등록해주고 /error 라는 경로로 기본 오류 페이지를 설정한다는 부분에서 이해가 되지 않는 것이 있습니다. 이 때 /error라는 경로는 URL 경로를 의미하는 것인가요 아니면 에러 페이지가 있는 파일 경로를 의미하는 것인가요?

  • spring
  • MVC
비가싫어요 댓글 1 좋아요 1 조회수 316

V1, V2 실행 시 OrderItem 차이

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요. 이전 강의에서 만든 v1 API와 이번 강의에서 만든 v2 API를 각각 호출해보면, 실행된 쿼리에 차이가 있는데요~ v1에서는 order_items 테이블을 N번(2번) 조회하고, v2에서는 조회하지 않습니다. 이 차이가 왜 발생하는지 궁금합니다. Order의 List<OrderItem> @OneToMany 매핑 시 cascade 설정을 해두었고, v1은 Order 조회 및 lazy loading 강제 초기화 이후에 orders가 그대로 응답으로 나가는 과정에서 order_items 테이블이 조회된 걸까요? 그렇다면 v2는 응답으로 사용하는 SimpleOrderDto를 생성할 때 order.orderItems를 불러오지 않기 때문에 order_items의 데이터가 필요하지 않아서 조회 쿼리가 발생하지 않은 거라고 보면 될까요? 코드는 아래와 같습니다.

  • spring
  • spring-boot
  • java
  • JPA
장환호 댓글 1 좋아요 0 조회수 357

질문 ) 15:00 fail() 사용 했는데 테스트 성공

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

왜 테스트 성공할까요? import문 다른걸로 바꿔도 성공이 뜨네요

  • JPA
  • spring-boot
  • 웹앱
  • java
  • spring
유현욱 댓글 1 좋아요 1 조회수 446

ViewModelProvider.Factory 질문 있습니다!

미해결

냉동코더의 알기 쉬운 Modern Android Development 입문

안녕하세요. 코드를 따라 치다가 도저히 해결이 안되는 부분이 있어 가져왔습니다! 자꾸 아래와 같이 나타나길래 viewmodel 버전도 바꿔보고 따라해봤지만 자꾸 에러가 나네요... 위와 같이 에러가 납니다. 그리고 그냥 무시하고 앱을 실행시키면 아래와 같은 에러가 나고요. Inheritance from an interface with '@JvmDefault' members is only allowed with -Xjvm-default option 혹시 몰라 Git 코드 놓겠습니다 https://github.com/Gseungmin/MVVMStudy

  • jetpack
  • kotlin
  • android
  • architecture
지지지지지 댓글 3 좋아요 0 조회수 551

Suspense 관련해서 질문드립니다

해결됨

프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 1

안녕하세요. 유익한 강의 너무 잘 듣고 있습니다. 다름이 아니라, 팩토리 패턴으로 리팩토링 한 코드에 대해 질문이 있어서 글을 적게 되었습니다. lazy를 사용하지 않고 import('') 구문 만으로는 동적으로 모듈을 임포트 할 수 없나요?? 컴포넌트가 모두 마운트 된 후 레이지 컴포넌트가 동적으로 임포트가 모두 완료된 상태인데도 suspense가 꼭 필요하나요?? 레이지 컴포넌트에 접근할 땐 이미 임포트가 완료된 후라는 생각이 들어서 여쭤봅니다!

  • react
  • devtools
정세연 댓글 1 좋아요 2 조회수 392

using UnityEngine.EventSystems; 음....

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

안녕하세요. 좋은 강의 너무 감사합니다. 강의 보면서 궁금하게 있어서 찾아보고 이리 저리 해봐도 이해가 잘 안되는 문법이 있어서 질문 드립니다. 이전 UI 연습에서 사용했던 UI_Button.cs에서는 public void OnButtonClicked(PointerEventData data) 에서 PointerEventData 를 사용하기 위해 using UnityEngine.EventSystems; 선언해주었는데 이번에 만든 UI_Inven_Item.cs에서는 ItemIcon을 바인딩하고 이벤트를 람다로 연결할때는 Get<GameObject>((int)GameObjexts.ItemIcon).AddUIEvent((PointerEventData) => { Debug.Log($"아이템 클릭! {_name}");}); using UnityEngine.EventSystems;를 선언안해주도 되더라고요.. 이리 저리 시도해보고 알아보는데 왜 그런지 잘 모르겠습니다.. 차이가 있다면 UI_Inven_Item은 AddUIEvent가 확장 메소드에서 호출이 되고 UI_Button에서는 직접 호출이 되는데.. 잘 모르겠습니다. 어느곳에서는 PointerEventData를 사용하기 위해 using EventSystems를 선언해줘야하고 어느부분에서는 안해주도되고 많이 많이 궁금한니다. ㅠ

  • unity
  • C#
CodeKimbap 댓글 1 좋아요 0 조회수 426

@Configuration은 한번만 달면 되는지 알고싶어요

미해결

스프링 핵심 원리 - 기본편

@Configuration은 @ComponentScan위에다가만 달면 되는지 알고싶어요. 아니면 다른 @Component가 붙은 클래스가 @Autowired 붙은 생성자가 있는 클래스에나 다 붙여줘야 하는지 알고 싶어요

  • oop
  • spring
유찬희 댓글 1 좋아요 0 조회수 393

Editor 질문

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

아래글들을 참고하여 @NotBlank @NotNull 등을 제거하고 다음과 같이 PostEditor 를 만들었습니다 @Getter public class PostEditor { private String title; private String content; @Builder public PostEditor(String title, String content) { //this.title = (title != null) ? title : this.title; //this.content = (content != null) ? content : this.content; if(title!=null){ this.title = title; } if(content!=null){ this.content = content; } } } 테스트를 위해 @Test @DisplayName("글 제목 수정") void test5(){ //given Post post = Post.builder() .title("호들맨") .content("반포자이") .build(); postRepository.save(post); PostEdit postEdit = PostEdit.builder() .title("호들걸") .build(); //when postService.edit(post.getId(), postEdit); //then Post changedPost = postRepository.findById(post.getId()) .orElseThrow(() -> new RuntimeException("글이 존재하지않습니다. id=" + post.getId())); assertEquals("호들걸", changedPost.getTitle()); assertEquals("반포자이", changedPost.getContent()); } 하지만 content가 null 값으로 됩니다. ㅜ service 코드는 강의 내용과 같습니다 무엇이 문제일까요

  • Spring Security
  • vuejs
  • aws
  • spring-boot
  • JPA
ChanYoung Kim 댓글 1 좋아요 1 조회수 622

첨부파일

미해결

모의해킹 실무자가 알려주는, XSS 공격 기법

안녕하세요 첨부파일이 어디에있는지 안나와서 문의드립니다

  • 모의해킹
현성 댓글 1 좋아요 1 조회수 239

20분경에

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

컨트롤러에서 엔티티를 생성하지 않고 update 서비스를 만들어서 변경할 값만 dto를 만들던지, 파라미터를 전달하여 서비스에서 update를 하셨는데 saveItem을 사용하면 merge가 돼서 save를 사용하지 않고 update를 만들어서 변경감지를 사용한다는것까진 이해가 됐는데요 update를 만들때 왜 꼭 dto를 만들거나 변경할 파라미터만 넘기는건지는 잘 이해가 되지 않습니다. 좀 더 명확하게 지정하여 유지보수성을 증가시키기 위함뿐인건가요? 그 외에 merge가 실행됐을때 같은 오류가 생기는건 아닌거죠?? 그렇게 웹사이트를 만들다보면 dto가 엄청 많이 만들어질거 같은데 그게 맞는건가요? 저도 모르게 편의성을 위해 객체 자체를 넘길거 같아서 정확한 이유를 알기 위해 질문드립니다~

  • java
  • JPA
  • 웹앱
  • spring-boot
  • spring
정지죤 댓글 1 좋아요 0 조회수 269

코딩할때 설계가 너무 어렵게 느껴집니다.

미해결

홍정모의 따라하며 배우는 C언어

강의내용에 대한 질문은 아니지만 너무 답답해서 질문드립니다. 교수님 강의도 듣고 혼자 공부도 해서 c언어를 어느정도 이해하고 있다고 생각하는데 조금 어렵거나 복잡한 문제를 풀게 되면 설계하기가 너무 힘듭니다. 전 코딩을 하기 전에 먼저 설계를 하고 코딩을 하는게 맞다고 생각해서 설계 후 코딩을 하는식으로 문제를 풀고 있습니다. 간단한 문제들은 쉽게 설계가 가능하고 그 설계를 바탕으로 코드를 구현하고 있는데 복잡한 문제들을 풀때면 몇시간 며칠을 고민해도 접근자체가 잘 안됩니다. 이게 c언어에 대한 이해가 부족해서 일어나는 현상인지 아니면 따로 공부해야 하는 지식이 있는건지 궁금합니다.

  • c
lchung117 댓글 1 좋아요 0 조회수 307

강의 자료 요청 합니다.

미해결

머신러닝 엔지니어 실무

화면 해상도가 낮아 구성도가 잘 보이지 않습니다. 강의자료 다운로드는 어디서 하는지?

  • 머신러닝 배워볼래요?
정일석 댓글 0 좋아요 0 조회수 333

naming... 그 심오한 세계에 대하여.

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

클래스명.... 언제나 분쟁의 소지가 가득한 녀석이죠. 전 그냥 제 멋대로 (정확히는 어차피 제 개인플젝이라) 아래와 같이 규칙을 세웠습니다. controller 쪽의 클래스명은 get/post/put/patch 를 앞에 붙임 service쪽은 create/read/update/delete 를 붙임 @GetMapping("/{memberId}") public MemberResponse getMember(@PathVariable Long memberId) { return memberService.selectMember(memberId); } 눈치 채셨겠지만, 컨트롤러쪽은 http method에 가까우니 get, post 등을 붙인거고 service단은 DB단에 가까우니 CRUD를 넣어줌. 뭐 이런 똥같은 논리 인데, 더 경험많은 친구넘에게 컨설팅 받으니 '굳이 그럴필요 있음? 걍 똑같이 getMember로 통일 ㄱㄱ 하지?? 라고 설득 당해버렸습니다. 실은 클래스명을 둘다 동일하게 쓴다는 것도 저는 선호하지 않아서..... 저는 좀 자세히 길게 쓰는 주절주절 스탈이라.... 당연 더 잘하는 친구라 깨갱하고 따라야 하겠지만... 그래도 최후의 보루로 문의드립니다. 이런 스탈은 안쓰는건가요? ㅠ

  • vuejs
  • aws
  • spring-boot
  • Spring Security
  • JPA
jcknow 댓글 1 좋아요 1 조회수 389

리터럴을 사용하지 않았을때 이스케이프 문자의 의미

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

교재 PDF 23쪽을 보면 그냥 사용하면 문자와 표현식을 각각 따로 더해서 사용해야 하므로 다음과 같이 복잡해진다. th:onclick="'location.href=' + '\'' + @{/basic/items/add} + '\''" 이렇게 나와있는데, 여기서 '\''(이스케이프)가 필요한 이유가 무엇인지 궁금합니다.

  • MVC
  • spring
지평선 댓글 1 좋아요 0 조회수 277

인기 태그

인프런 TOP Writers

주간 인기글