묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
.btn span에서 border-bottom 없애는 부분이랑 네비게이션 질문있습니다.
.btn span에서 밑에 보더를 없애려고 border-bottom: none; background-color: #fff; margin-bottom: -1px;은 줬는데 display: block; 으로 하면 밑에 보더가 안없어지고 inline-block으로 해야 없어지더라구요. 강의 영상에서는 block으로 해도 된다고 하셨는데... 어떤 차이가 있는 건가요..? 그냥 제가 css 입력을 잘못한걸까요...? css도 같이 첨부합니다. (밑에 css에서는 span이 아니라 a태그로 되어있습니다.) 두번째로 네비게이션의 .li > a 부분에 마우스가 올라가면 서브메뉴가 나와야 하는데 서브메뉴가 내려오는 부분에만 마우스가 올라가도 바로 내려와버립니다. 뭐가 문제인지 모르겠어요... 사진 첨부합니다.. @charset "utf-8"; /*background*/ body { background-color: #ffffff; color: #222328; margin: 0; font-size: 15px; } a { text-decoration: none; color: #000; } /*inner-set*/ .container {} .header-inner { background-color: #ddd; } .content-inner {} .footer-inner { background-color: #ddd; overflow: hidden; } /*header*/ header { width: 1200px; margin: auto; height: 100px; position: relative; } header > div { height: 100px; } .header-logo { width: 200px; float: left; line-height: 130px; } /*navigation*/ .navi { width: 600px; float: right; } .menu { list-style: none; padding: 0; margin-top: 68px; } .menu li { float: left; width: 25%; text-align: center; height: 180px; box-sizing: border-box; } .menu li > a { border: 1px solid black; padding: 5px; display: block; transition: 0.5s; } .menu li:hover > a { background-color: black; color: white; } .sub-menu { border: 1px solid black; display: none; } .sub-menu a { color: white; display: block; padding: 5px; transition: 0.5s; } .sub-menu a:hover { background-color: white; color: black; } .sub-back { background-color: black; width: 100%; height: 170px; position: absolute; right: 0; top: 100%; z-index: -1; display: none; } /*slide*/ .slide { width: 1200px; margin: auto; height: 300px; position: relative; overflow: hidden; z-index: -2; } .slide div { /* height: 300px;*/ width: 3600px; font-size: 0; position: absolute; animation: slide 10s linear infinite; top: 0; left: 0; } @keyframes slide { 0% {left: 0;} 30% {left: 0;} 35% {left: -1200px;} 65% {left: -1200px;} 70% {left: -2400px;} 95% {left: -2400px;} 100% {left: 0;} } /*items*/ .items { width: 1200px; margin: auto; overflow: hidden; } .items > div { box-sizing: border-box; height: 200px; float: left; } /*news*/ .news, .gallery { width: 430px; padding: 10px; } .btn {} .btn a { border: 1px solid black; display: inline-block; width: 100px; padding: 5px; text-align: center; border-radius: 5px 5px 0 0; border-bottom: none; background-color: #fff; margin-bottom: -1px; } .tab1, .tab2 { border: 1px solid black; border-radius: 0 5px 5px 5px; padding: 5px; padding-top: 5px; height: 135px; background-color: white; } .tab1 a { display: block; padding: 3px; border-bottom: 1px solid black; } .tab1 a:last-child { border-bottom: none; } .tab1 a em { font-style: normal; } .tab1 a b { font-weight: normal; float: right; } .tab2 { text-align: center; } .tab2 img { padding-top: 8px; width: 120px; } /*banner*/ .banner { width: 340px; padding: 10px; } .banner img { width: 100%; } /*footer*/ footer { width: 1200px; margin: auto; overflow: hidden; } footer > div { height: 100px; } .footer-menu { float: left; } .footer-menu > div { height: 50px; width: 1000px; text-align: center; box-sizing: border-box; } .bottom-menu { line-height: 50px; } .copyright { line-height: 20px; } .family-site { float: right; width: 200px; } /*modal*/ .modal { background-color: rgba(0, 0, 0, 0.2); width: 100%; height: 100%; position: absolute; top: 0; left: 0; display: none; } .modal-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: white; border-radius: 10px; padding: 30px; width: 400px; height: 450px; } .modal h2 { text-align: center; } .modal p { padding: 10px; margin-top: 30px; } .close-modal { float: right; background-color: black; color: white; padding: 7px; border-radius: 5px; margin: 10px; margin-top: 20px; cursor: pointer; } 제이쿼리 $('.menu li').mouseenter(function(){ $('.sub-menu, .sub-back').stop().slideDown() }) $('.menu li').mouseleave(function(){ $('.sub-menu, .sub-back').stop().slideUp() })
-
미해결게임 프로그래머 취업 전략 가이드
취업 고민 입니다.
삭제된 글입니다
-
미해결자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!
System.out.println("i + j = " + (i+j); 이렇게 쓰는 이유가 뭔가요? " "i + j " = (i +j)라고 쓸수 있는거 아닌가요?
System.out.println("i + j = " + (i+j); 이렇게 쓰는 이유가 뭔가요? " "i + j " = (i +j)라고 쓸수 있는거 아닌가요?
-
미해결스프링 핵심 원리 - 기본편
@Configuration이 붙지 않은 상태에서 @Configuration이 붙은 설정 정보와 같은 원리로 적용되는 이유
안녕하십니까 강사님 요즘 강사님 스프링 강의를 들으면서 파고드는 재미를 느끼고 있음에 감사합니다. 다름이 아니라 이번 강의에서 DiscountService가 @Configuration이 붙지 않은 상태에서 Annotation~~의 인자로 들어감에도 불구하고, @Configuration이 붙은 설정 정보 클래스와 동일하게 적용이 되는 것을 보고 궁금하여 QnA를 모두 보았습니다. 그래서 아래의 QnA에 대한 답을 보고 파고드는데 제 궁금증이 해소되지 않아 질문드립니다. https://www.inflearn.com/questions/261305 1. 이건 예외처리인 것 같습니다. 2. 이게 무슨 말인지 몰라 하나하나 레퍼런스를 보면서 해석해보았습니다. this.getApplicationStartup()은 applicationStartup형 을 반환하고, applicationStartup의 메서드 start를 사용하여 새 단계를 만들고 시작을 표시한다고 합니다. (무슨 말인진 모르겠지만) 그래서 start메서드를 사용하면 StartupStep형을 반환한다고 합니다. 여기서 tag메서드를 사용하여 인자로 받았던 componentClasses 내용을 파라미터로 사용한다.? 3. this.reader는 이전 강의에서 배운 스프링이 어떻게 종류별로 BeanDefinition을 읽게 되는지 그 때 배웠었고, register메서드를 사용하여 componentclasses를 등록한다. register 메서드를 또 따라가보니 그냥 빈을 등록하는 것 같은데,, 계속해서 파고들었는데도, 왜 @Configuration이 붙지 않은 클래스를 인자로 넣어도 @Configuration이 붙은 설정 정보 클래스와 동일하게 되는지 궁금합니다,, 혹시 제가 잘못된 곳을 파고있었다면,, 혹시 어딜 파야 이 부분을 알 수 있는지 여쭤봐도 될까요??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코드 피드백 부탁 드립니다
import java.util.*; public class Main { public int solution(int n, int[][] arr) { int answer = 0; int[] stu = new int[n]; int cnt; int sum = 0; for (int i = 0; i < n; i++) { cnt = 0; for (int j = 0; j < 5; j++) { for (int k = 0; k < n; k++) { if (i != j && arr[i][k] == arr[j][k]) { cnt++; stu[i] += cnt; cnt = 0; } } } sum = Math.max(sum, stu[i]); if (sum == stu[i]) { answer = i + 1; } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] arr = new int[n][5]; for (int i = 0; i < n; i++) { for (int j = 0; j < 5; j++) { arr[i][j] = sc.nextInt(); } } System.out.print(T.solution(n, arr)); } }
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
5강 데이터베이스 접속
삭제된 글입니다
-
해결됨풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)
기술 스택에 관해서 질문이 있습니다
안녕하세요 강의 너무 잘 들었습니다. 현재 저는 실무에서 apollo client를 사용해서 프론트엔드 개발을 하고 있는데요. 강의에서는 apollo client 대신 react-query, graphql-tag, graphql-request를 사용하셨는데 간단하게 예제를 만들기 위해서 사용하셨나라는 생각도 들지만 혹시 다른 이유가 또 있지 않을까 궁금해서 질문드립니다
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
Upload 컴포넌트가 api서버랑 통신을 주고받는 건가요?
<Upload name="image" action={`${API_URL}/image`} listType="picture" showUploadList={true} onChange={onChangeImage} > 여기서 action의 url로 요청을 보내고 app.post("/image", upload.single("image"), (req, res) => { const file = req.file; console.log(file); res.send({ imageUrl: file.path }); }); api 서버에서 req인자로 받으면 res를 Upload컴포넌트에게 돌려주고 onChangeImage 함수에서 info 인자는 res로 받는 건가요? 혼자 한 시간 넘게 고민해봤는데 헷갈려서 질문드립니다.ㅜㅜ
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
Fetch Join 한계? 질문드립니다.~
안녕하세요 강사님 해결을 못해서 질문드립니다 .. class A{ .... @OneToMany List<B> bList; } class B{ ... @OneToMany List<C> cList; } class C{ ... } B,C는 데이터가 있을수도 있고 없을 수도 있는 형태입니다. (일부 생략하였습니다)select * from A a left join B b on a.a_id = b.a_id left join C c on b.b_id =c.b_id where a.email = 'email'; 결과를 List<A> 로 받으려고 합니다. 제 생각에는 아래 쿼리 한번이면 관련 데이터들을 하나의 쿼리로 할 수 있을 것 같은데fetch 조인이 OneToMany의 경우 fetch 조인은 한번 밖에 걸수 없는 것으로 알고 있습니다.이런 경우에는 native query로 사용해야하는 건가요..아니면 for loop를 돌면서 LAZY 로딩으로 각각 A가 가지고 있는 B의 개수만큼 쿼리를 날리는게 좋은걸까요..? (default_batch_fetch_size : 1000 설정) 질문드립니다
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
future에서 deferred를 사용하는이유
future타입을 deferred로 하면 future를 get하는 시점에 future에 바인딩된 함수를 호출한다는건데 그냥 get하는 시점에 해당함수를 바로호출하면 되는거 아닌가요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
자바스크립트 비동기 처리(2) - Promise 질문이요
처음에 promise안쓰고 ajax만 썼을 떄 콜백함수끝나고 console찍었는데 값이 안나왔잖아요? 이유가 콜백함수보다 아래 있는 두번쨰 console이 먼저 실행되기 때문에 그리고 이제 promise쓴 코드인데 이것도 보면 .then이라는 콜백함수 안에다가 콘솔을 넣어놨으니까 데이터가 찍히는거지 promise안쓴거랑 똑같은 상황에서 비교하려면 callajax함수내에서 두번째 결과를 콜백함수 내에 있는데 아니라 밖에 있어야 하는거 아니에요? rpomise안쓰고 그냥 콜백해도 콜백안에다가 result하면 값나오게 되니까요. 그래서 하고싶은말은 promise를 왜쓴지 모르겠어요.
-
해결됨이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
에러 발생
이와 같은 에러가 발생하였는데 해결방법을 고민해보았지만 답을 찾지 못하여 질문을 남깁니다.깃허브 주소도 남기겠습니다https://github.com/onejaejae/Learn_Image_Fullstack양질의 강의 감사합니다!
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
virtualized list 기술 적용한 성능 최적화
안녕하세요 강사님! 이미지 인피니트 스크롤링할때 virtualized list 적용해서 성능을 최적화 하는 방법도 강의해 주실 수 있을까요?
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
수업자료 다운
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수업자료 다운을 했는데 압축폴더 안에 어떠한 자료도 없고, 폴더가 비어있다고 뜹니다. 자료를 다운 받을 수 있는 다른 방법이 있을까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
클라이언트 소켓에 질문있습니다.
예시코드처럼 클라이언트 소켓은 논블로킹으로 설정해주고 서버 소켓은 블로킹인 상황에서 서버소켓으로 accept해줘서 만든 서버쪽의 클라이언트 소켓은 논블로킹 소켓이 되는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
커맨드와 쿼리의 구분 후 쿼리문 한번 더 실행에서의 궁금증...
강의에서 영한님께서는 커맨드와 쿼리를 구분하는 것을 선호하신다고 하셨습니다. 그래서 알아보니 이런걸 CQRS라고 하던데 회원 정보를 update시 update command 메소드 실행 후 보통같으면 update메소드 자체의 반환값으로 member객체나 member id를 받는데, 이것을 명령과 질의를 구분해 memberService.update() 후 memberService.findOne을 실행하면 결과적으로 쿼리문을 한번 더 실행을 하게 되잖아요? update 메소드 내에서도 findOne이라는 메소드를 호출하니깐요. 이렇게 명령과 질의를 분리하였지만 그 대가로 쿼리문을 한번 더 호출하게 된 셈인데 쿼리문을 한번 더 호출해서 명령과 질의를 구분하는 것이 많이 효율적인 패턴인가요?
-
해결됨실전! Querydsl
객체설계에 대해서 질문이 있습니다.
안녕하세요. 김영한 강사님. 강사님이 올려주신 강의를 잘 듣고 있습니다. 궁금한 부분은 JPA를 사용하고 있는 현업에서는 어떻게 설계하며, 개발을 진행하는지입니다. 우선 제 상황을 간단하게 말씀드리면 업무요건을 확인하면서 아래의 단계로 설계를 진행합니다. 1. 개념데이터 모델링 - 주 목적은 업무요건에 맞춰서 엔터티가 잘 도출되었는지 확인합니다. 2. 논리데이터 모델링 - 주제영역 , 엔터티 정의, 엔터티관계 정의(1:1, 1:N), 속성정의(식별자도출), 역정규화 등등 - 메타데이터(표준단어, 표준용어, 도메인,유효값) 한글(영문)명 생성 3. 물리데이터 모델링 - 논리데이터 모델링을 기준으로 물리데이터 생성합니다. 위 단계처럼 계속적으로 업무요건에 맞게 논리데티터 모델링을 진행하고, 최종적으로 물리데이터 모델링을 진행후 에 개발을 진행합니다. 질문-1) 궁금한건 JPA DDD 기반으로 설계를 하는경우에도 위 단계처럼 엔터티 설계 후 객체(Entity)를 테이블 기준으로 생성하는지요? 아니면 객체와 테이블을 나누어서 영역별로 설계를 진행하는지요? 객체와 테이블간의 설계 순서가 있는지 궁금합니다. 질문-2) 만약 위 질문-1)처럼 테이블 설계 후 객체(Entity) 설계를 진행하는경우 객체의 필드를 테이블기준으로 컬럼매핑한다면 맵핑관계에서 객체필드의 속성들을 테이블속성에 위임하는지요? 즉, 물리테이블 생성 시 컬럼사이즈, not null, default, unique index 정의 해놓고 추가적으로 객체에도 컬럼 어노테이션으로 추가적으로 설정을 하는지요. 아니면 테이블 속성에 위임을 하는지 궁금합니다. 질문-3) 객체별 식별자는 @ID Long ID 를 정의해서 수업을 진행하셨는데 보통 pk는 어떤 규칙으로 생성하는지 궁금합니다. - 어떤 교재에서는 독립엔터티인경우 인조키로 생성하여 종속 혹은 교차엔터티는 부모의 식별자를 상속(pk) or 비상속(fk)받거나, 하위 엔터티와의 연관관계가 깊어지면 연결관계를 끊고 인조키를 생성한다고 합니다. - 근데 또 어떤분들은 인조키만으로도 충분하다고 하시면서 모든 테이블(독립/교차/종속 전체)들을 모두 인조키로만 생성하여 진행한다고도 합니다. 질문-4) JPA 영속성 컨텍스트(SQL 저장소,1차캐시)는 지연 및 변경을 이용하여 SQL를 직접 사용하지 않고 Jpql, Flush, Transaction 등 특정 이벤트가 발생하면 jpa가 쿼리를 직접 수행하는걸로 이했습니다. 정말 개발자에게는 등록/수정/조회/삭제 등 쿼리 작성하지 않고 비지니스 로직처리에 집중한다고 하는데 좋은 기술인거 같습니다. 만약 영속성 컨텍스트를 사용하여 특정 객체를 조회하면 추가적으로 동일 객체를 조회하게 된다면 영속성 컨텍스트에 있는 객체가 조회된다고 이해하였습니다. (참조값동일) 하지만 만약 누군가가 이미 동일 객체를 변경하여 오라클 버퍼캐쉬 및 디스크까지 저장된 상태라면 어떻게 되는지요? 트랜잭션 격리성이 "Non-Repeatable Rad" 인지요? 영속성 컨텍스트가 변경감지를 통해서 동일객체가 변경되었다는걸 알고 db에서 재조회를 한 이후에 영속성컨텍스트에 재적재를 하는지 잘 이해가 되지 않아서 질문드립니다. (참고 16.1.1 트랜잭션과 격리수준) 감사합니다.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
CV 세트 기반 스태킹
안녕하세요. CV 세트 기반의 스태킹에서 질문이 있습니다. 책 284p를 보면 '첫 번째, 두 번쨰, 세 번째 반복을 수행하면서학습 폴드 데이터로 학습된개별 모델이 원본 테스트 세트로 예측한 결괏값을 최종 평균하여 메타 모델에서 사용될 테스트를 만든다'라고 나와있습니다! 여기서 최종 평균을 한다는 것은 hard voting처럼 다수결로 최종 예측 값을 결정하게 되는 것인가요?! 아니면 soft voting처럼 평균 값을 내서 최종 예측 값을 결정하게 되는 것인지 궁금합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
영속성 컨텍스트와 트랜잭션 관련 질문 있습니다.
안녕하세요 JPA 를 공부를 하다가 영속성 컨텍스트의 기본 전략은 트렌잭션 범위라고 알고 있어 테스트 코드를 작성해 실행해 본 결과 아래와 같은 코드에서 select 문이 안 나가는 걸 볼 수 있었습니다.select 문이 안 나가는 것은 영속성 컨텍스트 안에서 가져온 객체라고 볼 수 있는데 save와 select 가 각각 다른 트랜젝션 단위에서 작동을 하는데 왜 이런 결과가 나오는 건가요..? 테스트 코드 git 주소 첨부드립니다. ( test3 메소드 )깃 주소 @Test @DisplayName("영속성 컨텍스트 1차 캐시 - 트랜잭션이 다른 경우 - 1차 캐시 사용 불가") void test3() throws Exception{ User user = User.builder().nickname("유저 1").build(); save(user); // 트랜잭션 1 //select 문이 나가야 함 // 트랜잭션 2 User findUser = find(user.getId()); //다른 객체라고 나와야하는데 select 문이 안나가고 같은 객체가 나오는 걸 보니 영속성 컨텍스트 안에서 동작 중임 log.info("{} - {}",user.hashCode(), findUser.hashCode()); assertThat(user, is(not(equalTo(findUser)))); } @Transactional(propagation = Propagation.REQUIRES_NEW) void save(User user){ userRepository.save(user); } @Transactional(propagation = Propagation.REQUIRES_NEW) User find(Long id) throws NotFoundException { return userRepository.findById(id).orElseThrow(() -> new NotFoundException("not found Exception")); }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JdbcTemplate 사용 시 쿼리 보관
안녕하세요. 좋은 강의 감사합니다. 프로젝트에서 DB 접속을 JdbcTemplate를 사용한다면 쿼리를 개발자가 작성해야 할 텐데, sql 쿼리가 길고 많아질 경우 @Repository 가 붙은 class 메서드마다 쿼리를 정의하면 코드가 너무 지저분할 거 같은데, 그럴 경우 실무에서는 어떻게 관리를 하는지 궁금합니다. (별도의 static 쿼리 클래스를 만든다든지, 아니면 안드로이드처럼 string.xml 같은 걸 사용한다든지 그런 방법이 궁금합니다)