묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨QGIS 파이썬 자동화 (벡터편) Ver.2
qgis에서 오차범위 내의 객체만 속성 결합을 할 수 있나요?
qgis에서 차량의 주행데이터(point)와 표준노드링크의 링크(line)의 필드 속성을 결합시키고자 합니다.그런데 차량데이터의 heading 값과 링크의 heading값을 오차 범위 내에서 고려하여,차량데이터 필드에 오차 범위 내의 가장 가까운 링크 아이디를 넣는 것이 목표입니다.그래서 heading값의 오차범위가 조건이 되어서 속성을 결합하는 것이 필요할 것 같은데혹시 방법을 아시나요...? 공간 처리 툴박스를 이용하고 싶은데 '최근접 거리를 이용하여 속성을 결합' 과 같이 위치적인 것만 고려하는 기능만 보여서요 ㅠㅠ표현식이나 파이썬이나 플러그인이나 혹시 방법이 있을까요..?
-
해결됨
쿼리DSL 연관관계 JOIN하여 DTO로 조회하기
안녕하세요 영한님의 강의를 맹신하는 대학생 개발자입니다!다름이 아니라 플랫폼을 개발하고 있는데 연관관계가 포함된 People과 PeopleProfile 사이에서 join을 통해 값을 가져오려고 합니다. PeopleEntity@Getter @Entity @Table(name = "people") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class People extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "people_id") private Long peopleId; @Column(name = "nickname") private String nickname; @Column(name = "email") private String email; @Column(name = "phone_number") private String phoneNumber; @Enumerated(EnumType.STRING) @Column(name = "people_type") private PeopleType peopleType; @Column(name = "profile_image_uri") private String profileImageUri; @Column(name = "account_number") private String accountNumber; @OneToOne(cascade = CascadeType.REMOVE) private Member member; @OneToOne(mappedBy = "people") private PeopleProfile peopleProfile; ... } PeopleProfile@Entity @Getter @Table(name = "people_profile") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class PeopleProfile { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "people_profile_id") private Long peopleProfileId; @Column(name = "introduction") private String introduction; @Column(name = "activity_area") private String activityArea; @Column(name = "education") private String education; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "people_id") private People people; @ElementCollection @CollectionTable(name = "people_hashtags", joinColumns = @JoinColumn(name = "people_profile_id")) @Column(name = "hashtags_id") private List<Hashtag> hashtags = new ArrayList<>(); ... } Hashtag@Embeddable @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Hashtag { @Column(name = "hashtag") private String value; private Hashtag(String value) { this.value = validate(value); } private String validate(String value) { return value; } public static Hashtag from(String value) { return new Hashtag(value); } }hashtag는 값 타입으로 구현했습니다. PeopleDTO@Getter public class CardPeopleResponse { @NotNull private Long peopleId; @NotNull private String nickname; @NotNull private String peopleType; @NotNull private String profileImageUri; @Valid private CardPeopleProfileResponse profile; @QueryProjection public CardPeopleResponse(final Long peopleId, final String nickname, final People Type peopleType, final String profileImageUri, @Valid CardPeopleProfileResponse profile) { this.peopleId = peopleId; this.nickname = nickname; this.peopleType = peopleType.name(); this.profileImageUri = profileImageUri; this.profile = profile; } }PeopleProfileDTO@Getter public class CardPeopleProfileResponse { @NotNull private final String activityArea; @NotNull private final List<String> hashtags; @NotNull private final Integer completedProjectsCount; @NotNull private final Integer interestsCount; @QueryProjection public CardPeopleProfileResponse(final String activityArea, final List<Hashtag> hashtags, final Integer completedProjectsCount, final Integer interestsCount) { this.activityArea = activityArea; this.hashtags = hashtags.stream().map(Hashtag::getValue).toList(); this.completedProjectsCount = completedProjectsCount; this.interestsCount = interestsCount; } } 쿼리DSLprivate List<CardPeopleResponse> getCardPeopleContent(Pageable pageable) { return queryFactory .select(new QCardPeopleResponse( people.peopleId, people.nickname, people.peopleType, people.profileImageUri, new QCardPeopleProfileResponse( peopleProfile.activityArea, peopleProfile.hashtags, Expressions.constant(0), Expressions.constant(0) ) )) .from(people) .join(people.peopleProfile, peopleProfile) .orderBy(getPeopleOrderSpecifiers(pageable.getSort())) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); } completedProjectsCount와 interestsCount는 추후 개발 예정이므로 Expressions.constant(0)으로 대체 해뒀습니다. 위와 같이 서버를 구현하였을때, 서버 구동은 문제 없이 됩니다. 문제점2024-02-22T16:44:50.163+09:00 DEBUG 3487851 --- [io-52003-exec-1] org.hibernate.SQL : select p1_0.people_id, p1_0.nickname, p1_0.people_type, p1_0.profile_image_uri, p2_0.activity_area, h1_0.hashtag from people p1_0 join people_profile p2_0 on p1_0.people_id=p2_0.people_id join people_hashtags h1_0 on p2_0.people_profile_id=h1_0.people_profile_id order by p1_0.people_id desc offset ? rows fetch first ? rows only 2024-02-22T16:44:50.274+09:00 ERROR 3487851 --- [io-52003-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.InvalidDataAccessApiUsageException: argument type mismatch] with root cause java.lang.IllegalArgumentException: argument type mismatch at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na] at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[na:na] at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[na:na] at com.querydsl.core.types.ConstructorExpression.newInstance(ConstructorExpression.java:144) ~[querydsl-core-5.0.0.jar!/:na] at com.querydsl.core.types.FactoryExpressionUtils.compress(FactoryExpressionUtils.java:155) ~[querydsl-core-5.0.0.jar!/:na] at com.querydsl.core.types.FactoryExpressionUtils.access$100(FactoryExpressionUtils.java:28) ~[querydsl-core-5.0.0.jar!/:na] at com.querydsl.core.types.FactoryExpressionUtils$FactoryExpressionAdapter.newInstance(FactoryExpressionUtils.java:62) ~[querydsl-core-5.0.0.jar!/:na] at com.querydsl.core.support.ConstantHidingExpression.newInstance(ConstantHidingExpression.java:87) ~[querydsl-core-5.0.0.jar!/:na] ...다음과 같은 argument type mismatch에러가 발생합니다. DTO에서 값을 받아와서 생성자에서 데이터 타입을 변경하면 문제가 되는걸까요? 이러한 경우에는 보통 어떻게 조회하는지 궁금합니다!
-
미해결스프링 핵심 원리 - 기본편
섹션 4 <컨테이너에 등록된 모든 빈 조회> 질문
ApplicationContextInfoTest 클래스에서 질문이 있는데요 기존에는 스프링 컨테이너를 생성해주는 코드를ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 였는데 이번 강의에서는 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); 로 사용하신 거에 대해서 ApplicationContext로 선언했을 때와 AnnotationConfigApplicationContext로 선언한 것의 차이점이 궁금합니다.
-
미해결[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
db에 이미지 데이터 저장
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 의료영상 데이터 관리를 위해서 db셋업을 해보려고 하는데 이미지데이터같은 경우에는 어떤방식으로 db에 저장을 할수있을까요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
오류관련문의
에뮬레이터에서도 기기에서도 앱이 강제 종료 되며 오류가 납니다. 다음은 앱의 구성 파일입니다 😀(링크로 공유)(참고 : 미완성 파일이지만, 오류가 나서 중간에 올림)(https://www.dropbox.com/scl/fi/1kfq163m0uop1xyhrdudy/listview_ex.zip?rlkey=dz9yhyhrnb6slgyufjl6pam4p&dl=0)
-
미해결김영한의 실전 자바 - 기본편
수강완료 후 스프링 입문
안녕하세요 선생님 java기본 수강을 완료하고 중급과정을 기다리는 학생입니다.출시전까지 스프링 입문 강의를 듣고 공부를 진행하려고 했습니다. 이에 스프링 입문 강의 part2.스프링 웹 개발 기초까지 들었습니다. 그러나 part 3. 회원 관리 예제부터나오는 <>코드 및 람다코드를 직면하여 아 지금은 스프링을 공부할 때가 아닌가하는 생각이 들더라고요책을 구매하고 자바 관련 다른 강의를 조금 더 듣고 스프링 입문을 보면 좋을지, 아니면 현재 몇가지를 찾으면서 해당 강의를 계속해서 듣는게 맞는 것인지 고견을 여쭙고자 질문드리게 되었습니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
VSCode가 아니고 Atom으로 강의 되는건가요
설치는 VSCode를 설명해주셨는데요
-
미해결C언어 슈팅게임 따라만들기
mac OS 에서 프로젝트 진행 시 라이브러리 없음
맥 혹은 리눅스에서 프로젝트를 진행하려고하는데 <conio.h><Window.h>등 윈도우에서만 가능한 라이브러리들을 어떻게 하면 좋을까요?다른 방식으로 구현할 수 있는 방법이 있을까요?
-
미해결홍정모의 따라하며 배우는 C++
const와 extern
안녕하세요const가 변수의 외부연결을 막는 것 같은 상황이 생기는 거 같아 이렇게 여쭤봅니다. 파일구조는 vars.cpp -> header.h -> main.cpp&test.cpp입니다.vars.cppheader.hmain.cpptest.cpp의도한대로 잘 작동하며 출력화면은 아래와 같습니다.그런데 여기서 vars.cpp에서 nmsp_a변수를 int에서 const int형으로 바꾸고,header.h에서도 nmsp_a를 extern int에서 extern const int형으로 바꾸고 돌려보면아래와 같이 오류가 발생합니다.차이점은 equipe namespace안의 int nmsp_a변수를 그냥 int에서 const int로 바꾼 것 뿐인데 충돌이 일어나는 것처럼 보입니다.const와의 어떠한 문제 때문인 것으로 추측되는데 vars.cpp의 namespace안의 nmsp_a변수에는 extern을 붙이지 않아왔고 nmsp_a를 가져다끌어 쓰는 header.h에서만 extern을 붙여줬는데 아래 사진과 같이vars.cpp의 nmsp_a 변수에 오류를 발생시키던 const를 붙이되 extern또한 추가로 붙여주면 정상출력을 합니다. const를 안 붙이는 상황에선,변수를 정의해두는 vars.cpp에서는 extern를 쓰지않고이를 가져오는 주체인 header.h에만 extern를 붙여도 정상작동했지만 const를 붙이는 상황에선,vars.cpp, header.h 두 곳 모두 각각 변수에 extern을 붙여줘야한다는 결론을 얻었습니다. 말이 좀 복잡한데 정리하자면왜 변수에 const가 없으면vars.cpp에는 extern을 안 붙여도 되고왜 변수에 const가 있으면vars.cpp에도 extern을 꼭 달아줘야하는지그런 차이가 왜 생기는지 궁금합니다. 감사합니다.
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
auto connect
안녕하세요. FPGA를 처음으로 접하게 되어 Lab을 동작하는 초반 강의 영상에서 auto connect를 하는데 연결은 되었지만 왜 아무런 장치가 보이지 않는 것인지 모르겠습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
import할 때 export default로 되있는 페이지들은 중괄호 없이 import하여야 에러가 안납니다.
이걸 몰라서 오류 메시지를 계속 보고 있었네요. 같이 학습하시는분들 참고하셔용.
-
해결됨OpenGL 쉐이더 (4) shader 3D 그래픽스 - 좌표 변환, 회전, 가상 트랙볼, VBO, IBO
쉐이더에 연산 코드 선언
안녕하세요..!지금까지 강의를 보고 있는데, 생각보다 쉐이더 파일에 특별한 코딩을 안 하고 있다는 걸 느꼈습니다.막연하지만 41c-rotate3.cpp에서 볼 수 있는 행렬 연산 같은 것들을 쉐이더 쪽에서 처리하지 않는 이유가 있는지 궁금합니다..!
-
미해결Vue.js 시작하기 - Age of Vue.js
다음 단계 강의는...?
완전 초보입니다. vue3 레벨1을 들어야했는데..ㅠㅠ잘 모르고 현재 강의인 vue2 레벨1을 들었네요...업데이트 된 내용이 많아도...뭐 기본적으로 동작원리는 비슷할거라 생각해서 우선 들었는데요.문제는 이 강의를 듣고나서 레벨2는 어떤걸 들어야하나 해서요.vue3의 레벨2를 들어도 상관없을지..아니면 vue3의 레벨1을 다시 듣고 vue3 레벨2를 들어야할까요? 바뀐 부분의 내용을 모르고는 vue3레벨2 강의 따라가기가 많이 힘들까요..?
-
해결됨Go Hard to C (feat. Algorithm)
stdio.h 파일을 찾을수 없다고 나오네요.
화면과 같이 진행중인 학습자입니다.cmd 에서 stdio.h 파일을 찾을수 없다고 나오는데, 혹시 추가 설치해야 하는 것이 있나요?
-
미해결GSAP의 ScrollTrigger를 활용한 포트폴리오 제작
header영역 스크룰방향이벤트 제작 강의 에서
header active가 실행하지 않습니다 오타가 있나 아무리 봐도 똑같이 코딩된 거 같은데 .. 왜그럴까요???
-
미해결
fk가 없는 테이블들의 연관관계 질문입니다.
만약 DB의 ORDERS 테이블이 PRODUCT_ID를 외래키가 아닌 일반 컬럼으로 가지고있다면,위 사진처럼 ORDERS와 PRODUCT ENTITIY를 @ManyToOne과같은 어노테이션으로 연관시키면 안되는건가요? 그냥 pivate String productId 이런식으로 써야하는걸까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안에 제시된 string - split()의 효율성 관련 질문드립니다.
안녕하세요, 큰돌님!교안에서 제시된 내용을 기반으로 알고리즘 문제를 풀다가 궁금한 부분이 생겨 질문드렸습니다.교안에서 제시된 문자열 - split 함수는 아래와 같습니다.vector<string> split(string input, string delimiter) { vector<string> ret; long long pos = 0; string token = ""; while((pos = input.find(delimiter)) != string::npos) { token = input.substr(0, pos); ret.push_back(token); input.erase(0, pos + delimiter.length()); } ret.push_back(input); return ret; }저는 위 함수를 응용하거나 문제를 해결하는데, 오늘 백준의 5430번 문제를 해결할 때도 위와 같은 로직의 코드를 작성하여 문자열 split을 시도하였습니다.// I-2. 각 테스트 케이스의 첫째 줄에는 수행할 함수 p가 주어진다. cin >> _p; // I-3. 다음 줄에는 배열에 들어있는 수의 개수 n이 주어진다. cin >> _n; // I-4. 다음 줄에는 [x1, ... xn]과 같은 형태로 배열에 들어있는 정수가 주어진다. cin >> _x; string origin = _x.substr(1, _x.size() - 2); vector<string> vs_x(_n); if(origin.empty()) { } else { int pos = 0; int cycle = 0; while((pos = origin.find(',')) != string::npos) { string tmp = origin.substr(0, pos); vs_x[cycle++] = tmp; origin.erase(0, pos + 1); } vs_x[cycle] = origin; } 코드에 대해 부연설명을 드리자면, 입력을 통해 문자열을 받게 되면, 해당 문자열의 첫번째와 마지막 인덱스를 제외한 문자열을 origin에 저장한 후, 이 문자열 origin을 컴마(,)를 기준으로 split 하였습니다. 예를 들어, [1, 2, 3]이라는 문자열을 입력(_x)으로 받았다면, 변수 origin에 1,2,3을 저장한 후 컴마를 기준으로 문자열을 split할 수 있습니다.하지만, 위 코드와 함께 문제를 해결하고자 할 때, 지속적으로 시간 초과 문제가 발생하였습니다. 따라서 split 함수를 다음과 같은 로직으로 변경한 후 답안을 다시 제출하였으며, 그 결과 시간 초과가 발생하지 않고 문제를 해결할 수 있었습니다.// I-2. 각 테스트 케이스의 첫째 줄에는 수행할 함수 p가 주어진다. cin >> _p; // I-3. 다음 줄에는 배열에 들어있는 수의 개수 n이 주어진다. cin >> _n; // I-4. 다음 줄에는 [x1, ... xn]과 같은 형태로 배열에 들어있는 정수가 주어진다. cin >> _x; string token = ""; vector<string> vs_x(_n); int cycle = 0; for(int j = 0; j < _x.length(); ++j) { if(isdigit(_x[j])) { token += _x[j]; } else { if(!token.empty()) { vs_x[cycle++] = token; token = ""; } } } 제가 궁금한 것은 위에 제시된 split에 대한 두 개의 로직이 왜 효율성 차이가 나는지 잘 모르겠습니다.. origin.erase(0, pos + 1)이 O(n)의 시간 복잡도를 요구하면서, 첫 번째 로직은 O(n^2)의 시간 복잡도와 두 번째 로직은 O(n)의 시간 복잡도를 필요로 할 수도 있겠다는 생각이 들기도 하지만, 정확하게 어떤 부분이 큰 차이를 불러 일으키는지 잘 모르겠습니다. 감사합니다!
-
해결됨[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
댓글화면 레이아웃 디자인
안녕하세요 강의를 다 듣고 스스로 프로젝트를 개발하는중에 질문이 생겨서 질문드려요 저 댓글창부분을 android:layout_alignParentBottom="true"을 사용해서 하단에 고정시키려하는데 저 코드를 작성해도 고정이 안되는것같습니다. 리사이클러뷰를 적용하면 댓글창이 하단에 고정이 안되는것같습니다그리고 댓글창을 제외하고 나머지부분을 스크롤뷰로 감싸서 댓글창 빼고 다 스크롤뷰로 스크롤될수있게 적용했는데 오류가 있는지 디자인 미리보기 화면이 아얘 사라져? 버립니다..뭐가 문제인지 한번 봐주실수있을까요? <?xml version="1.0" encoding="utf-8"?> <layout xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="25dp" android:orientation="horizontal"> <ImageView android:id="@+id/backbutton" android:layout_marginStart="30dp" android:layout_width="20dp" android:layout_height="20dp" android:src="@drawable/back_button"/> <ImageView android:layout_width="120dp" android:layout_height="25dp" android:layout_marginStart="100dp" android:src="@drawable/community_name"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="25dp" android:orientation="horizontal"> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" app:srcCompat="@drawable/circle" /> <TextView android:id="@+id/nickname1" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_weight="4" android:text="닉네임" android:fontFamily="@font/bmjua_ttf" android:textSize="20sp" android:textColor="@color/black" android:gravity="center_vertical"/> <ImageView android:id="@+id/threedot" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:src="@drawable/threedot"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="80dp" android:layout_marginTop="15dp" android:orientation="vertical"> <TextView android:id="@+id/title1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="제목" android:textSize="15sp" android:textStyle="bold" android:textColor="@color/black" android:layout_marginStart="30dp"/> <TextView android:id="@+id/content1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="30dp" android:layout_weight="1" android:text="내용" android:textSize="12sp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:orientation="horizontal"> <ImageView android:id="@+id/favorate1" android:layout_width="20dp" android:layout_height="20dp" android:layout_weight="1" android:layout_marginStart="30dp" android:src="@drawable/heart1" /> <TextView android:id="@+id/favorateText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="center_vertical" android:layout_marginStart="5dp" android:textColor="@color/black" android:textSize="15dp" android:text="7" android:fontFamily="@font/bmjua_ttf"/> <ImageView android:id="@+id/comment1" android:layout_width="20dp" android:layout_height="20dp" android:layout_weight="1" android:layout_marginStart="20dp" android:src="@drawable/comment1" /> <TextView android:id="@+id/commentText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="center_vertical" android:layout_marginStart="5dp" android:textColor="@color/black" android:textSize="15dp" android:text="5" android:fontFamily="@font/bmjua_ttf"/> <TextView android:id="@+id/time1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginStart="220dp" android:layout_gravity="center_vertical" android:fontFamily="@font/bmjua_ttf" android:textSize="10dp" android:text="2024.02.13" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="3dp" android:layout_marginTop="35dp" android:background="@color/bottomgray"/> <androidx.recyclerview.widget.RecyclerView android:id="@+id/commentRV" android:layout_width="match_parent" android:layout_height="680dp" android:layout_marginTop="30dp"/> </ScrollView> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentBottom="true"> <LinearLayout android:layout_width="wrap_content" android:layout_height="60dp" android:layout_alignParentBottom="true" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_marginBottom="10dp" android:background="@drawable/button_radius_green_stroke"> <EditText android:id="@+id/commentArea" android:hint="댓글을 작성해주세요" android:layout_marginLeft="10dp" android:layout_width="310dp" android:layout_height="match_parent" android:background="@android:color/transparent"/> <Button android:id="@+id/commentBtn" android:layout_width="60dp" android:layout_height="45dp" android:layout_gravity="center_vertical" android:background="@drawable/button_radius_green" android:fontFamily="@font/bmjua_ttf" android:text="등록" android:textColor="@color/white" android:textSize="15dp" android:layout_marginEnd="8dp" /> </LinearLayout> </RelativeLayout> </LinearLayout> </RelativeLayout> </layout>해당 레이아웃 전체코드입니다
-
해결됨홍정모의 따라하며 배우는 C언어
함수 선언부와 정의부가 다른 파일에 있어도 빌드가 되는 원리.
안녕하세요,강의에서main.c 파일 안에 #include "my_print_fucntions.h"를 통해 my_print_functions.h를 main파일에 인클루드해주면, 함수의 선언부만 main.c에 복붙이 됩니다. 선언부는 main.c안에 놓이는거겠죠.그런데 이 때, #include "my_print_fucntions.c" , 함수의 바디가 정의되어있는 my_print_fucntions.c 파일을 main.c 안에서 인클루드해주지 않아도 되는 이유는, 링커가 알아서 함수를 찾아 연결해주기 때문이고, 그렇게 되는 이유는 헤더파일의 함수 선언부에서 extern 키워드가 생략되어있어서 그렇다고 봐도 될까요?( (extern) void print_hello(); 이렇게요.) 감사합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
id의 중복 사용 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서는 Member의 필드에 id와 name이 있고, 이를 다시 Map으로 묶어서 사용하고 있습니다. save()가 정상적으로 처리되면 Map에는 key의 id값과 Member필드의 id값이 서로 같은 값으로 중복 저장되게 되는데요, 이렇게 설계하신 이유를 알고 싶습니다.