묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 웹사이트제작! Step By Step! _Basic (한화캐미컬_반응형웹)
태그 사용 관련 질문 있습니다.
안녕하세요, 좋은 강의 제공 해주셔서 감사드립니다.section.about 영역 마크업 강의 수강 중 궁금한게 있어 질문 드립니다.img 태그를 감싸실 때 p 태그를 사용 하셨는데 따로 이유가 있을까요? UI상 리스트에서 하나의 문단으로써 자리하기에 그런것일까요?<li> <a href="#"> <p class="img"> <img src="img/about_1.jpg" alt="회사소개" /> </p> <div class="text"> <h3>회사소개</h3> <p>삶의 가치를 높이는 기술기업, 한화 케미칼</p> <p class="more">more</p> </div> </a> </li>
-
미해결UX/UI 시작하기 : Figma 입문 (Inflearn Original)
이미지 갤러리 형태페이지에서 팝업 스크롤 부분이 이해가 안됩니다.
딤드처리까지 완료하였는데, 클립콘텐트 체크박스 해제부터 이해가 안됩니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
OSIV OFF시 Sercice클래스 최적화
orderService.class를 예를들면 Order Entity를 저장하거나 find하거나 등 entity위주의 코드만 뒀습니다.허나 Order Entity뿐만 아니라 OrderForm, OrderDto를 변환해주는 코드가 필요하다면 각 형태를 변화해주는 Service를 따로 만들어야하는지 아님 하나의 Service클래스안에 다 둬야 하는지 궁금합니다.예로들어 OrderEntity => OrderForm 로바꿔주는서비스, OrderEntity => OrderDto로 바꿔주는 서비스,OrderEntity를 repository에 넘겨주는(DB에 저장하는) 서비스 이런식으로 각각 나눠서 여러개의 클래스로 만들어주나요??
-
미해결[발표스피치] 대기업 임직원, 스타트업 대표들이 배우는 청중을 사로잡는 발표 방법!
'ppt 펫트워크' 수업자료
'ppt 펫트워크' 수업자료가 비활성화 되어있어요.다운을 못받고 있는데 체크 부탁드립니다.
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
sandbox에서 .js로 새 파일 작업시 즉시 반영 안됨
sandbox에서 default 파일(.mjs) 말고 .js 파일을 새로 만들어서 console.log를 실행했는데 .mjs 처럼 즉시 실행이 안됩니다. (이떄 instant preview도 on 했습니다.)
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
sln 파일이 없는데 어떻게 비쥬얼스튜디오를 실행 해야 하나요?
안녕하세요.c++ 완전 입문자라 하나하나가 다 어렵네요.^^선생님이 만드신 h,cpp파일들을 복사 붙여하거나 파일 전체를 덮어서 진행하고 있는데 오류가 다서.제가 가진 폴더들을 다 날리고 2-4에 있는 파일을 덮어 씌웠는데 sln 없어, 기존에 있던 sln 파일만 복구 해봤는데 찾을 수가 없다고 하여 아무것도 되지 않고 있네요.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
RowMapper<Item> 질문있습니다.
수업에 나오는 RowMapper<Item>에 대해서 질문드립니다.RowMapper의 코드를 확인해보니@FunctionalInterface public interface RowMapper<T> { /** * Implementations must implement this method to map each row of data * in the ResultSet. This method should not call {@code next()} on * the ResultSet; it is only supposed to map values of the current row. * @param rs the ResultSet to map (pre-initialized for the current row) * @param rowNum the number of the current row * @return the result object for the current row (may be {@code null}) * @throws SQLException if an SQLException is encountered getting * column values (that is, there's no need to catch SQLException) */ @Nullable T mapRow(ResultSet rs, int rowNum) throws SQLException; }강의에서 구현한 (rs, rowNum) => T 의 메서드가 보이는데요 해당 메서드는 throws SQLException, 즉 체크 예외를 던지고있습니다. 검색해본결과 람다는 컴파일타임이 아니라 런타임에 실행되기 때문에 사용하는측에서 컴파일시점에 예외체크를 하지않아도 컴파일이 통가된다라고 보았습니다. (throws SQLException 라고 적혀있는데 컴파일타임에 체크되어야하는거 아닌가 라고 생각은 하면서) 질문그렇다면 제가 jdbc의 RowMapper를 실무에서 사용한다면 매번 체크 예외를 위한 예외처리를 매번 다 해줘야한다는 의미인가요?
-
미해결홍정모의 따라하며 배우는 C++
transform_reduced 의 결과값이 틀립니다.
아무리 봐도 코드 오류가 잘 안보이네요,어느부분이 잘못되었는지 짚어주실수 있을까요?#include <iostream> #include <thread> #include <mutex> #include <utility> #include <vector> #include <atomic> #include <chrono> #include <numeric> #include <random> #include <execution> #include <future> using namespace std; auto dotProductNaive(const vector<int>& v0, const vector<int>& v1, const unsigned i_start, const unsigned i_end, unsigned long long & sum) { for(unsigned i = i_start; i < i_end; ++i) sum += v0[i] * v1[i]; return sum; } mutex mtx; auto dotProductLock(const vector<int>& v0, const vector<int>& v1, const unsigned i_start, const unsigned i_end, unsigned long long & sum) { for(unsigned i = i_start; i < i_end;++i) { std::scoped_lock lock(mtx); //c++17 sum += v0[i] * v1[i]; } return sum; } auto dotProductAtomic(const vector<int>& v0, const vector<int>& v1, const unsigned i_start, const unsigned i_end, atomic<unsigned long long>& sum) { for(unsigned i = i_start; i < i_end;++i) { sum += v0[i] * v1[i]; } } auto dotProductFuture(const vector<int>& v0, const vector<int>& v1, const unsigned i_start, const unsigned i_end) { int sum = 0; for(unsigned i=i_start; i<i_end; ++i) { sum += v0[i] * v1[i]; } return sum; } int main() { const long long n_data = 100'000'000; const unsigned n_threads = 4; //init vectors std::vector<int> v0, v1; v0.reserve(n_data); v1.reserve(n_data); random_device seed; mt19937 engine(seed()); uniform_int_distribution<> uniformDist(1, 10); for(long long i = 0; i < n_data; ++i) { v0.push_back(uniformDist(engine)); v1.push_back(uniformDist(engine)); } cout << "std::inner_product" << endl; { const auto sta = chrono::steady_clock::now(); const auto sum = std::inner_product(v0.begin(), v0.end(), v1.begin(), 0ull);//unsigned long long const chrono::duration<double> dur = chrono::steady_clock::now() - sta; cout << dur.count() << endl; cout << sum << endl; cout << endl; } // cout << "Naive" << endl; // { // const auto sta = std::chrono::steady_clock::now(); // std::vector<thread> threads; // threads.resize(n_threads); // const unsigned n_per_thread = n_data / n_threads; // unsigned long long sum = 0; // for(unsigned t = 0; t < n_threads; ++t) // { // threads[t] = std::thread(dotProductNaive, std::ref(v0), // std::ref(v1), t*n_per_thread, (t+1)*n_per_thread, std::ref(sum)); // } // for(unsigned t = 0; t < n_threads; ++t) // threads[t].join(); // const auto dur = std::chrono::steady_clock::now() - sta; // cout << dur.count() << endl; // cout << sum << endl; // cout << endl; // } // cout << "Lock Guard" << endl; // { // const auto sta = std::chrono::steady_clock::now(); // unsigned long long sum = 0; // std::vector<thread> threads; // threads.resize(n_threads); // const unsigned n_per_thread = n_data / n_threads; // for(unsigned t = 0; t < n_threads; ++t) // { // threads[t] = std::thread(dotProductLock, std::ref(v0), // std::ref(v1), t*n_per_thread, (t+1)*n_per_thread, std::ref(sum)); // } // for(unsigned t = 0; t < n_threads; ++t) // threads[t].join(); // const chrono::duration<double> dur = std::chrono::steady_clock::now() - sta; // cout << dur.count() << endl; // cout << sum << endl; // cout << endl; // } // cout << "Atomic" << endl; // { // const auto sta = std::chrono::steady_clock::now(); // atomic<unsigned long long> sum = 0; // std::vector<thread> threads; // threads.resize(n_threads); // const unsigned n_per_thread = n_data / n_threads; // for(unsigned t = 0; t < n_threads; ++t) // { // threads[t] = std::thread(dotProductAtomic, std::ref(v0), // std::ref(v1), t*n_per_thread, (t+1)*n_per_thread, std::ref(sum)); // } // for(unsigned t = 0; t < n_threads; ++t) // threads[t].join(); // const chrono::duration<double> dur = chrono::steady_clock::now() - sta; // cout << dur.count() << endl; // cout << sum << endl; // cout << endl; // } // cout << "Future" << endl; // { // const auto sta = chrono::steady_clock::now(); // unsigned long long sum = 0; // vector<std::future<int>> futures; // futures.resize(n_threads); // const unsigned n_per_threads = n_data / n_threads; // for(unsigned t=0; t<n_threads; ++t) // { // futures[t] = std::async(dotProductFuture, std::ref(v0), std::ref(v1), // t*n_per_threads, (t+1)*n_per_threads); // } // for(unsigned t=0; t<n_threads; ++t) // sum += futures[t].get(); // const chrono::duration<double> dur = chrono::steady_clock::now() - sta; // cout << dur.count() << endl; // cout << sum << endl; // cout << endl; // } cout << "std::transform_reduce" << endl; { const auto sta = chrono::steady_clock::now(); const auto sum = std::transform_reduce(std::execution::par, v0.begin(), v0.end(), v1.begin(), 0ull); const chrono::duration<double> dur = chrono::steady_clock::now() - sta; cout << dur.count() << endl; cout << sum << endl; cout << endl; } return 0; }
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
서버 실행에 오류가 납니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]어제까지만 해도 잘 됐던 서버가 오늘 갑자기 안됩니다. 어제랑 다른점으로 코드를 추가한 것이이 2가지 밖에 없는데 왜 오류가 나오는지 궁금합니다.인텔리 제이는 지금 학생용 라이센스를 사용중입니다.아래 링크는 코드 압축 파일 입니다. https://drive.google.com/file/d/12BtT_YTA__LkJFnUkQ_Q2ae-X9MT4TK7/view?usp=sharing
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
BRAM은 어떻게 합성되나요?
module true_sync_dpbram ( clk, addr0, ce0, we0, q0, d0, addr1, ce1, we1, q1, d1);parameter DWIDTH = 16;parameter AWIDTH = 12;parameter MEM_SIZE = 3840;input clk;input[AWIDTH-1:0] addr0;input ce0;input we0;output reg[DWIDTH-1:0] q0;input[DWIDTH-1:0] d0;input[AWIDTH-1:0] addr1;input ce1;input we1;output reg[DWIDTH-1:0] q1;input[DWIDTH-1:0] d1;(* ram_style = "block" *)reg [DWIDTH-1:0] ram[0:MEM_SIZE-1];always @(posedge clk) begin if (ce0) begin if (we0) ram[addr0] <= d0; else q0 <= ram[addr0]; endendalways @(posedge clk) begin if (ce1) begin if (we1) ram[addr1] <= d1; else q1 <= ram[addr1]; endendendmodule 저기서 시스템이 BRAM을 사용한다는 걸 어떻게 인식할 수 있나요?(* ram_style = "block" *)reg [DWIDTH-1:0] ram[0:MEM_SIZE-1];이 한문장이 없으면 BRAM을 사용하지 않게 되나요?아니면 단순히 코드 구성을 보고 자동으로 BRAM이 있다고 판단하여 합성해주나요?
-
미해결배달앱 클론코딩 [with React Native]
Tmap 설치했으나 callback false 떠요..ㅜㅜ
안드로이드에 설치했는데 계속 설치하라고 뜨네요 패키지에 추가도 했습니다. npm start -- --reset-cache./gradlew clean 두가지 다 해봤어요<queries> <package android:name="com.skt.tmap.ku" /> </queries>
-
미해결자바 코딩테스트 - it 대기업 유제
백준 <수확> 코드
public class Main { public static int solution(int[] value, int N) { int[][] dynamic = new int[N + 1][N + 1]; int[] sum = new int[N + 1]; for (int i = 1; i <= N; i++) { dynamic[i][i] = value[i]; } sum[1] = 1; for (int i = 2; i <= N; i++) { sum[i] = sum[i - 1] + value[i]; } for (int i = 1; i < N ; i++) { for (int j = 1; j <= N - i; j++) { dynamic[j][j + i] = Math.max(dynamic[j + 1][j + i], dynamic[j][j + i - 1]) + (sum[j + i] - sum[j - 1]); } } return dynamic[1][N]; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int[] value = new int[N + 1]; for (int i = 1; i <= N; i++) { value[i] = Integer.parseInt(br.readLine()); } System.out.println(solution(value, N)); } }강사님, 안녕하세요! 강의 보고 구현한 코드인데, 백준에서 채점이 틀리게 나와서 혹시 로직이 틀린건지 궁금합니다. [해결 됐습니다!]1부터 n까지 합 저장하는 배열인 sum을 초기화하면서sum[1] = value[1] 을 해야 할 것을 sum[1] = 1; 로 잘못 초기화 했네요.우연히 테스트 케이스 value[1] 값이 1이어서 해당 답만 맞았던 것 같습니다.강의 보면서 실력이 늘고 있음을 느끼고 있습니다. 감사합니다:)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
그리디에 대해서 질문있습니다
강의를 보는데 이해가 안되는부분이 있어 질문드립니다그리디 문제의 경우는 실제로 해당경우에 대한 모든 경우의수가 대입된다면 임의의 해답논리를 이용해서 푼 경우가 진짜 정답은 아닐 수 있으나 문제에서 제시되는 테스트케이스는 해당 논리에대해서는 참 이라는 조건이 제시되는 문제로만 구성되있다고 생각하면 되는걸까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
서브쿼리의 활용사례 및 조인관련질문
특정 문제에 대한 질문이 아니라 강의 학습 중 활용에 관한 질문인데요.1.프로그래머스 스쿨과 해커랭크 등에서 배운 내용들을 적용하며 풀고 있는데, 서브쿼리를 사용하겠다는 단서를 파악할 수 있는 방법이 있을까요?어떤 경우에는 서브쿼리를 사용했는데 왜 서브쿼리를 사용해야하는지마저 떠올리지 못해서 활용을 제대로 못하고 있는거 같습니다. 조인을 할 때 left join과 inner join의 차이inner join은 보면 null값을 포함하지 않고 left join은 null값을 포함하는 것으로 인지하고 있어서웬만하면 실수를 줄이기 위해서 left join을 쓰는데 이것도 맞다고 볼 수 있을까요?긴 글 읽어주셔서 감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
일대일 매핑 질문
안녕하세요 일대일 매핑 강의를 듣던 중에 '외래키에 null 허용'이라는 부분이 이해가 잘 안돼서 질문드립니다. 어느 연관관계든, 예를 들어 유저한명이 게시글을 여러개쓴다고 하면 다대일 관계로 매핑할 수 있는데 그러면 유저가 게시글을 하나도 작성하지 않아도 null이 되는거 아닌가요? 그리고 대상 테이블에 외래키를 뒀을 때 '외래키에 null 허용'이 해결된다는 점도 잘 모르겠습니다. 제가 어떤 부분을 이해 못하고 있는지 모르겠어서 질문드려요.
-
미해결하루만에 배우는 aws 서버리스
로컬에서의 테스트에 관해서
다음과 같은 양식으로 남겨주세요.질문을 한 배경 : 보안을 위해서 SAM 을 사용하는것을 권장하지 않는다질문내용 : 아직 http api 섹션 밖에 보지 않았지만, 비용을 들이지않고 테스트를 하기위해서 어떤식으로 진행을 하나요? lambda 의 테스트 기능을 이용하나요??
-
미해결스프링 핵심 원리 - 기본편
스프링 빈은 항상 stateless로 설계해야 한다는 말에 대해 궁금증이 있습니다.
만약 스프링 특정 빈에 아래와 같이 캐시를 저장하고 있다면 Map<String,Article> articleCache캐시로 동작하는 Map 객체는 stateful이라고 생각됩니다. 근데 이게 싱글톤으로 동작하지 않고, 매번 객체를 새로 생성한다면 캐시의 의미가 사라지지 않나요?그래서 '스프링 빈은 항상 stateless'로 설계해야 한다가 과연 늘 옳은 말인지 궁금합니다.
-
미해결[게임 프로그래머 도약반] DirectX11 입문
코드중 이해안가는부분이있습니다
Awake() :모든 오브젝트가 초기화되고 호출Start() :스크립트 인스턴스가 활성화된 경우에만 호출유니티 랑 비슷하게 하시려고 만드신 건 이해했습니다근데 생성자가 있는대 필요한 이유가 있을까요?생성 순서 문제 때문이라도 Awake나 Start 하나만 써도 될 것 같아서요
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
IDENTITY 전략에서 1차 캐시에 entity가 저장되는 시점은 언제인가요?
4.6.2 IDENTITY 키 생성 전략에서 1차 캐시에 저장할 때는 기본키가 반드시 필요하기 때문에 em.persist()를 호출하는 시점에 바로 DB에 INSERT SQL 이 실행된다고 적혀있습니다.그리고 Statement.getGeneratedKeys()를 사용해서 데이터 저장과 동시에 기본 키값을 얻어올 수 있습니다.그렇다면, 1차 캐시에는 DB에 INSERT SQL이 실행된 직후 entity가 저장되는건가요?아니면, em.find()를 하는 시점에 1차 캐시에 entity가 저장되는 걸까요?아래 사진에서 왼쪽일까요, 오른쪽일까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
t.members 값 확인이 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]String query = "select t.members From Team t";Collection result = em.createQuery(query, Collection.class).getResultList();System.out.println("result = " + result); 결과값result = [hellojpa.Domain.Member@5b7aa898, hellojpa.Domain.Member@4e642ee1]위와 같은 코드로 출력했는데 영상과 같이 리스트의 값이 나오지 않고 get 메소드도 사용도지 않아서 원하는 값들이 제대로 출력되는지 확인이 되지 않는데 왜그런건가요?혹시 엔티티 설계할때 잘못했나 싶어서 아래에 엔티티 코드 남김니다.@Entitypublic class Member {@Id @GeneratedValue @Column(name = "MEMBER_ID")private Long id; private String username; private int age; @ManyToOne @JoinColumn(name = "TEAM_ID")private Team team;ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ@Entitypublic class Team {@Id @GeneratedValue @Column(name = "TEAM_ID")private Long id; private String name; @OneToMany(mappedBy = "team")private List<Member> members = new ArrayList<>();