묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
-- 한 줄 주석처리 적용 안되는 문제 질문드려요~!
SELECT CASE WHEN (A + B <= C) OR (B + C <= A) OR (C + A <= B) THEN 'Not A Triangle' WHEN (A = B AND B <> C) OR (B = C AND C <> A) OR (C = A AND A <> B)THEN 'Isosceles' WHEN A = B AND B = C THEN 'Equilateral' --WHEN (A <> B) AND (B <> C) AND (C <> A) THEN 'Scalene' ELSE 'Scalene' END FROM triangles; 질문1) 빨간색 부분이 제가 원래 작성했었던 WHEN THEN 구문인데요, else로 처리 하는 게 간명하다고 생각되어, 주석처리 한 후 ELSE 문으로 작성하였는데, 계속 오류가 뜨더라구요. 주석 처리된 부분을 지우면 정답처리 되었습니다. 주석처리한 줄은 결과에 영향을 안미쳐야하는데, 어떻게 된 것일까요...? 질문2) 밑줄친 부분처럼 조건을 작성할 경우, 정삼각형 조건과 순서에 상관 없이 적용이 잘 되는데요, 이렇게 작성해도 되겠죠?혹시 조건이 길어져서 더 안좋다던가 하는 게 있나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest실행시 성공으로 뜨나 로그에 select, insert문이 뜨지 않습니다.
테스트는 성공했으나 로그에 17:03처럼 hibernate : select~ hibernate : create~ 가 뜨지 않습니다. 이래도 문제가 없는건가요?? package com.example.domain; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity //jpa가 관리하는 엔티티 public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) //데이터베이스에 값을 넣으면 데이터베이스가 자동으로 ID를 생성해주는것을 IDENTITY라고 한다 private Long id; //@generatedValue는 PK의 값을 위한 자동생성전략을 명시하는데 사용된다.얘룰 들어 name이라는 column에 새로운 데이터(value)가 들어오면 여기에 대해 Id를 부여 //해줘야하는데 이때 사용되는게 @generatedValue @Column(name = "name") private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } package com.example.repository; import java.util.List; import java.util.Optional; import javax.persistence.EntityManager; import com.example.domain.Member; public class JpaMemberRepository implements MemberRepository{ private final EntityManager em;//jpa를 돌아가게 해줌 public JpaMemberRepository(EntityManager em) { this.em = em; }// ->이것들로 인젝션 받으면 됨 @Override public Member save(Member member) { em.persist(member); //persist()는 영속적으로 저장해줌 return member; //끗 (뭐가지나간거죠) } @Override public Optional<Member> findById(Long id) { Member member = em.find(Member.class, id); return Optional.ofNullable(member); } @Override public Optional<Member> findByName(String name) { List<Member> result = em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); return result.stream().findAny(); } @Override public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class) .getResultList(); } } package com.example.service; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.example.repository.JdbcTemplateMemberRepository; import com.example.repository.JpaMemberRepository; import com.example.repository.MemberRepository; import com.example.repository.MemoryMemberRepository; @Configuration public class SpringConfig { @PersistenceContext private EntityManager em; @Autowired public SpringConfig(EntityManager em) { this.em = em; } @Bean public MemberService memberService() { return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository() { return new JpaMemberRepository(em); } } 2022-03-12 00:47:47.668 INFO 16852 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2022-03-12 00:47:48.425 INFO 16852 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2022-03-12 00:47:48.984 INFO 16852 --- [ main] c.e.repository.MemberRepoServiceTest : Started MemberRepoServiceTest in 4.447 seconds (JVM running for 5.606) 2022-03-12 00:47:49.100 INFO 16852 --- [ main] o.s.t.c.transaction.TransactionContext : Began transaction (1) for test context [DefaultTestContext@7d42c224 testClass = MemberRepoServiceTest, testInstance = com.example.repository.MemberRepoServiceTest@6787bd41, testMethod = 회원가입@MemberRepoServiceTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@56aaaecd testClass = MemberRepoServiceTest, locations = '{}', classes = '{class com.example.InflearnApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@3e62d773, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@638ef7ed, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@7de62196, org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@7b50df34, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@4bbf6d0e, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@7fc2413d], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]]; transaction manager [org.springframework.orm.jpa.JpaTransactionManager@3dec769]; rollback [true] 2022-03-12 00:47:49.507 INFO 16852 --- [ main] o.s.t.c.transaction.TransactionContext : Rolled back transaction for test: [DefaultTestContext@7d42c224 testClass = MemberRepoServiceTest, testInstance = com.example.repository.MemberRepoServiceTest@6787bd41, testMethod = 회원가입@MemberRepoServiceTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@56aaaecd testClass = MemberRepoServiceTest, locations = '{}', classes = '{class com.example.InflearnApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@3e62d773, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@638ef7ed, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@7de62196, org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@7b50df34, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@4bbf6d0e, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@7fc2413d], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]]
-
미해결ESXi 가상 인프라 구축과 보안 솔루션을 활용한 이상징후 탐지 모니터링
네트워크 설정
VMware환경이 아닌 baremetal 환경에서 정적 주소를 받아 사용하고 있습니다. DHCP로 eth0 IP를 받아오지 못하는 경우에는 어떻게 네트워크를 구성해야 하나요...?
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
음...passport를 사용하는 이유...?
일단 제목만 보고 상당히 "어...?"하셨겠지만, 정말 궁금했던 것 중에 하나입니다. 일단 저는 nodejs교과서를 책으로 읽고, express로 토이프로젝트를 2번 정도 진행을 해본 경험이 있으며, 그 중 한번만 jwt를 이용하여 auth를 구현하였습니다.(passport 없이) [제가 구현한 방식은]: ID,PW를 받아서 PW를 bcrypt로 암호화하여서 DB에 넣고, 후에 로그인 요청이 오면 ID,PW가 맞는지 확인한 후, 맞으면 jwt 토큰을 쿠키 형식으로 부여. 후에 요청하면 token을 verify하여 회원인지 확인. 이었습니다. 개인적으로 토이프로젝트를 제 개인 서버에 올려 24시간 가동되게 하는 것을 선호해서, 트래픽도 없지만 굳이 세션으로 무리를 주고 싶지 않았고, 또한, 굳이 세션이 필요한 서비스가 아니여서 jwt만으로 하였습니다. nodejs 교과서에서는 세션과 쿠키 처리 등 복잡한 작업을 쉽게 처리해줄 검증된 모듈로 passport를 소개하였는데, 만약에 위와 같은 정도의 작업만을 하게되는 경우, passport를 쓰는 것의 이점이 있나요? 제가 passport의 장점을 크게 느끼지 못하고 있는 것이, session을 사용하지 않으면 굳이 passport를 사용해야 하나 라는 생각이 들어서 질문드립니다. 아 그리고, 저 정도의 기능을 구현한다고 하면 passport를 사용하는 것보다 직접 코드를 짜는것이 더 짧아서 passport를 사용하는 것의 장점이 더욱더 궁금하였습니다... session을 이용하지 않는, passport-local의 경우이겠네요.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
w로 나눠 주는건 그냥 규칙인 건가요?
좌표가 (x,y,z,w)가 있다고 했을 때 나중에 다음 단계로 넘어가게 될 때, 즉 rasterizer 단계로 넘어가게 될 때 (x/w, y/w, z/w, w/w) 이런식으로 다 w값으로 나눠주고 있다고 하셨는데 w값으로 나눠주는 건 그냥 규칙인 건가요? 변환행렬 시간에 z값이 깊이 값이 되는 건 행렬에서 배웠는데 w로 나눠주는건 생소한 부분인거 같아서요.
-
해결됨스프링 핵심 원리 - 기본편
SOLID관련 질문 드립니다
질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]SOLID 원칙 중에서 SRP(단일 책임 원칙)이 하나의 책임만 주고 변경에 대해 다른 객체들에게 영향을 미치지 않는다라고 이해를 했습니다. 그리고 ISP(인터페이스 분리 원칙)는 클라이언트가 의존을 하지 않도록 중간에 인터페이스를 두어서 분리를 시킨다라고 이해를 했습니다. 그런데 이 두개가 책임을 나눈다라는 같은 문제에 대해 제시하는 해결책이라고 생각이 드는데 구현 시에 어느 원칙을 준수하는게 더 우선시 되는 건가요?
-
미해결업무가 100배 빨라지는 엑셀 데이터 활용과 분석 노하우
파워쿼리_필드명변경
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요?파워쿼리 업무에 잘 이용하고 있습니다. 그런데 문의 드립니다. 테이블 범위내에 필드명이 변경되는 경우 새로고침을 하면 로드가 되지않아서요즉, 쿼리의 원본인 테이블의 필드명이 바뀌는 경우 쿼리가 실행이 안되나요 그리고 쿼리 편집기에서 이름을 변경하는 경우도요그리고 질문드립니다. 원본데이터는 1,2,3, 이렇게 연속하는 순번입니다. 그런데 로드되는 시트내에함수를 이용하여 row()-7이렇게설정하였습니다. 이 경우 새로고침하면 함수가 없어져서요그래서 쿼리편집기에서사용자 지정열을 추가하여 row 함수를 이용하려고 하는데 잘 되지 않습니다. 200개 이상 되는 데이터 인데요예를 들어 거래처 별로 나누다 보면 중간에 있는 거래처가 그 시트내에서는 무조건 1로 시작하는 순번을 줄려고 합니다. 이 경우 해결 방법이 있을 까요?!
-
미해결자바스크립트 어나더레벨_temp
사운드가 작게들려요
이번 강의 사운드가 작게 들려요 전부터 점점 작게 들리는데 체크좀 해주셨으면 좋겠어요
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
4장 5장 수업에서의 질문
안녕하세요 맛비님 제가 수업 들으면서 공부하던 도중 궁금한 점이 생겼습니다 4장 5장에서 PS와 PL 영역을 사용하는 모습을 보여주십니다 여기서 궁금한 점이 1. FPGA에 있는 PS 영역을 사용하기 위해서는 반드시 Vivado의 바이티스를 통해야만 하는 건가요? 예를 들어 우리가 .v 파일안에 약속된 명령어?? 이런 것을 넣어서 generate bitstream 하는 방식으로는 FPGA의 PS 영역을 사용할 수는 없는 건가요? 1-1) 질문을 하면서 떠오른 생각인데, 하드웨어를 SW적으로 조작하기 위해 탑재하는 것을 펌웨어라고 알고 있습니다 Vivado의 바이티스는 보드에 맞는 펌웨어를 자동적으로 만들어주는 그런 역할인건가요??? 2. PS 영역을 사용하기 위해서는 반드시 IP Integrator안의 block diagram 기능을 이용해야 하는 것인가요? 3. 하드웨어를 만들 때 시즌 1에서는 .v 파일에 verilog 만으로도 만들었던 것 같은데 4장 5장에서는 주로 block diagram을 이용해서 만드시는 것 같습니다. .v 파일을 통해 verilog로 기술하는 경우와 block diagram을 쓰는 경우가 어떻게 차이가 있는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 실패
./gradlew build 를 해야하는데 ./gradlew 만 입력하여 BUILD FAILED 1 actionable task: 1 executed 라고 나오는데 어떻게 해야 하나요 ??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestParam 어노테이션이 required=false인 경우, 쿼리파라미터 이름만 있고 값이 없는 경우
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Q1. 예를 들어 @RequestParam(required=false) Integer age 로 매개변수를 선언한 경우, 요청시 쿼리파라미터 정보 중 age라는 이름의 데이터는 있지만 값이 없으면, (?age=) username과 같이 빈문자가 들어올 것이라고 생각하였지만, null이 들어왔습니다. 이를 통해 쿼리파라미터의 값을 넘길 때 이름만 있고 값이 없는 경우 String으로 받으면 빈문자가 들어오고, 그외의 타입으로 받으면 null이 들어오는 것이 맞는지 궁금합니다. Q2. 또한 @RequestParam(required=false) int age 로 매개변수를 선언한 경우, 요청시 age라는 이름의 데이터 자체가 없다면 설명해주신 것 처럼 null이 들어가는데, int형 변수에 null을 넣을 수는 없으므로 이는 서버측 오류인 500대 오류라는것을 확인하였습니다. 그런데 동일 상황에서 age라는 이름의 쿼리파라미터만 있고 값이 없는 경우(?age=), Q1과 같이 null이 넘어가고 이 null값은 int형 변수에 대입이 안되므로, 이 또한500대 오류가 날 것 같았는데 400대 오류가 나왔습니다. 왜 400대 오류가 나는지를 잘 모르겠습니다. 항상 좋은 강의 및 답변 감사합니다!!
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
seo를 위한 google search console 질문이 있습니다.
안녕하세요 제로초님 리액트 노드 버드 강의를 통해 배운 내용을 통해 응용하여 개인 프로젝트를 진행해서 알려주신 배포 방법으로 배포까지 진행하였습니다. seo 최적화를 위해 이것저것 알아보다가 google search console을 알게 되었는데 혹시 제로초님께서 사용해보셨을까 해서 질문을 작성하게 되었습니다. 제 사이트를 등록하려고 2번 방법인 meta 태그를 통해 소유권을 확인하려고 _app.tsx에서 next의 Head를 이용해서 그 안에 주어진 meta 태그를 추가하였습니다. 하지만 아래와 같이 계속 실패가 나와서 혹시 방법을 아시나요? ㅠㅠ 제가 의심가는 부분은 next의 Head를 이용해 meta태그를 추가하면 실제 페이지 개발자 도구에서는 html의 head 태그가 아닌 body태그 안에 script NEXT_DATA라는 부분 안에 meta 태그가 들어있어서 그런건가 싶긴 합니다 ㅠ
-
미해결쉬우면서 강력한 유니티(Unity) 에디터 프로그래밍
영상속 코드 누락 문의
영상 속 코드 중, Targets.Add(so, props); 하기 전에 단순히 serializedOjbect.FindProperty 만 해주고 해당 리턴 값을 List 에 넣지 않아, EditorWindow에 출력이 되지 않는 문제가 있는것 같은데 맞나요??
-
미해결하울의 안드로이드 인스타그램 클론 만들기
화면전환시 색깔이 안나오고 흰바탕입니다
코드는 제대로 입력되어있습니다 무엇을 더 건드려야할까요
-
미해결스프링 핵심 원리 - 기본편
웹 스코프 강의에 대해서
웹 스코프 이전 코드들은 test를 통해서 구현했는데 웹 스코프는 main에서 바로 구현한 이유가 따로 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
서비스 계층에 트랜잭션 추가 하는 이유
서비스 계층에 @Transactional 을 추가하셨는데 이유가 궁금하고 그 역할이 궁금합니다! Test클래스의 메서드 위에 붙인거랑은 어떤차이가 있는건가요??
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
리덕스 실제 구현시 에러발생
<../reducers/index.js> [const initialState = { user: { isLoggedIn: false, user: null, signUpData: {}, loginData: {}, }, post: { mainPosts: [], }, }; export const loginAction = (data) => { return { type: 'LOG_IN', data, }; }; export const logoutAction = (data) => { return { type: 'LOG_OUT', }; }; //action creator 함수 -> 데이터값을 액션하는 함수 //액션 자체는 객체라서 값을 수정못하니 모든케이스마다 객체를 만들어줘야하니 함수로 만들어서 //그때 그때 만드는 것으로한다!! // const CHANGE_NICKNAME = (data) => { // return { // type: 'CHANGE_NICKNAME', // data, // }; // }; // CHANGE_NICKNAME('boogicho'); // store.dispatch(changeNickname('mighty tak')); //이전상태와 액션을 실행했을 떄, 다음상태 두가지를 다 실행하는 함수! const rootReducer = (state = initialState, action) => { switch (action.type) { case 'LOG_IN': return { ...state, user: { ...state.user, isLoggedIn: true, user: action.data, }, }; case 'LOG_OUT': return { ...state, user: { ...state.user, isLoggedIN: false, user: null, }, }; } }; export default rootReducer; <..store/configureStore.js> import { createWrapper } from 'next-redux-wrapper'; import { createStore } from 'redux'; import reducer from '../reducers'; const configureStore = () => { const store = createStore(reducer); return store; }; const wrapper = createWrapper(configureStore, { debug: process.env.NODE_ENV === 'development', }); export default wrapper; <터미널 에러 표시> ❯ npm run dev > react-nodebird-front@1.0.0 dev > next Browserslist: caniuse-lite is outdated. Please run: npx browserslist@latest --update-db ready - started server on http://localhost:3000 error - ./store/configureStore.js Attempted import error: 'createWrapper' is not exported from 'next-redux-wrapper'. 처음엔 단순히 리덕스버전 문제인줄 알앗는데, 구글에서도 검색해도 잘 나오지 않고, 문제 이해가 어려워서 질문올립니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
index.html
궁금한게 localhost:8080에 들어가면 왜 index.html화면이 나오는건가요
-
미해결홍정모의 따라하며 배우는 C언어
12분 45초 가량부분 질문드립니다.
일괄적으로 \\을 추가하거나 코드에서 일괄적으로 \\을 삭제하는 것은 어떻게 하는것 인가요?1
-
미해결
getMapping을 제대로 했는데 다른 주소로 이동되는 경우는 어떤 경우인가요?
안녕하세요 제목과 같이, getMapping을 통해서 html 파일로 이동되도록 잘 설정한 것 같은데 만든 홈페이지에서 클릭을 하면 다른 곳으로 이동됩니다... 예를 들면 회원 정보 보기를 눌렀는데 로그인 페이지로 이동합니다. 수동으로 회원정보보기 주소를 입력해도 바로 로그인 페이지가 뜹니다;;ㅜ 404 에러가 뜨는것도 아니고... 이건 어떤 케이스일까요? 감사합니다...