묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
이미지 파일 어디서 다운받나요..?
네이버 회원가입 폼 만드는 강의를 보니 파비콘, 네이버로고, 비밀번호 확인 아이콘등 이미지가 쓰이는데 어디서 다운로드 해야하는지 안보여요. 파일이 누락되어있는 강의가 많은 것 같습니다ㅠㅠ
-
미해결따라하며 배우는 NestJS
저는 왜 import가 자동으로 되지 않을까요?
혹시 관련 모듈이나 단축키가 있을까아ㅛ?이번 강의에서는 BaseEntity가 영상에서 보면 자동으로 import가 되던데 저는 되지 않습니다;
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
클립패스 오버레이 그림자 질문이요!
hexagon에 transition: 0.5s를 줘서hexagon에 hover를 할때 hexagon이 움직이고 그림자가 입체감있게 줄어들었음 좋겠는데요.그림자가 이상하게 움직입니다..ㅠㅠ.hexagon:hover::before { bottom: -130px}여기에 문제가 없는 것 같은 게..hexagon에 transition을 빼면 그림자 높이가 정상적으로 작동해요.왜 이런걸까요?코드 첨부합니다..<index.html><!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="frame"> <div class="hexagon"> <div class="shape"> <div class="caption"> <h2>EAU ROSE</h2> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Amet, similique.</p> </div> <img src="images/01img.jpg" alt=""> </div> </div> <div class="hexagon"> <div class="shape"> <div class="caption"> <h2>DOSON</h2> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Amet, similique.</p> </div> <img src="images/02img.png" alt=""> </div> </div> <div class="hexagon"> <div class="shape"> <div class="caption"> <h2>EAU DES SENS</h2> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Amet, similique.</p> </div> <img src="images/03img.png" alt=""> </div> </div> </div> </body> </html><style.css>/* Google Web Font */ @import url('https://fonts.googleapis.com/css?family=Montserrat:300,400,500&display=swap'); *{ box-sizing: border-box; } body{ margin: 0; font-family: 'Montserrat', sans-serif; color: #333; display: flex; justify-content: center; align-items: center; height: 100vh; } .frame { display: flex; gap: 40px; } .hexagon { width: 400px; height: 450px; position: relative; transition: 0.5s; } .shape { clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); width: inherit; height: inherit; position: absolute; } .shape img { width: inherit; height: inherit; object-fit: cover; } .hexagon .caption { position: absolute; width: inherit; height: inherit; color: #fff; transition: 0.5s; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 20px; opacity: 0; transform: translateY(20px); } .hexagon .caption h2 { font-size: 2em; } .hexagon:nth-child(1) .caption{ background: linear-gradient(to top, rgb(165, 42, 83), transparent); } .hexagon:nth-child(2) .caption{ background: linear-gradient(to top, rgb(42, 118, 165), transparent); } .hexagon:nth-child(3) .caption{ background: linear-gradient(to top, rgb(165, 165, 42), transparent); } .hexagon:hover .caption { opacity: 1; transform: translateY(0); } .hexagon:hover { transform: translateY(-60px); } .hexagon::before{ content: ''; position: absolute; width: 100%; height: 60px; background-color: black; background: radial-gradient(rgba(0, 0, 0, 0.44),transparent, transparent); bottom: -70px; } .hexagon:hover::before { opacity: 0.6; transform: scale(0.8); bottom: -130px; }
-
미해결스프링 시큐리티
spring mvc설정으로 인한 controller-mapping error
spring mvc방식으로 구현해보고 있는데 권한 인증인 403에러는 잘뜹니다. 하지만 controller를 통해서 들어가면 404에러가 뜹니다. 관련되서 질문드립니다.@RestControllerpublic class AdminController { @GetMapping("/admin") public String admin() { return "admin"; }} xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:security="http://www.springframework.org/schema/security" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd "> <security:http auto-config="true" use-expressions="false"> <security:intercept-url pattern="/**" access="ROLE_ADMIN"/> <security:form-login/> </security:http> <security:authentication-manager> <security:authentication-provider> <security:user-service> <security:user name="admin" password="{noop}1234" authorities="ROLE_ADMIN, ROLE_USER"/> <security:user name="user" password="{noop}1234" authorities="ROLE_USER"/> </security:user-service> </security:authentication-provider> </security:authentication-manager> <mvc:resources mapping="/jsp/**" location="/jsp/"></mvc:resources> <context:annotation-config/> <context:component-scan base-package="com.test"/> <mvc:annotation-driven /> <mvc:default-servlet-handler/> <bean id="viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean></beans> web.xml <?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:spring/context-spring.xml </param-value> </context-param> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/context-spring.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app> 접속 404오류 로그 DEBUG [FilterChainProxy] - Securing GET /adminDEBUG [HttpSessionSecurityContextRepository] - Retrieved SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=admin, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_ADMIN, ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=B6D437E830FDEBF274A77AF35C51A114], Granted Authorities=[ROLE_ADMIN, ROLE_USER]]]DEBUG [SecurityContextPersistenceFilter] - Set SecurityContextHolder to SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=admin, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_ADMIN, ROLE_USER]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=B6D437E830FDEBF274A77AF35C51A114], Granted Authorities=[ROLE_ADMIN, ROLE_USER]]]DEBUG [FilterSecurityInterceptor] - Authorized filter invocation [GET /admin] with attributes [ROLE_ADMIN]DEBUG [FilterChainProxy] - Secured GET /adminDEBUG [DispatcherServlet] - GET "/admin", parameters={}DEBUG [SimpleUrlHandlerMapping] - Mapped to org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler@8c32dcDEBUG [DispatcherServlet] - Completed 404 NOT_FOUNDDEBUG [SecurityContextPersistenceFilter] - Cleared SecurityContextHolder to complete request
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
jupyter notebook이 실행 되지않아요 ㅠㅠ
안녕하세요수업에 맞게 jupyter notebook을 설치하고 실행했는데 오류가 발생합니다.구글링을 해봐도 찾기가 어려워서 질문남깁니다도와주세요~~ (askcompany) C:\Dev\askcompany>jupyter notebook[I 15:02:17.522 NotebookApp] Copying C:\Users\skseo/.ipython\nbextensions -> C:\Users\skseo\AppData\Roaming\jupyter\nbextensionsTraceback (most recent call last): File "C:\ProgramData\Anaconda3\envs\askcompany\Scripts\jupyter-notebook-script.py", line 10, in <module> sys.exit(main()) File "C:\ProgramData\Anaconda3\envs\askcompany\lib\site-packages\jupyter_core\application.py", line 269, in launch_instance return super().launch_instance(argv=argv, **kwargs) File "C:\ProgramData\Anaconda3\envs\askcompany\lib\site-packages\traitlets\config\application.py", line 845, in launch_instance app.initialize(argv) File "C:\ProgramData\Anaconda3\envs\askcompany\lib\site-packages\traitlets\config\application.py", line 88, in inner return method(app, args, *kwargs) File "C:\ProgramData\Anaconda3\envs\askcompany\lib\site-packages\notebook\notebookapp.py", line 2141, in initialize super().initialize(argv) File "C:\ProgramData\Anaconda3\envs\askcompany\lib\site-packages\traitlets\config\application.py", line 88, in inner return method(app, args, *kwargs) File "C:\ProgramData\Anaconda3\envs\askcompany\lib\site-packages\jupyter_core\application.py", line 244, in initialize self.migrate_config() File "C:\ProgramData\Anaconda3\envs\askcompany\lib\site-packages\jupyter_core\application.py", line 174, in migrate_config migrate() File "C:\ProgramData\Anaconda3\envs\askcompany\lib\site-packages\jupyter_core\migrate.py", line 225, in migrate if migrate_one(src, dst): File "C:\ProgramData\Anaconda3\envs\askcompany\lib\site-packages\jupyter_core\migrate.py", line 129, in migrate_one return migrate_dir(src, dst) File "C:\ProgramData\Anaconda3\envs\askcompany\lib\site-packages\jupyter_core\migrate.py", line 93, in migrate_dir shutil.copytree(src, dst, symlinks=True) File "C:\ProgramData\Anaconda3\envs\askcompany\lib\shutil.py", line 368, in copytree raise Error(errors)shutil.Error: [('C:\\Users\\skseo/.ipython\\nbextensions\\A71A7URN.XLSX', 'C:\\Users\\skseo\\AppData\\Roaming\\jupyter\\nbextensions\\A71A7URN.XLSX', "[Errno 2] No such file or directory: 'C:\\\\Users\\\\skseo/.ipython\\\\nbextensions\\\\A71A7URN.XLSX'")]
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
데이터 프레임 슬라이싱
안녕하세요 선생님 혹시 데이터프레임 슬라이싱을 할때.loc 또는 .iloc 로 슬라이싱이 아닌df[A:B, C:D] 형식으로도 슬라이싱이 가능한 것인지 질문드립니다. 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
새로운 패키지가 생성되지 않아요
안녕하세요~!!이전에 질문 드렸었는데, 제가 드린 질문의 의도가 전달되지 않은것 같아서 다시 질문드립니다.https://www.inflearn.com/questions/679672종속의 비어 있는 2개의 패키지를 생성하려고 할 경우 생성되지 않습니다.ex) domain>member 패키지 생성하려고 할 경우(1) domain 패키지 생성(2) member패키지 생성 시도(3) 결과물 ->2개의 패키지가 아닌 하나의 패키지가 겹쳐서 생성?domain만들고 빈 dummy파일 만들고 member패키지 만들고 있는데 공부의 질이 떨어집니다 ㅠㅠㅠintellij cannot create package rename.. 이런식으로 google찾아보는데도 잘 안나와서요~ ㅠㅠㅠ인텔리제이 도움 부탁드립니다 ㅠㅠ
-
미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
콜백함수 타입질문입니다.
5:35분에 콜백함수타입 지정하는부분에서function a4(a: () => void): void {} a4(() => { return "3";});타입스크립트 공부중인데 만약에 이렇게 콜백함수에 타입은 준다했을떄 함수의 인수로 a:() => void 이부분에서 a가 a4 ( ()=> { return '2'}) 이부분에서 ()=> { return '2'} 이거맞을까요?
-
미해결프론트엔드 날개달기: Vue, React 배우기 전에 꼭 알아야하는 지식
DOM(document object model)과 BOM(broswer object model)의 상관 관계
안녕하세요. dom과 bom의 상관 관계가 궁금해서 질문드립니다. dom은 자바스크립트의 내장객체로 자바스크립트를 이용해서 html의 요소(태그)에 접근이 가능하여 이를 이용해서 html이나 css내용등을 변경가능하게 해주는것으로 이해하고 있고 bom은 역시 자바스크립트의 내장객체로써 웹 브라우저와 관련된 객체의 집합으로서 각각 window, document, location, navigator, history, screen 등등이 정의 되어 있는데 이렇게 되면 bom안에 document 객체가 있음으로서 bom과 dom을 각각 따로 구분할것이 아니라 bom이 dom을 포함하는 개념인지 궁금합니다!
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃허브 권한 요청드립니다.
인프런 아이디 : megajsp01@gmail.com인프런 이메일 : megajsp01@gmail.com깃헙 아이디 : megajsp01@gmail.com깃헙 Username : megajsp01
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
기계가 w를 업데이트를 하는 과정
안녕하세요 선생님경사하강법,오차역전파, 편미분, 잔차에 대한 개념은 이해를 했으나 궁금한점이 있습니다기계가 예측오류를 줄이기 위해서 w업데이트를 하는 과정이 잘 이해가가 가지 않습니다예를 들어 가중치들이 초기값 으로 시작했고 나온 출력값과 실제값의 차이가 크면 가중치계수를 줄이고 늘리는 방식이 어떤 과정을 통해서 되는지 아직 잘 이해가 가지 않는데 조금 만 더 쉽게 설명해주실수 있나요?예) w0 = 1, w1 = 5 - > y_hat = 10이고 y = 15이면 5만 큼의 차이가 발생했는데 여기서 5를 줄이기 위해서 어떻게 w가 업데이트 되는지 이해가 가지 않습니다
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
postService 목록 조회 단위 테스트
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요. 안녕하세요. 호돌맨님.postService에서 목록 조회하는 단위테스트에 대해서 질문이 있습니다. 먼저 목록 조회 코드부터 보여드리면postService.findPosts 는 postQueryRepository에 구현체로 만들었습니다.postService@Slf4j @Service @RequiredArgsConstructor @Transactional(readOnly = true) public class PostService { public static final String ENTITY_NAME = "post"; private final PostQueryRepository postQueryRepository; private final PostRepository postRepository; /** * Post 목록 조회 */ public Page<Post> findPosts(PostSearchCondition condition, Pageable pageable) { return postQueryRepository.findPosts(condition, pageable); } }postQueryRepository@Repository public class PostQueryRepository { private final JPAQueryFactory queryFactory; public PostQueryRepository(EntityManager em) { this.queryFactory = new JPAQueryFactory(em); } /** * Post 목록 조회 */ public Page<Post> findPosts(PostSearchCondition condition, Pageable pageable) { List<Post> content = getPostList(condition, pageable); JPAQuery<Long> count = getPostListCount(condition); return PageableExecutionUtils.getPage(content, pageable, count::fetchOne); } /** * Post 목록 */ private List<Post> getPostList(PostSearchCondition condition, Pageable pageable) { return queryFactory .select(post) .from(post) .where( searchCondition(condition.getSearchCondition(), condition.getSearchKeyword()) ) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .orderBy(post.id.desc()) .fetch(); } /** * Post 목록 카운트 */ private JPAQuery<Long> getPostListCount(PostSearchCondition condition) { return queryFactory .select(post.count()) .from(post) .where( searchCondition(condition.getSearchCondition(), condition.getSearchKeyword()) ); } /** * where searchCondition LIKE '%searchKeyword%' */ private BooleanExpression searchCondition(SearchCondition searchCondition, String searchKeyword) { if (searchCondition == null || !hasText(searchKeyword)) { return null; } if (SearchCondition.TITLE.equals(searchCondition)) { return post.title.contains(searchKeyword); } else if (SearchCondition.CONTENT.equals(searchCondition)) { return post.content.contains(searchKeyword); } else { return null; } } } 다음은 테스트 코드입니다.postServiceTest@ExtendWith(MockitoExtension.class) class PostServiceTest { //CREATE_POST public static final String POST_TITLE = "post_title"; public static final String POST_CONTENT = "post_content"; //UPDATE_POST public static final String UPDATE_TITLE = "update_title"; public static final String UPDATE_CONTENT = "update_content"; //ERROR_MESSAGE public static final String ENTITY_NAME = "post"; public static final Long NOT_FOUND_ID = 1L; public static final String HAS_MESSAGE_STARTING_WITH = "존재하지 않는 "; public static final String HAS_MESSAGE_ENDING_WITH = "id = "; @InjectMocks PostService postService; @Mock PostQueryRepository postQueryRepository; @Mock PostRepository postRepository; private Post getPost(String title, String content) { return Post.createPostBuilder() .title(title) .content(content) .build(); } @Test @DisplayName("post 목록 조회") void findPosts() { //given List<Post> posts = new ArrayList<>(); for (int i = 0; i < 30; i++) { posts.add(getPost(POST_TITLE + i, POST_CONTENT)); } //검색 안먹힘 PostSearchCondition condition = new PostSearchCondition(); condition.setSearchCondition(SearchCondition.TITLE); condition.setSearchKeyword("0"); PageRequest pageRequest = PageRequest.of(0, 10); given(postQueryRepository.findPosts(condition, pageRequest)).willReturn(new PageImpl<>(posts)); //when Page<Post> contents = postService.findPosts(condition, pageRequest); //then assertThat(contents.getTotalElements()).isEqualTo(3); assertThat(contents.getContent().size()).isEqualTo(3); } } 여기서 findPosts 단위 테스트를 진행하려고 하는데요.목록을 30개를 만들고 검색조건과 페이지 정보를 파라미터로 넘겨서 검색이 된 결과가 나올것이라고 예상했지만 검색조건은 먹히지 않고 30개의 목록만 리턴이 됩니다. 전 검색 조건대로 "0"들어간 title만 검색이되어서contents.getTotalElements() == 3, contents.getcontent().size() == 3 으로 예상을 했는데contents.getTotalElements() == 30, contents.getcontent().size() == 30 로 결과가 나와 테스트에 실패하게됩니다. 구글링으로 mockito, page, test, querydsl, parameter 등 다양하게 검색 해봤는데 원하는 결과를 얻기 못해 질문 한번 드려봅니다. 혹시나 제가 잘못된 방향으로 테스트를 진행하고 있는건지 혹은 다른 방법이 있을지 궁금합니다!깃저장소도 같이 공유드립니다.https://github.com/heechul90/heech-heechlog-server
-
미해결타입스크립트 입문 - 기초부터 실전까지
interface type정의시 Object.values의 타입 지정을 어떻게 해주어야 할지 궁금합니다.
현재 강의 내용 처럼 딕셔너리 패턴으로 interface를 작성하는게 아닌 아래 코드처럼 하나의 key에 대한 type을 지정해주고 Object.values로 생성한 array의 array method를 사용해 value 타입을 보면 typescript가 value들의 타입을 인지하지 못해 any 타입으로 되는 것 같습니다. 위 상황에서 value의 type을 설정해 주려면 아래 코드처럼 value에 직접 타입을 넣어주어야 하는 것일까요?아니면 다른 방법이 있는건지 궁금합니다. interface StringRegexDictionary { regExp: RegExp; str: string; obj: { one: number; two: string; }; } const obj: StringRegexDictionary = { regExp: /abc/, str: 'string value', obj: { one: 1, two: '둘', }, }; Object.keys(obj).forEach(key => { console.log(key); }); Object.values(obj).forEach( ( value: (RegExp | string) & { one: number; two: string; } ) => { console.log(value); } );
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
우선순위를 어떻게 해야할지 모르겠습니다
안녕하세요, 강의 결제하고 필요할 때마다 조금씩 보고 있습니다. 도움이 많이 되어서 감사하다는 말을 우선 전하고 싶었습니다. 제목 그대로 부트캠프 준비, 국비 중 우선순위를 어떻게 정해야할지 조언을 얻고 싶습니다.우테코, 싸피를 준비하고 있습니다. 다만 2개 다 각각 코딩테스트가 있으니 국비와 병행이 쉽지가 않더라고요. 원래 계획은 위의 부트캠프를 떨어지면 국비를 할 생각이었습니다. 그러나 2 ~ 3개월의 공백이 무서움 비전공자라 방향을 모르겠음 강제성이 필요했음 1, 3의 이유가 제일 컸습니다. 그래서 언급하신 괜찮은 국비 중 하나를 듣고 있습니다. 선생님도 잘 가르쳐주십니다. 만족스러워요. 그러나 사람이 욕심이 생기더라고요. 붙고 싶습니다. 처음엔 국비와 준비를 모두 잡으려 그랬습니다. 하지만 시간이 없습니다. 우테코가 과제형이어서 더욱 그렇습니다. 지금 준비한다고 국비 진도를 소홀히 해서 따라가기 힘듭니다. 곧 팀프로젝트라 관두고 싶은 마음이 더 커요. 민폐를 끼칠테니까요. 이제 여러 정보를 찾아서 좋은 인강이나 자료들을 보면서 독학할 자신은 있습니다. 무엇보다 강제성이 없어도 알아서 잘 공부하더라고요. 다만 자신감과 별개로 회피성도 있다는 건 사실이니까요. 성급하게 국비를 등록한 게 너무 후회됩니다. 좋은 선생님어서 더 그렇네요. 주변에 조언을 구할 사람이 없어 여쭤봅니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 등록 조회 둘다 클릭시 화이트페이지가 올라와서 문의 드립니다.
회원 등록 조회 둘다 클릭시 화이트페이지가 올라와서 문의 드립니다. 코드 작성은 동일하게 하였습니다만, 다른 타 관련 질문 또한 읽어 보았습니다만, 어디가 문제인지를 찾지를 못하겠어서 문의를 드립니다. https://drive.google.com/file/d/1ivkyBy1T8ivkUEKoOttwHpjXL1Y4nRb3/view?usp=sharing혹시 몰라 링크를 남깁니다 감사합니다. 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
table 생성오류
안녕하십니까 쌤 다음과 같이 진행했는데 여기서 막혀서 질문드립니다. H2 문법을 따로 공부를 해야될듯한데 시간이 조금 오래걸릴것같아 이렇게 질문드립니다. (H2 문법까지 굳이 공부할 필요가 없어보여서...)
-
해결됨스프링 핵심 원리 - 기본편
컴포넌트 스캔과 @Autowired
컴포넌트 스캔과 의존관계 자동 주입 시작하기 강의 부분입니다.강의 자료를 보면 Autowired로 MemberRepository가 주입 되지도 않은 상태에서 스프링 빈에 인스턴스부터 등록되는 것을 봤습니다.https://www.inflearn.com/questions/656720이 분의 질문이 제 질문과 동일합니다. 로그를 봐도 인스턴스가 먼저 생성되고 @Autowired는 나중에 수행되던데,인스턴스가 생성되려면 생성자를 통해야 하는데 유일한 생성자에 @Autowired가 달려 있고, 기본 생성자는 아예 없어서어떻게 그게 가능한지 궁금합니다. 지금으로서는 ‘스프링이 어떻게든 되게 해주겠지’라고 생각하고 있는데, 이정도 의문은 그냥 넘어가도 된다면 된다고 해주셔도 좋을 것 같습니다. +우연히 발견한 바로는 코드에서 @Autowired를 주석 처리해도 테스트가 정상 동작하던데 이것도 스프링이 알아서 해 주는 부분인가요?
-
미해결Java TPC (생각하고, 표현하고, 코딩하고)
추상클래스 질문!
(질문1) 추상클래스는 굳이 메서드에서 구현부를 구현시키지 않으려고 사용한다고 이해하는게 맞나요? (질문2) 만약에 맞다면 public void eat() {System.out.println("?");} 에서 구현부를 없애는 게 아니라public void eat() {}이런 식으로 하면 안 되는 건가요? 구현부를 구현하지 않으려고 굳이 사용한다는 게 이해가 잘 안 갑니다...ㅠㅠ그 전처럼 하위 클래스에서 재정의만 해줘도 멀쩡히 구현되는데 왜 사용하는 지 이해가 안 갑니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
현업에서 API 수정할 때 과정이 궁금합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]무중단 배포 환경에서의 API 수정 사항, 예를들면 DB의 수정이라던지, API의 스펙 자체를 변경해야할 때의 경우에는 어떤식으로 수정사항을 적용하는지 궁금합니다.제가 사용한 방법으로는 기존 API에서 수정을 해서 바로 적용을해도 서비스에 지장이 없는 경우에는 API를 수정 후 테스트까지 하고 배포를 하는데, 만약 기존 API를 수정했을 때 기존에 작동하고 있는 서비스에 문제가 생길 경우에는 새로운 API 경로로 수정된 API를 작성 후 적용API를 호출하는 곳(프론트)에서 새로운 API 경로로 변경프론트에서 새로운 API 경로로 변경이 완료되면 기존 api 삭제위와 같은 방식으로 진행을 하는게 맞는지 더 좋은 방법이 있는지 궁금합니다.
-
미해결처음 만난 리액트(React)
useCallback 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요!! 굉장히 초보적 질문일 것 같긴 한데,,!! 14장 실습 파트를 하던 중 궁금한 점이 생겨 질문 드립니다.const [theme, setTheme] = useState("light"); const toggleTheme = useCallback(() => { if(theme == "light"){ setTheme("dark"); }else if (theme == "dark"){ setTheme("light"); } }, [theme]); 저는 useCallback 함수가 의존성 배열 내의 데이터가 변경 될 때 실행된다고 이해했는데요,위 코드는 실행 함수가 theme를 변경하는 코드인데,theme 변경 => theme 변경하는 callback 함수실행 순서가 아니라theme 변경하는 callback 함수 실행 => theme 변경 의 순서인것 같아서이게 어떻게 실행되는건지 헷갈려서 질문 드립니다..!!