[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] @NotBlank , @NotNull와 같은 Bean Validation 관련 어노테이션을 통해 검증할 경우 동적으로 파라메터를 지정해서 메시지를 처리할 수는 없는 것인가요? 예를 들어 Bean Validation으로 메시지를 지정할 땐 @NotBlank("값은 필수여야합니다.")와 같이 기본 메시지를 지정하던가 혹은 error.properties 와 같은 메시지 코드 관리하는 properties 파일에서 NotBlank=값은 필수여야합니다. 와 같이 메시지 코드를 통하여 메시지를 지정할 수 있는데 이때 {0} , {1}을 넣음으로써 동적으로 파라메터를 지정해서 바인딩하는 방법을 모르겠어서 여쭤봅니다 !
1.어셈블리코드의 경우에는 CPU의 명령어라고 하셨는데 그렇다면 CPU에 의존적인 상황인데 왜 컴파일러마다 어셈블리코드가 달라질수있는건가요? 2. 같은 컴파일러로 다른 어셈블리코드가 나온다는거는 운영체제가 해당 CPU에 맞는 어셈블리변환을 해주는거 같은데 맞을까요? 3.RISC의 경우에는 어차피 연산 코드부분의 크기가 같기 때문에 해당 부분의 비트만 해석하면되지만 CISC의 경우에는 크기가 유동적이고 데이터도 바이트코드 연산코드도 같은 바이트 코드라면 CPU는 해당부분을 어떻게 구분하는지 궁금합니다 ! 4.명령어의 크기는 일반적으로 워드 크기와 같을까요? 5.메모리 주소 하나당 크기는 메모리에의해서 결정지어지는건가요? 아니면 CPU에 의해서 결정지어지는건가요? 6.ALU가 계산을 할때 레지스터가 피연산자를 제공해주고 ALU는 계산된값을 레지스터에 담는다 해당 부분에서 제어장치의 제어신호없이 레지스터나 ALU가 각각 전달을 하는건가요? 아니면 모든 데이터 전달과정에는 반드시 제어장치의 제어신호가 포함된다고 보면될까요? 7. ALU계산결과가 레지스터값보다 큰경우엔 어떻게 되나요? 8.명령어 레지스터와 메모리버퍼 레지스터의 차이가 명확하게 이해가 가지않습니다 .. 메모리 버퍼는 데이터 버스를 통해서 데이터를 받긴하지만 그대로 명령어 레지스터로 전달을 해준다면 메모리버퍼레지스터에서 바로 명령어를 전달해줘도 되는데 두개가 구분되서 존재한다는거는 명확한 이유가 있을꺼같은데 잘 모르겠습니다 9.직접 주소 지정방식의 경우에는 ex)기존 오퍼랜드에 1바이트데이터를 저장할수있던것을 메모리 주소 참조를 통해 2바이트를 저장할수있기 때문에 데이터 크기가 커진다는게 이해가 갑니다. 간접주소 지정방식의 경우에는 하지만 이런식으로 데이터 크기자체가 커지는게 아닌 명령어 한개당 참조할수있는 주소가 많아지는거같은데 이게 맞을까요? 스택주소 지정방식에서의 스택은 프로세스 하나당의 스택 영역이 아닌 메모리에서 스택범위가 따로존재하는건가요? 그리고 검색해보니 해당부분이 커널영역이라고 하던데 맞을까요? 그리고 현재 대부분의 컴퓨터에는 MMU를 활용한 베이스지정레지스터 방식과 스택 방식이 사용이 되나요? 명령어 파이프라이닝에서 만약에 실행 단계 ALU계산단계에서 ALU가 한클럭에 끝낼수없는 복잡한 계산의 경우에는 인출 해석 여러번의 실행후 저장의 루틴인가요? 아니면 여러번의 인출 해석 실행 저장의 루틴 방식일까요? 그리고 만약 슈퍼스칼라를 사용하게되면 같은 클럭내에서 실행이 겹치기떄문에 ALU를 명령어 2개가 사용이 되는데 구조적위험이 반드시 생겨서 아예 못할꺼같은데 아주 조금의 시간차를 동시에 실행하는것처럼 파이프라이닝을 구성하나요?
# result를 list로 만들고 concat을 통해 DataFrame으로 만듭니다. # concat으로 데이터프레임을 합쳐줄때는 리스트 형태로 각 데이터프레임을 넣어주어야 합니다. pd.concat(result.tolist()) -------------------------------------------------------- InvalidIndexError: Reindexing only valid with uniquely valued Index objects df_item = pd.concat(item_info, ignore_index=True)도 해보았고, 중복값도 없다고 나오는데 계속 이 부분에서 동일한 에러가 뜹니다.. 어떻게 해결해야 할까요? 이 앞부분까지는 모두 정상출력되었습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx ) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG ) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Member findMember = em.find(Member.class, member.getId()); em.detach(findMember); System.out.println("findMember.getUsername() = " + findMember.getUsername()); 프록시를 detach() 했을땐 이름 조회 안되고, find()로 했을 땐 detach() 해도 이름 조회되는게 프록시는 껍질 엔티티를 받는거라서 detach() 하면 안되고, find 로 받으면 실제 엔티티라서 detach() 해도 이름 조회가 되는건가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 테스트케이스 4번, 5번에서 에러가 뜹니다. 어디가 잘 못 된건지 궁금합니다. import java.io.*; import java.util.*; class Node implements Comparable<Node>{ int v1; int v2; double c; Node(int v1, int v2, double c) { this.v1=v1; this.v2=v2; this.c=c; } @Override public int compareTo(Node o) { //double형은 이렇게 한다. if(this.c<o.c) return -1; else return 1; } } public class Main { public static int n,m; public static int[] unf; public static ArrayList<Node> graph = new ArrayList<>(); public static ArrayList<Integer> x = new ArrayList<>(); public static ArrayList<Integer> y = new ArrayList<>(); public static int find(int v) { if(v==unf[v]) return v; else return unf[v] = find(unf[v]); } public static void union(int a, int b) { int fa = find(a); int fb = find(b); if(fa!=fb) unf[fa] = fb; } public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); unf = new int[n]; for(int i=0; i<n; i++) unf[i] = i; for(int i=0; i<n; i++) { int a=sc.nextInt()-1; int b=sc.nextInt()-1; x.add(a); y.add(b); } for(int i=0; i<n; i++) { //점과 점 사이의 거리를 구하는 구문 for(int j=i+1; j<n; j++) { double dis = Math.sqrt((x.get(j)-x.get(i)) *(x.get(j)-x.get(i)) + (y.get(j)-y.get(i)) * (y.get(j)-y.get(i))); graph.add(new Node(i,j,dis)); } } for(int i=0; i<m; i++) { //이미 연결되어 있는 점들은 union해준다 int a=sc.nextInt(); int b=sc.nextInt(); union(a-1,b-1); } Collections.sort(graph); double answer=0; for(int i=0; i<graph.size(); i++) { //크루스칼 int fa = find(graph.get(i).v1); int fb = find(graph.get(i).v2); double cost = graph.get(i).c; if(fa!=fb) { //union(fa, fb); unf[fa] = fb; answer+=cost; } } System.out.format("%.2f", answer); //소수점 출력은 System.out.format으로 } }
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다) - 이외의 문의등은 평생강의이므로 양해를 부탁드립니다 - 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다 - 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 리스트변수에서 음수 데이터를 삭제하고 양수만 가지는 리스트 변수를 출력하는 문제입니다. 저는 답변을 : num_list=[0,-11,31,22,-11,33,-44,-55] for num in num_list: if num<0: num_list.remove(num) print(num_list) 이렇게 작성하였는데 출력값이 [0, 31, 22, 33, -55] 이렇게 나오더라구요 ㅠㅠ 마지막에 -55는 왜 들어가버린거죠..?
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 다른 필드 주입 관련 게시글을 다 보고 왔는데 제가 이해한 것이 맞는지 모르겠습니다. 강의에서 나온 코드를 보면 nullpointexception이 발생한다고 했는데 생각하기엔 그렇구나 하는데 뭔가 완벽히 이해가 안갑니다. 그리고 외부에서 변경이 불가능 하다고 했는데 생성자 주입에서 변경이 불가능 한 것과는 다른 건가요?
'인스턴스 메서드가 인스턴스에 소속되어 있다'는 부분이 잘 이해가 되지 않아 질문드립니다. 이전 강의에서 메서드는 힙 영역이 아닌 메서드 영역에 존재한다고 배웠습니다. ClassA라는 클래스가 존재하고 해당 타입 인스턴스를 2개 만들었다고 가정해보겠습니다. 그리고 참조변수를 통해 인스턴스에 존재하는 인스턴스 메서드를 호출하게 되면, 메서드 영역에 존재하는 동일한 메서드 코드가 호출됩니다. 이 부분이 '인스턴스 메서드는 인스턴스에 소속'이라는 부분과 충돌되는 것처럼 느껴지는데요. 여기에서 말하는 '소속'이 물리적으로 메모리 상 같은 영역에 소속되어 있다는 뜻이 아니라, 인스턴스를 생성해야 인스턴스 메서드를 사용할 수 있기 때문에 인스턴스에 소속되어 있다고 하신걸까요...??
function openAround(rI, cI) { // 주변 공간 확인 setTimeout(() => { // stack overflow 방지 (콜백큐에 저장) const count = open(rI, cI); if (count === 0) { openAround([rI - 1], [cI - 1]); // 대괄호 적용 시 아래 사진처럼 됨 openAround(rI - 1, cI); openAround(rI - 1, cI + 1); openAround(rI, cI - 1); openAround(rI, cI + 1); openAround(rI + 1, cI - 1); openAround(rI + 1, cI); openAround(rI + 1, cI + 1); } }, 0) } 위 코드로 실행시키면 지뢰 좌측만 힌트 숫자가 사라집니다. 대괄호로 인수가 배열로 되었을 때 함수가 어떻게 작동되는지 궁금합니다.
왜 코드들을 복붙하기만 하면 꼬일까요? 1. 복붙한 코드들의 API명을 새 플젝명으로 바꿔써도 빌드에 문제가 생기고, 에러들이,내가 만들지않은 엔진의 코드들이 에러났다고 표시가 되요. 2. 그리고 GameBase가 생기질 않았습니다. 다시보니,이전의 다른 플젝들도요. 별도의 세팅이 필요한가요? "디버깅을 위한 편집기호"는 설치했습니다. 3. 파일복사에서 너무 해매서.,언리얼플젝을 통으로 카피해서,vs파일을 열어 컴파일을 하니, 그 플젝은 디버깅이 안되고, 복사후, 새로 추가한 클래스는 컨텐츠창에 안뜹니다.vs에는 있습니다. <-이렇게 쓰면 안되는건가요? 4. 결국은 그래서, 강의바뀔때마다, 같은걸 다시 만들고있는데,(코딩연습으로는 좋겠지만...) 강의에서 멀쩡히 되는부분이 안되서 너무 찜찜합니다. 5.3사용합니다.
저번 강의에서는 viewModel 초기화 시에 Activity에 viewModel을 선언하고 Fragment에서는 viewModel 선언 시 by activityViewModels 를 사용했던 기억이 있습니다. 현재 해당 강의를 실행해볼 환경이 아니여서 그런데 강의 코드대로 구동을 할 경우는 화면 회전 시 카운터 값이 0으로 초기화 되게 되나요? 아니면 LiveData를 사용할 경우 해당 viewModel 초기화를적용하지 않아도 데이터 값이 유지되게 되나요?
안녕하세요 선생님. 예제도 다 맞는데 4%에서 틀렸습니다.가 나옵니다 ㅠㅠ 제 코드에 어느 부분이 문제인지 모르겠어서 질문드립니다.. 아래는 제가 제출한 코드입니다. #include<bits/stdc++.h> using namespace std; typedef long long ll; ll x, y, z, lo, hi, ret = -1; bool check(ll mid) { ll change_z = (double)(y + mid) / (x + mid) * 100; return change_z > z; } int main() { cin >> x >> y; // x : 게임 횟수, y : 이긴 횟수, z : 승률(y / x * 100) z = (double)y / x * 100; lo = 1; hi = 1e9; while(lo <= hi) { ll mid = (lo + hi) / 2; if(check(mid)) { hi = mid - 1; ret = mid; } else lo = mid + 1; } cout << ret << "\n"; }
git 사용이 처음이라 거의 모든 작업을 dev2 브런치에서 진행해서 dev2를 main에 덮어쓰고 싶은데 checkout하는 과정에서 위와 같이 오류가 납니다 main 브런치로 checkout 할 때는 오류가 안나는데 dev2만 저래요 dev2에 작업 내용 다 있어서 날아가면 안되는데 ㅠㅜ 방법이 있을까요 구글링 해보니 untracked 파일들을 삭제하면 된다고 하는데 gradle 관련 파일들이라 지우면 안될 것 같아서요 답변 기다리겠습니다!