개남님 안녕하세요. 두 가지 여쭐 것이 있습니다! 도메인 영역에 entitiy가 아니라 model 폴더를 위치하셨던데, freezed로 생성한 이상 각종 메소드가 들어가기에 "정석적인 속성만 존재하는 entitiy라고 보기엔 조금 그래서 model로 구분하셨구나~"하고 넘어갔습니다. 맞을까요?? 글구 company_listing_entitiy는 data 레이어에 속하는데 왜 entity인지 궁금합니다. 제가 아직 강의 초반이라 이해가 부족한 것인지.. 보통 data 레이어에서 api통신/로컬db와 관련된 비즈니스 로직에 사용할 model을 정의하고, 맵퍼가 도메인의 entity로 반환해 주는 구조로 이해했는데 이러면 CompanyListingEntity가 아니라, CompanyListingModel이 맞지 않나요? 제가 너무 시야를 좁게 보는 것 같기도하고.. 헷갈려 여쭙니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오) [질문 내용] System.out.print(i+1+"번째 주문 정보 입력"); System.out.print("상품명 : "); String productName = scanner.nextLine(); System.out.print("가격 : "); int price = scanner.nextInt(); System.out.print("수량 : "); int quantity = scanner.nextInt(); scanner.nextLine(); //입력 버퍼를 비우기 위한 코드 price 입력 받을 때와 quantity 입력 받을 때 둘다 int형으로 입력을 받는데 quantity 수량 받을 때는 nextLine을 해주는데, 왜 price를 받을 때는 nextLine을 안해줘도 되는것일까요?
강의 너무 잘보고 있습니다 test 코드 실습 중에 생긴 문제인데요 def test_update_todo(client, mocker): mocker.patch.object(ToDoRepository, "get_todo_by_todo_id", return_value=ToDo(id=1, contents="todo", is_done=True)) mocker.patch.object(ToDoRepository, "update_todo", return_value=ToDo(id=1, contents="todo", is_done=True)) body = { "is_done": False } response = client.patch("/todos/1", json=body) assert response.status_code == 200 assert response.json() == {"id": 1, "contents": "todo", "is_done": True} # 404 mocker.patch.object(ToDoRepository, "get_todo_by_todo_id", return_value=None) response = client.patch("/todos/1", json=body) assert response.status_code == 404 assert response.json() == {"detail": "ToDo Not Found"} 이런식으로 test 코드를 작성한 다음에 리팩토링 과정에서 잘못선택되서 todo_id가 빠진 상태로 코드를 올렸습니다 @router.patch("/{todo_id}", status_code=200) def update_todo_handler( todo_id: int, is_done: bool = Body(..., embed=True), todo_repo: ToDoRepository = Depends()): todo: ToDo | None = todo_repo.get_todo_by_todo_id() # 이 부분 todo_id를 빼버림 if todo: todo.done() if is_done else todo.undone() todo: ToDo = todo_repo.update_todo(todo) return ToDoSchema.from_orm(todo) else: raise HTTPException(status_code=404, detail="ToDo Not Found") 이게 제가 잘못 작성한 코드고 todo.get_todo_by_todo_id 함수에 parameter를 안넣고 pytest를 실행해도 mocker.patch로 지정된 값이 넘어오게 되니까 에러가 나지 않더라구요 실행하면 당연히 500 internal error가 발생하는데 혹시 이런 경우까지 방지하도록 test 코드를 바꾼다면 어떻게 바꿔야할까요?
파일 경로를 복사해서 그대로 붙여넣기하니, SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 라는 내용이 뜹니다. 자세히 보니, 파일 경로 내에서, \ 말고 \\ 로 입력하니 되던데 왜 그런가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 연관관계 메서드 관련해서 질문 있습니다. <엔티티 설계시 주의점> 26:30에서 public void addchildCategory(Category child){ this.child.add(child); child.setParent(this); } 인 것을 확인할 수 있습니다. 혹시 아래와 같은 방법은 하면 안되는지 궁금하여 질문드립니다. public void addchildCategory(Category child){ this.child.add(child); this.parent = child; }
Controller단의 Dto를 Service 전용 Dto로 변환해서 넘기는 방법을 알려주셨는데 Controller단에서 받은 Dto의 컬럼들을 모두 풀어서 Service단 으로 넘겨주는 방법은 어떻게 생각하시는지 궁금합니다. 이렇게 하면 순수한 자바코드로 Service단 코드를 작성할 수 있을 거라고 생각하는데 강사님의 생각 알려주시면 감사하겠습니다.
0:59:00 전 내용입니다. 명세를 정한다 컨트롤러 @Valid 검증을 작성한다. RestDocs 를 작성한다 가짜 데이터를 넣는다. 배포한다. 그 뒤 서비스와 리포지토리를 작성한다. 라고 정리를 해봤습니다. 그런데 여기서 궁금한게 4번인데요 가짜 데이터를 넣는다는 뜻을 잘 모르겠습니다. 테스트 환경에서는 자유롭게 docs/index.html 로 접근을 하고 라이브 환경에서는 해당 bootJar를 구문을 제거하고 배포하시는 건가요?
인텔리제이 IDE 설치하려 하는데요. 대학생은 신청하면 무료라고 해서 제 학교계정을 입력하고 진행하려했습니다. 이런식으로 뜨면서 더이상 진행이 안되서 일단 저 기업에 제 재학증명서를 원서로 보내놓은 상태인데요. 이렇게 뜨는게 지금 저만의 문제인지 어떻게 해결할 수 있는건지 궁금합니다.
// Online C++ compiler to run C++ program online #include <bits/stdc++.h> using namespace std; // 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다. // 어떤 지역의 높이 정보가 주어졌을 때, 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 계산하는 프로그램을 작성하시오. ////입력 : // 1. 첫째 줄에는 어떤 지역을 나타내는 2차원 배열의 행과 열의 개수를 나타내는 수 N (N은 2 이상 100 이하의 정수) // 2. 둘째 줄부터 N개의 각 줄에는 2차원 배열의 첫 번째 행부터 N번째 행까지 순서대로 한 행씩 높이 정보가 입력된다. // 3. 높이는 1이상 100 이하의 정수이다. ////출력 : //첫째 줄에 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 출력한다. int n; int arr[100][100]; int visited[100][100]; int dx[4] = {0,0,1,-1}; int dy[4] = {1,-1,0,0}; priority_queue<int> safeAreas; void dfs(int y, int x, int height){ //방문처리 visited[y][x] = true; //4방향 탐색 for(int i=0; i<4; i++){ int nx = x + dx[i]; int ny = y + dy[i]; //탐색 x 조건 if( y < 0 || x < 0 || y >= n || x >= n ) continue; // out of bound if( visited[ny][nx] ) continue; if( arr[ny][nx] <= height ) continue; //물에 잠긴 지역 // 방문 dfs(ny,nx,height); } } // find connected graphs int getSafeAreaCnt(int height){ memset(visited, 0, sizeof(visited)); int connected = 0; for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ if(!visited[j][i] && arr[j][i] > height ){// 방문하지 않았고, safe area dfs(j,i, height); connected++; } } } return connected; } int main() { //입력 cin >> n; string input; int maxHeight=0; for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ cin >> arr[j][i]; maxHeight = max( maxHeight , arr[j][i] ); // 1. 높이의 max 값을 구한다. } } for(int height=0; height <= maxHeight; height++){ safeAreas.push( getSafeAreaCnt( height ) ); } cout << safeAreas.top() << '\n'; } https://www.acmicpc.net/problem/2468 안녕하세요 큰돌님. segmentation fault 나는데 어디서 나는지 잘 모르겠습니다 ㅠ priority queue 때문인 거 같은데 한 번 더 확인 해보겠습니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 코드팩토리 디스코드 https://bit.ly/3HzRzUM Flutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! 플러터 시뮬레이터로 로그인을 시도하는데 아래와 같은 오류가 나요..[VERBOSE-2:dart_vm_ initializer.cc (41)] Unhandled Exception: DioException [connection error]: The connection errored: Connection refused This indicates an error which most likely cannot be solved by the library. Error: SocketException: Connection refused (OS Error: Connection refused, errno = 61), address = 127.0.0.1, port = 534693000번 포트가 아니라 53469로 사용하고 있어서 나는 오류인 것은 알겠는데,어떻게 시뮬레이터를 3000번 포트에서 실행할 수 있을지 모르겠어요.