묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
useSWR 로직을 hooks로 사용하는 경우
로그인 유지를 swr 방식으로 교체하려고 합니다.https://swr.vercel.app/ko/docs/getting-started공식문서에는 useSWR을 hook으로 활용하는 가이드를 제시하고 있습니다.(재사용 가능하게 만들기 항목)가이드와 같은 방식으로 외부 파일에 hooks를 만들고, 적용했습니다.useMyInfo.jsimport axios from 'axios'; export default function useMyInfo(useSWR) { const fetcher = url => axios.get(url, { withCredentials: true }).then(result => result.data); const { data: me, error: myInfoError, isLoading: myInfoLoading, } = useSWR(`${process.env.NEXT_PUBLIC_BACK_END_DOMAIN}/user/me`, fetcher); // mutate('ME', { me, myInfoError, myInfoLoading }); return { me, myInfoError, myInfoLoading, }; } index.jsconst Home = () => { const { freePosts, loadFreePostsStatus, postTotal, addPostStatus } = useSelector(state => state.post); useEffect(() => { useMyInfo(); // hooks 호출 }, []); ...// 생략매개변수로 전달하는 방식으로도 바꿔봤습니다.import useSWR from 'swr' const Home = () => { const { freePosts, loadFreePostsStatus, postTotal, addPostStatus } = useSelector(state => state.post); useEffect(() => { useMyInfo(useSWR); // hooks 호출, hooks에서는 매개변수 받아서 적용하는 방식으로 변경했음 }, []); ...// 생략여전히 같은 에러가 뜹니다.공식문서 가이드와 달리 hook으로 만들어 재사용하는 것이 잘 안되는데 어떻게 해결할수 있나요? 간단한 get요청 하나 가져오는게 편할줄 알았는데 redux 보다 어려운거 같네요..
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
테스트 시행 시 롤백
게시글 조회5-페이징처리(QueryDSL) 강의 내용 이후 전체 테스트를 시행하면 PostControllerTest에서 test5, test6에서 id값을 검증할때에 이전의 테스트에서 PostRepository에 저장이 되어 test5에서는 id값이 30이어야하는데 33이고, test6에서는 30이어야하는데 63으로 이전 테스트 수행 결과가 롤백되지 않아요.BeforeEach랑 Transactional 둘 다 사용해보았는데 테스트가 독립적으로 수행되지 않습니다.찾아보니 sequence는 롤백되지 않는 것이 DB의 기본 규칙이라는데 호돌맨님은 강의에서 전체 테스트를 수행하여도 모든 테스트케이스가 통과되어서 코드에서 어떤 부분이 다른지 궁금합니다.package com.blog.controller; import com.blog.domain.Post; import com.blog.repository.PostRepository; import com.blog.request.PostCreate; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.servlet.MockMvc; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; import static org.hamcrest.Matchers.is; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.http.MediaType.APPLICATION_JSON; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @SpringBootTest @AutoConfigureMockMvc @Transactional class PostControllerTest { // TODO ObjectMapper 공부하기 @Autowired private ObjectMapper objectMapper; @Autowired private MockMvc mockMvc; @Autowired private PostRepository postRepository; @Test @DisplayName("/posts 요청 시 출력한다.") void test() throws Exception { // given PostCreate request = PostCreate.builder() .title("제목입니다.") .content("내용입니다.") .build(); String json = objectMapper.writeValueAsString(request); // expected mockMvc.perform(post("/posts") .contentType(APPLICATION_JSON) .content(json)) .andExpect(status().isOk()) .andDo(print()); } @Test @DisplayName("/posts 요청 시 title 값은 필수다.") void test2() throws Exception { // given PostCreate request = PostCreate.builder() .content("내용입니다.") .build(); String json = objectMapper.writeValueAsString(request); // expected mockMvc.perform(post("/posts") .contentType(APPLICATION_JSON) .content(json)) .andExpect(status().isBadRequest()) .andExpect(jsonPath("$.code").value("400")) .andExpect(jsonPath("$.message").value("잘못된 요청입니다.")) .andExpect(jsonPath("$.validation.title").value("타이틀을 입력해주세요.")) .andDo(print()); } @Test @DisplayName("/posts 요청 시 DB에 값이 저장된다.") void test3() throws Exception { // given PostCreate request = PostCreate.builder() .title("제목입니다.") .content("내용입니다.") .build(); String json = objectMapper.writeValueAsString(request); // when mockMvc.perform(post("/posts") .contentType(APPLICATION_JSON) .content(json)) .andExpect(status().isOk()) .andDo(print()); // then assertEquals(1L, postRepository.count()); Post post = postRepository.findAll().get(0); assertEquals("제목입니다.", post.getTitle()); assertEquals("내용입니다.", post.getContent()); } @Test @DisplayName("글 1개 조회") void test4() throws Exception { // given Post post = Post.builder() .title("123456789012345") .content("bar") .build(); postRepository.save(post); // expected mockMvc.perform(get("/posts/{postId}", post.getId()) .contentType(APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.id").value(post.getId())) .andExpect(jsonPath("$.title").value("1234567890")) .andExpect(jsonPath("$.content").value("bar")) .andDo(print()); } @Test @DisplayName("글 여러개 조회") void test5() throws Exception { // given List<Post> requestPosts = IntStream.range(1, 31) .mapToObj(i -> Post.builder() .title("호돌맨 제목 " + i) .content("반포자이 " + i) .build()) .collect(Collectors.toList()); postRepository.saveAll(requestPosts); // expected mockMvc.perform(get("/posts?page=1&size=10") .contentType(APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.length()", is(10))) // .andExpect(jsonPath("$[0].id").value(30)) // sequence는 롤백되지 않음(DB 기본규칙) - mysql 계열이라면 auto_increment로 생성한 값은 commit, rollback 에 상관없이 한번 생성한 값을 그대로 유지합니다. .andExpect(jsonPath("$[0].title").value("호돌맨 제목 30")) .andExpect(jsonPath("$[0].content").value("반포자이 30")) .andDo(print()); } @Test @DisplayName("페이지를 0으로 요청하면 첫 페이지를 가져온다") void test6() throws Exception { // given List<Post> requestPosts = IntStream.range(1, 31) .mapToObj(i -> Post.builder() .title("호돌맨 제목 " + i) .content("반포자이 " + i) .build()) .collect(Collectors.toList()); postRepository.saveAll(requestPosts); // expected mockMvc.perform(get("/posts?page=0&size=10") .contentType(APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.length()", is(10))) // .andExpect(jsonPath("$[0].id").value(30)) .andExpect(jsonPath("$[0].title").value("호돌맨 제목 30")) .andExpect(jsonPath("$[0].content").value("반포자이 30")) .andDo(print()); } }
-
미해결실전! Querydsl
querydsl에서 groupby, having 절을 포함한 경우 페이징 처리에 관한 질문 좀 드리겠습니다!
안녕하세요 querydsl로 페이징 처리를 구현하는 도중에 어려움에 부딪혀서 질문 작성하게 됐습니다!List<CloverPayDTO.PageResponse> contents = queryFactory .select(Projections.constructor( CloverPayDTO.PageResponse.class, memberInformation.memberName, member.id, member.nickName, cloverPoint.amount.sum().coalesce(0), member.regDt, member.lastLoginTime) ) .from(cloverPoint) .rightJoin(member) .on(cloverPoint.memberId.eq(member.id)) .join(memberInformation) .on(member.memberInformation.id.eq(memberInformation.id)) .where( goeStartDateAndLoeEndDate(member.regDt, searchRequest.getRegStartDate(), searchRequest.getRegEndDate()) .and(goeStartDateAndLoeEndDate(member.lastLoginTime, searchRequest.getLastLoginStartDate(), searchRequest.getLastLoginEndDate())) .and(eqKeyword(searchRequest.getKeywordType(), searchRequest.getKeyword())) ) .groupBy(memberInformation.memberName, member.id, member.nickName, member.regDt, member.lastLoginTime) .having(goeMinCloverAmountAndLoeMaxCloverAmount(searchRequest.getMinCloverAmount(), searchRequest.getMaxCloverAmount())) .orderBy(member.regDt.desc()) .offset(pageable.getOffset()) .limit(searchRequest.getSize()) .fetch(); private BooleanExpression goeMinCloverAmountAndLoeMaxCloverAmount(int minCloverAmount, int maxCloverAmount) { if (maxCloverAmount == 0) { return null; } return cloverPoint.amount.sum().coalesce(0).goe(minCloverAmount) .and(cloverPoint.amount.sum().coalesce(0).loe(maxCloverAmount)); }위와 같이 Repository에서 데이터를 조회하고 있습니다. 페이징을 처리해야 하는 로직이라 PageableExecutionUtils를 활용하여 Page 객체를 만들어 사용하려고 하는데 group by + having 절을 활용하는 경우 countQuery를 어떤 식으로 구현해야 할지 모르겠습니다... ㅠㅠ단순 SQL인 경우 인라인뷰를 활용하여 조건에 부합하는 count를 가져오겠는데 querydsl에서 인라인뷰는 지원하지 않는다고 알고 있습니다.다른 방식으로 contents.size()를 넘겨서 처리할까 싶었지만 이게 최선인지 잘 모르겠기에 영한님은 이런 경우 어떤식으로 로직을 처리하시는지 알고 싶습니다!!감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
p.123 질문입니다.
교안 123p중,기본 sort()함수와 우선순위큐에서의 정렬은 반대개념인가요? sort()함수에서의 greater<>()는 내림차순이고 less<>()는 오름차순인데 우선순위큐에서는 반대일까요? 교안내용. 단순하게 int형 우선순위큐는 다음 코드 처럼 greater<타입> 을 써서 오름차순, less<타입>을 써서 내림차순으로 바꿀 수 있습니다.
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
(백준 24479) 강의에서 오름차순 정렬시 궁금한 점이 있습니다!
선생님 매번 감사합니다 유튜브부터 많이 도움을 받아 오늘 강의까지 결제하게 되었네요 :)for 문 안에 collections.sort를 사용하셔서 정렬하셨는데 저는 사실 그동안 Arrays.sort만 사용했었거든요프로그래머스에서 다른사람 풀이를 참고하다보면 Collections.sort 가 꽤 많이 나오더라구요합병정렬과 퀵정렬의 차이라는 이론적인 부분 외에 바꿔 사용해도 문제가 없는지, 효율적으로 다른부분이 있는지 궁금합니다! 추가적으로 궁금한게 하나 더 생겨서 수정합니다!문제에서 보면 노드의 방문순서를 출력하라고 했는데for(int i = 1; i <=N, i++) { bw.write(String.valueOf(answer[i]));로 출력해주셨습니다!리스트를 정렬해주었기에 크게 문제가 없는것인가 싶은데...조금 극단적으로 예시를answer[1] = 1answer[2] = 4answer[3] = 2answer[4] = 5answer[5] = 3이라고 했을때사용해주신 방식으로 출력하면 1,4,2,5,3 이 출력되나실제로 방문한 순서는 1,3,5,2,4로 상이하다는 생각이 들었습니다그래서 이중 for문을 사용하여for(int i = 1; i <=N; i++) { for (int j = 1; j <= N; j++) { if (i == answer[j]) 일때 j 의 값을 출력하는게순서를 출력하는게 아닌가.. 라는 의구심이 들었습니다혹시 제가 이해를 잘못하고 있는거라면 지적해주시면 감사히 듣겠습니다!
-
해결됨스프링부트 시큐리티 & JWT 강의
Jwt 토큰 검증해서 정상적인 사용자인지 확인
13분 정도에 if (jwtHeader == null || !jwtHeader.startsWith("Bearer")) { chain.doFilter(request, response); // 다시 필터를 타게 하는 것이다. return; } 위 코드를 작성하시는데 강의에서는 정상적인 사용자가 아닐 경우 다시 필터를 타게 한다고 하시는데질문1. 다시 필터를 타게 하는 것이 아니라 로그아웃을 시키는 것이 정상적인 방법이지 않을까요? (이유는 다시 필터를 타도 이미 정상적인 사용자가 아닌데 다시 필터를 타게 할 이유가 없다고 생각합니다.) 질문2. 스스로 학습하다가 든 생각인데 클라이언트가 로그인 시도를 하면서 서버로 넘긴 데이터이니까 JwtAuthenticationFilter에서 ObjectMapper om = new ObjectMapper(); User user = om.readValue(request.getInputStream(), User.class); System.out.println(user);이렇게 entity 객체로 받는데 dto 객체로 받는 것이 안전하지 않은가요? (물론 강의에서 dto class를 만들지는 않았지만) 질문3. JwtAuthorizationFilter에서Authentication authentication = new UsernamePasswordAuthenticationToken(principalDetails, null, principalDetails.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication);강제로 authentication을 만들어서 security session영역에 authentication을 집어넣는 이유가 궁금합니다.
-
미해결실전 프로젝트로 배우는 타입스크립트
d.ts 컴파일 시 에러 질문 드립니다.
안녕하세요. d.ts 관련하여 타입 추론은 되는데 컴파일 시 Can not find name '타입명' 에러가 계속 발생하여 문의글을 올립니다. 프로젝트 구조는 아래와 같이 되어 있습니다.index.d.tsnode_modules/index.tstsconfig.js 각 파일의 내용은 아래와 같습니다. index.d.tsinterface Person { name: string; age: number; } interface Developer extends Person { skill: string; }index.tsconst dev : Developer = { age: 33, name: 'Developer', skill: 'TS' } console.log('Dev > ', dev. tsconfig.json{ "compilerOptions: { ... "lib": ["DOM", "ESNext"], "module": "commonjs", ... 이 상황에서 tsc index.ts로 컴파일을 실행하면 Developer 부분에 Cannot find name 'Developer' 에러가 발생하고 컴파일이 실패했다는 메세지가 터미널에 출력됩니다. 이해가 안되는 부분은 VS Code 상으로는 인터페이스임을 제대로 추론하고 에러 표시 또한 나오지 않는다는 것입니다. d.ts가 외부 모듈의 타입을 tsc가 파악할 수 없을때, 타입 추론을 할 수 있도록 도와주는 용도로 사용한다고 알고 있고, 일반적으로 프로젝트 루트 경로에 d.ts를 선언하면 전역으로 타입이 적용되는 것으로 알고 있는데, 왜 추론만 되고 실제 컴파일을 실행할 때는 에러가 발생하는지 궁금합니다. 감사합니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
게시글 작성시 post.id를 읽지 못 하는 문제가 있습니다.
안녕하세요, 제로초님. 문제에 대한 고민을 공유하기 앞서 현재 저는 [해시태그 등록하기]까지 수강한 상태입니다.공유하려는 문제는 제목과 같이 게시글 작성시 post.id를 읽지 못 하여 컴포넌트가 렌더링 되지 않습니다. 그러나 새로고침을 하면 작성한 게시글이 정상적으로 렌더링됩니다. 네트워크와 redux 데브툴즈에는 액션들이 모두 정상적으로 작동하고 있음을 확인하였고, 콘솔을 확인해보니 아래와 같은 오류가 뜹니다.위 오류는 비동기로 데이터를 받아오기 전에 먼저 render가 되서 발생하는 에러임을 검색을 통해 확인하였습니다. 그래서 react suspense를 이용하여 해결해보려 했으나 해결하지 못 했습니다. 혹시 제가 해당 오류의 원인을 제대로 파악하지 못 하고 있는 걸까요? 알려주시면 감사하겠습니다.
-
해결됨JPA & Spring Data JPA 기초
도메인과 JPA 엔티티
도메인과 JPA 엔티티를 구분하려고 코드를 작성해봤습니다.@Repository@RequiredArgsConstructorpublic class OrderRepositoryImpl implements OrderRepository {private final OrderJpaRepository orderJpaRepository;@Override public void save(final OrderJpaEntity entity) {orderJpaRepository.save(entity);}@Overridepublic Optional<OrderJpaEntity> findById(final long orderId) {return orderJpaRepository.findById(orderId)}}이러한 방식으로 JpaRepository를 주입받고 OrderRepository를 구현하는 방식입니다.public interface OrderRepository {void save(final OrderJpaEntity entity);Optional<OrderJpaEntity> findById(final long orderId);} 그런데 이때 변경감지를 사용하려면 Order가 아닌 OrderJpaEntity를 반환해야하는데 이렇게 하면 결국 Repository에도 JPA 엔티티에 의존하기 때문에 분리를 잘 하지 못했다는 생각이 듭니다..혹시 도메인과 JPA 엔티티를 분리한다면 어떠한 방식으로 하시나요?
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Sec 9. 5번째 강의 1분 대 Provider를 Code generation으로 어떻게 고칠 수 있을까요?
안녕하세요. 실험적으로 Code Generator 기능을 이용해서 프로바이더를 다시 작성해보고 있습니다.궁금한 게 Section 9. 다섯 번째 강의를 보는데, 1분 대에 나오는 RestaurantStateNotifier와 StateNotifierProvider를 어떻게 CodeGenerator를 이용해서 고칠 수 있을까 고민 중입니다. 시도한 코드는 아래와 같은데요(import는 생략했습니다):part 'restaurant_provider.g.dart'; @Riverpod(keepAlive: true) class Restaurant extends _$Restaurant { final RestaurantRepository repository; Restaurant({ required this.repository, }) { paginate(); } // 초기 상태는 Loading 상태로 @override CursorPaginationBase build() { return CursorPaginationLoading(); } paginate() async { final response = await repository.paginate(); state = response; } } 코드 제너레이션은 잘 되는데, 문제는 이를 실행시키려고 하니 다음과 같은 에러가 뜹니다. Launching lib/main.dart on iPhone 14 Pro Max in debug mode... main.dart:1Xcode build done. 3.9sFailed to build iOS appError (Xcode): lib/restaurant/provider/restaurant_provider.g.dart:15:3: Error: The argument type 'Restaurant Function({RestaurantRepository repository})' can't be assigned to the parameter type 'Restaurant Function()' because 'Restaurant Function({RestaurantRepository repository})' is nullable and 'Restaurant Function()' isn't. restaurant_provider.g.dart:15Could not build the application for the simulator.Error launching application on iPhone 14 Pro Max.Exited 이전까지는 잘 됐었는데, 바로 직전 강의에서 CursorPaginationBase를 만들고, 이를 상속받는 CursorPagination 상태들을 구현하고 나서부터, 문제가 발생한 것 같습니다.아마 CursorPagination의 경우는 data와 meta라는 필드가 들어가는데, 어디선가 Code generation에 문제가 생겨서, CursorPaginationBase가 아닌, data와 Meta를 필요로 하는 생성자가 호출된 건 아닌가 의심하는 중입니다. 아래는 위 코드로 생성된 .g.dart 파일입니다. // GENERATED CODE - DO NOT MODIFY BY HAND part of 'restaurant_provider.dart'; // ************************************************************************** // RiverpodGenerator // ************************************************************************** String _$restaurantHash() => r'50915edab0a63433f5d54b932240cf504147e391'; /// See also [Restaurant]. @ProviderFor(Restaurant) final restaurantProvider = NotifierProvider<Restaurant, CursorPaginationBase>.internal( Restaurant.new, name: r'restaurantProvider', debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product') ? null : _$restaurantHash, dependencies: null, allTransitiveDependencies: null, ); typedef _$Restaurant = Notifier<CursorPaginationBase>; // ignore_for_file: unnecessary_raw_strings, subtype_of_sealed_class, invalid_use_of_internal_member, do_not_use_environment, prefer_const_constructors, public_member_api_docs, avoid_private_typedef_functions 어떻게 하면 Code Generator를 이용해서 문제를 해결할 수 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-D 코드 질문있습니다
안녕하십니까 큰돌님큰돌님이 말씀하신 것처럼 강의 보기 전에 저는 전역변수 cnt를 이용해서 작성했는데 전체적으로 잘 작성했는지 궁금해서 질문드립니다 !http://boj.kr/171ed3e6a98b42439ece862ab2a38ec4
-
미해결3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]
15강과 20강-1 연습중에 해결되지않아서 질문남깁니다
안녕하세요 강의 열심히 듣고있으나 오류를 해결하지못해 질문남깁니다15강 답글기능 작성시에 한글이 들어간경우에 db오류가 나는데 해당 로그가 뜹니다WARN [org.mariadb.jdbc.message.server.ErrorPacket] Error: 1366-22007: Incorrect string value: '\xEC\x95\x88\xEB\x85\x95' for column 'in_title' at row 1한글을 db로 넘겨주는게 문제인거같아 이후 아래 쿼리문 작성해서 테이블 설정 변경해주려고 해도 해결이 안되네요(insert 문을 사용해서 게시판테이블에 한글이 들어간 내용을 입력해주면 문제없이 들어갑니다)20강-1 파일업로드 부분에서 오타나 db설정을 제가 잘못 해준듯한데 어느부분인지 찾아지지 않네요 어떤부분을 다시 살펴보는게 좋을까요?게시판 테이블에 파일을 제외한값들은 저장이 되는데 이미지 폴더도 생성이 안되네요이부분도 확인 부탁드립니다WARN [org.mariadb.jdbc.message.server.ErrorPacket] Error: 1054-42S22: Unknown column 'groupnum' in 'field list'게시판 테이블 사진file 프로시저 사진
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 데이터 Jpa 테스트 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 6분40초즘에 있는 통합 테스트 할 때 오류가 계속 발생하는데 이유를 모르겠어요spring data jpa 사용하기 전까지는 테스트 정상적으로 잘됐는데 spring data jpa로 repository를 바꾸자 마자 오류가 발생합니다...강사님이 하시는 것 처럼 그대로 다 하하고 컴파일 오류도 발생하지 않는데 모르겠습니다.
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
eslintrc.cjs 설정하는데 강의해주시는 코드와 제 코드가 다릅니다.
안녕하세요제목과 같이 eslintrc.cjs 설정하는데 강의해주시는 코드와 제 코드가 달라서 혹시 제가 다른 버전을 사용했나 싶어서 질문 드립니다.아래 사진에서 root는 ""(쌍따음표)로 감싸져있는데 제 코드에서는 다르게 되어있으며 env가 있는 위치에는 parserOption이 있고 env는 없어서요.감사합니다.[강의 내 코드] [제 코드]
-
미해결은종쌤과 자바로 디자인 패턴 쉽게 시작하기
Strategy 패턴 예시 질문드립니다
Strategy 패턴 예시에서showGradeInfo 의 gradeEvaluation을 Factory로 구현하면 Factory 패턴 인가요 Strategy패턴인가요..?
-
해결됨스프링 부트 웹 개발 입문 - 따라하며 배우기
주문내역 조회기능 동작안됨 현상
주문내역에서 고객명 조회나 물품명 조회가 안됩니다.구글에 소스는 공유했습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
회원목록 조회시 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]회원목록 조회시 화이트라벨 오류가 뜹니다. jstl설정도 올바르게 했고 코드상 오류가 뜨지도 않았습니다 그리고 회원목록 조회시 에러가 떠서 코드화면에서 오류가 확인되는지 확인하니 에러가 뜨지 않아서 어떤 오류인지도 확인이 불가능해서 해결을 못하고 있습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 관련 질문
안녕하십니까 큰돌님강사님 교안에서 최대값, 최소값을 구하기 위한 변수를 초기화할 때는 답의 범위 밖에서 초기화 하라고 하셨어서 http://boj.kr/2a9ba159e08f4a9f99e39a8c2cd41c08저는 이런식으로 ret을 제일 최소값인 0보다 밖의 범위인 -1로 했었는데 2-C 는 그렇게 초기화하면 안 되는 예외인 문제인 거죠 ??
-
해결됨예제로 뿌수는 코틀린 Kotlin 76제
맵 Map, 변환 map 강의가 동일합니다. 확인부탁드립니다.
맵 Map, 변환 map 강의가 동일합니다. 업로드가 잘 못 된거 같은데 확인부탁드립니다.
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
피그마 작업 후 WPF로 불러와질수있나요?
별개의 질문인데, 전혀 몰라서 여기에 질문남겨봐요,,ㅠ회사에서 피그마 쓸지 말지를 WPF환경에서 호환되냐 안되냐고 결정하신다는데,, 전혀 문외한이라 여기에 여쭤봅니다,,,