묻고 답해요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
DB Connection 관련하여 질문드립니다.
@Transactional 선언된 메서드를 사용할 때, Connection이 사용되고 반환되는 시점이 궁금합니다.@Transactional 메서드 호출 -> 쿼리 실행 -> 외부 API 호출 -> @Transactional 메서드 종료 라고 했을 때, @Transactional 시작 시점부터 끝날 때까지 하나의 커넥션이 유지되나요? 아니면 쿼리가 실행될 때, 그리고 커밋/롤백 될때만 커넥션을 사용(커넥션 opne & close)하나요?
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
안녕하세요 19강 디버깅 설정 질문있습니다.
말씀해주신대로 설정을 하고 manage.py파일을 우클릭해서 디버그 실행했더니 아래와 같이 뜨네요..혹시 manage.py를 디버깅 실행하고 위 처럼 manage라는 설정이 하나 더 생기긴했는데, 저 설정때문에 그런 것일까요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
[Restaurant Pagination 요청해보기]에서 토큰값을 갱신하게 넣었는데도, 401에러가 나옵니다
void checkToken() async { final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY); final accessToken = await storage.read(key: ACCESS_TOKEN_KEY); final dio = Dio(); try { final resp = await dio.post('http://$ip/auth/token', options: Options( headers: { 'authorization': 'Bearer $refreshToken', }, ), ); await storage.write(key: ACCESS_TOKEN_KEY, value: resp.data['accessToken']); Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute( builder: (_) => RootTab(), ), (route) => false, ); } catch(e) { Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute( builder: (_) => LoginScreen(), ), (route) => false, ); } }[Restaurant Pagination 요청해보기] 내용 중에accessToken이 갱신이 안되서 401 에러가 난다고 하시고, 갱신하는 코드를 넣어서 잘 된다고 하셨는데, 저는 여전히 401 에러가 나옵니다.DioError [DioErrorType.response]: Http status error [401] 에러가 자세하게 나오질 않아서 무슨 에러인지 알수가 없네요. 어떤 문제인가요?
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
자바런타임에러
자바로 로직을 작성했는데 런타임에러가 뜹니다. 테케를 알 수 없어서 방황중인데 무엇이 문제인가요..? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { int n = Integer.parseInt(br.readLine()); int result[] = new int[n]; ArrayList<User> list = new ArrayList<>(); for(int i=0; i<n; i++){ String[] s = br.readLine().split(" "); list.add(new User(s[0].charAt(0), Integer.parseInt(s[1]), i)); } Collections.sort(list); HashMap<Character, Integer> hm = new HashMap<>(); int i=1, j=0; int sum = 0; while (i<n && j<=i){ User user_i = list.get(i); User user_j = list.get(j); if(user_i.val <= user_j.val){ result[user_i.index] = sum-hm.getOrDefault(user_i.alpa, 0); i++; }else{ hm.put(user_j.alpa, hm.getOrDefault(user_j.alpa, 0) + user_j.val); sum+=user_j.val; j++; } } for(i=0; i<n; i++){ System.out.println(result[i]); } } static class User implements Comparable<User>{ char alpa; int val; int index; public User(char a, int b, int c){ alpa=a; val=b; index=c; } @Override public int compareTo(User o) { if(val-o.val > 0) { return 1;} return -1; } } }
-
미해결프론트엔드 개발 시 꼭 해봐야 하는 실무 예제 Part.1
로컬스토리지 예제2번 값이 없습니다.
로컬스토리지 예제2번을 보시면,Application에 key와 value의 값이 들어있어localStorage.getItem()을 하라고 되어있는데,아무것도 없어요.background-color, user-name 등등 아무런 데이터가 없습니다.직접 만든것은 당연히 없고, 첨부해주신 파일에도 없습니다.다들 어떻게 하셨나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
다중회귀분석에서 범주형 변수 관련하여 질문이 있습니다.
강의 내용에서 궁금한 점이 생겼습니다. 범주형 변수를 따로 처리를 안해주더라도 ols함수는 원핫인코딩을 적용시켜서 알아서 작동한다는 것은 이해를 했습니다. 만약 변수 자체를 LabelEncoder로 value값을 변경시키고 함수에 넣어도 상관 없는지 궁금합니다.
-
해결됨데브옵스(DevOps)를 위한 쿠버네티스 마스터
docker를 설치한 VM을 master로 사용해야하나요?
저는 VirtualBox를 사용해서 VM환경을 구성하여 실습을 진행하고 있습니다.현재 섹션 6. 쿠버네티스 네트워크의 강의 중 쿠버네티스 네트워크 - 컨테이너 간의 인터페이스 공유 방법을 들었는데 강의 중 docker를 통해 컨테이너 간의 인터페이스를 공유하는 것을 보여주셨습니다.VM 환경 구성 중 master를 섹션 1에서 도커를 사용할 때 사용한 VM으로 사용 해야하나요?섹션 2부터 현재까지 docker를 사용하지 않아서 구성한 환경에는 docker가 없기에 질문 드립니다.
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
동적 디스패치에 관한 질문있습니다!
로그인 기능 강의중에, 뷰컨트롤러에 final을 붙이면 동적디스패치를 줄일 수 있다고 말씀해주셨는데용동적디스패치를 공부하다 보니까 궁금한 점이 있어서 질문드려요! 뷰컨트롤러가 더이상 상속되지 않았으면.Whole Module Optimization 기능으로 자동으로 뷰컨트롤러의 final 추론이 되지 않나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
06-01-container-presenter 에러
강의를 잘 따라가면서 작성하고 있었는데 화면을 최종적으로 확인할 때 이런 에러가 뜹니다. 코드를 두번확인했는데 틀린 부분이 보이지않습니다 ..! index.js 코드 입니다import BoardWrite from '../../../src/components/units/board/write/BoardWrite.container' export default function GraphqlMutationPage(){ return ( <> <div>###### 여기는 페이지 입니다 ######</div> {/* //로직을 가져옴 */} <BoardWrite /> <div>###### 여기는 페이지 입니다 ######</div> </> ) }BoardWrite.container.js 코드 입니다import { useMutation } from '@apollo/client' import {useState} from 'react' //UI를 가져옴(파일을 합침) import BoardWriterUI from './BoardWrite.presenter' //gql 가져옴(파일을 합침) import {나의그래프큐엘셋팅} from './BoardWrite.queries' //로직만 사용 export default function BoardWrite() { const [writer, setWriter] = useState() const [title, setTitle] = useState() const [contents, setContents] = useState() const [나의함수] = useMutation(나의그래프큐엘셋팅); const onClickSubmit = async () => { const result = await 나의함수({ variables: { writer: writer, title: title, contents: contents } }) console.log(result) }; const onChangeWriter = (event) => { setWriter(event.target.value) // => state에 저장 } const onChangeTitle = (event) => { setTitle(event.target.value) } const onChangeContents = (event) => { setContents(event.target.value) } return( <> <div>$$$$$$$ 여기는 컨테이너 입니다 $$$$$$</div> {/* UI를 가져옴(파일을 합침) */} <BoardWriterUI aaa={onClickSubmit} bbb={onChangeWriter} ccc={onChangeTitle} ddd={onChangeContents} /> <div>$$$$$$$ 여기는 컨테이너 입니다 $$$$$$</div> </> ) } BoardWrite.presenter.js 코드 입니다import {BlueButton, RedInput } from './BoardWrite.style' //UI만 사용 export default function BoardWriterUI(props){ return( <> <div>@@@@@@@@ 여기는 프리젠터 입니다 @@@@@@@</div> <div> 작성자: <RedInput type="text" onChange={props.bbb} /> 제목: <input type="text" onChange={props.ccc} /> 내용: <input type="text" onChange={props.ddd} /> <BlueButton onClick={props.aaa}>GRAPHQL-API 요청하기</BlueButton> </div> <div>@@@@@@@@ 여기는 프리젠터 입니다 @@@@@@@</div> </> ) }BoardWrite.queries.js 코드 입니다import { gql } from '@apollo/client' export const 나의그래프큐엘셋팅 = gql` mutation createBoard($writer: String, $title: String, $contents: String){ createBoard(writer : $writer , title: $title , contents: $contents) { _id number message } } BoardWrite.style.js 코드 입니다import styled from '@emotion/styled' export const RedInput = styled.input` border-color: red; ` export const BlueButton = styled.button` background-color: blue; ` app.js 코드 입니다// 모든 페이지의 공통설정들 여기서 진행 import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client' export default function App({ Component, pageProps }) { const client = new ApolloClient({ uri:"http://backend-example.codebootcamp.co.kr/graphql", cache: new InMemoryCache() //컴퓨터의 메모리에다가 백엔드에서 받아온 데이터 임시로 저장해 놓기 => 나중에 더 자세히 알아보기 }) return ( <div> <div> ========== 여기는 _app.js 컴포넌트 시작부분 입니다. ==========</div> {/* //그래프큐엘 셋팅 => 앞으로 아래 컴포넌트에서 client를 쓸 수 있다는 의미 */} <ApolloProvider client={client}> <Component /> {/* 내가 들어간 페이지들의 html이 여기로 다 들어오게 됨 */} </ApolloProvider> <div> ========== 여기는 _app.js 컴포넌트 마지막부분 입니다. ==========</div> </div> ) } 마지막으로 폴더 구조입니다
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - Part 1 NestJS Core
[섹션30 인터셉터] 마지막 강의
안녕하세요 선생님[섹션30 인터셉터] 마지막 영상이 [섹션29 트랜섹션] 마지막이랑 겹쳐요!따로 제보할 곳이 없어 질문 게시판에 올립니다.!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
section8 포폴 리뷰 에러가 납니다.
boards/new/index.js 에서 항목 기입 후 등록하기 버튼을 누를 시 등록된 상세페이지로 넘어가지 않고 alert 알림창으로 "Response not successful: Received status code 400" 이렇게 뜹니다.오타는 혹시 있나 해서 올려주신 깃허브랑 하나하나 꼼꼼히 비교 했는데 없었어요..오류코드를 개발자도구로 뜯어보니 그래서 해당 부분 확인해봐도 모두 강사님과 동일하게 작성되있는데 뭐가 문제일까요
-
미해결웹 게임을 만들며 배우는 React
가독성을 위한 JSX(XML임!) 수업 질문
안녕하세요 제로초님 , 영상 잘 보고있습니다! 이번 강좌를 보면서 느낀점인데 혹시 XML에 대한 이해도를 갖고 있어야 할까요?HTML만 한 사람의 관점으로 영상을 보았을 때 많이 헷갈리네요아니면 지금은 그냥 이런게 있다라는 느낌일까요??
-
해결됨홍정모의 따라하며 배우는 C언어
fgets() 함수 질문
안녕하세요.11-4 강의 듣고 궁금한 점이 있어 질문드립니다. 콘솔창에 문자를 입력할 때 eof 혹은 줄바꿈 말고 4글자를 입력하면 프로그램이 종료되는데, 이는 어떤 원리에서 종료되는 걸까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 반례 궁금합니다.
#include <bits/stdc++.h> using namespace std; int N; map<int, vector<int>> mp; int tmp, d, ret; void removeAll(int key){ // if not leaf node -> recursive remove if(!mp[key].empty()) { for(int c: mp[key]) removeAll(c); } // erase itself mp.erase(key); } int main(){ cin >> N; // make graph for(int i = 0; i < N; i++){ mp[i]; cin >> tmp; if (tmp != -1) mp[tmp].push_back(i); } // input node to be deleted cin >> d; removeAll(d); if (mp.size() == 1) ret = 1; else if (mp.size() == 0) ret = 0; else { // for all key in map for(auto it: mp) { int key = it.first; // if the remaining value empty => plus if (mp[key].empty()) ret++; } } cout << ret; }다음과 같이 map과 재귀를 풀어서 1068번 트리 문제를 풀었는데, 어디가 오답인지 감이 안옵니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형 2번 질문 있습니다!!
선생님 안녕하세요, 예시문제 작업형 2번 문제 풀다가 궁금한 점이 있어서 질문 남깁니다.train, test 데이터를 describe 함수로 통계내 봤을 때 총 구매액와 최대 구매액에 음수 값이 있어 해당 행은 삭제하려고 합니다. 이 이후로 어떻게 진행해야 할지 몰라서 도움을 구해봅니다 ㅠㅠㅠ
-
미해결스프링 시큐리티 OAuth2
authenticationEntryPoint 를 기본 설정된 /login이 아닌 react 웹 페이지로 설정 시 cors 문제가 지속해서 발생합니다.
authenticastion Entry Point로 지정 시 cors문제가 계속해서 진행되어 Authorization Code를 받아올 수 없습니다.코드 첨부Authorization Server Config@Bean @Order(Ordered.HIGHEST_PRECEDENCE) public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception { OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http); http .getConfigurer(OAuth2AuthorizationServerConfigurer.class) .oidc(Customizer.withDefaults() ); http .exceptionHandling((exceptions) -> exceptions .authenticationEntryPoint( new LoginUrlAuthenticationEntryPoint("http://localhost:3000") // new LoginUrlAuthenticationEntryPoint("/login") )) http.oauth2ResourceServer((resourceServer) -> resourceServer .jwt(Customizer.withDefaults())); return http.build(); } @Bean public RegisteredClientRepository registeredClientRepository() { RegisteredClient oidcClient = RegisteredClient.withId(UUID.randomUUID().toString()) .clientId("oidc-client") .clientSecret("{noop}secret") .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC) .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE) .authorizationGrantType(AuthorizationGrantType.REFRESH_TOKEN) .redirectUri("https://oidcdebugger.com/debug") .redirectUri("https://test-b821b.web.app") .postLogoutRedirectUri("http://127.0.0.1:8080/") .scope(OidcScopes.OPENID) .scope(OidcScopes.PROFILE) .clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build()) .build(); return new InMemoryRegisteredClientRepository(oidcClient); } @Bean public AuthorizationServerSettings authorizationServerSettings() { return AuthorizationServerSettings.builder().issuer("http://localhost:6080").build(); } } Default Web Config @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:3000") .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .allowedHeaders("*") .allowCredentials(true) .exposedHeaders("*"); } }; } @Bean public CorsConfigurationSource corsConfigurationSource() { CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowCredentials(true); configuration.addAllowedHeader("*"); configuration.addAllowedMethod("*"); configuration.addAllowedOrigin("http://localhost:3000"); configuration.setExposedHeaders(Arrays.asList("*")); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", configuration); return source; } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .cors(customCorsConfig -> customCorsConfig.configurationSource(corsConfigurationSource())) .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(authorizeHttpRequestsCustomizer -> authorizeHttpRequestsCustomizer.requestMatchers(AUTH_WHITELIST).permitAll() .anyRequest().authenticated() ) .formLogin( httpSecurityFormLoginConfigurer -> httpSecurityFormLoginConfigurer.loginPage("http://localhost:3000").loginProcessingUrl("/login") // Customizer.withDefaults() ) ; return http.build(); } @Bean public UserDetailsService userDetailsService() { PasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); UserDetails userDetails = User.builder() .username("user") .password(passwordEncoder.encode("password")) .roles("USER") .build(); return new InMemoryUserDetailsManager(userDetails); } @Bean public JWKSource<SecurityContext> jwkSource() { KeyPair keyPair = generateRsaKey(); RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); RSAKey rsaKey = new RSAKey.Builder(publicKey) .privateKey(privateKey) .keyID(UUID.randomUUID().toString()) .build(); JWKSet jwkSet = new JWKSet(rsaKey); return new ImmutableJWKSet<>(jwkSet); } private static KeyPair generateRsaKey() { KeyPair keyPair; try { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(2048); keyPair = keyPairGenerator.generateKeyPair(); } catch (Exception ex) { throw new IllegalStateException(ex); } return keyPair; } @Bean public JwtDecoder jwtDecoder(JWKSource<SecurityContext> jwkSource) { return OAuth2AuthorizationServerConfiguration.jwtDecoder(jwkSource); } @Bean public PasswordEncoder encoder() { return new BCryptPasswordEncoder(); } 위 코드로 진행했을 시 발생하는 Cors Error입니다 Access to XMLHttpRequest at 'http://localhost:6080/oauth2/authorize?client_id=oidc-client&redirect_uri=https%3A%2F%2Foidcdebugger.com%2Fdebug&scope=openid&response_type=code&response_mode=form_post&state=3it6dl9kewr&nonce=hyq3pnronj7&continue' (redirected from 'http://localhost:6080/login') from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.3. 이로 인해 CorsFilter를 적용하게 되면 해당 Cors는 해결되지만 authorization code 가 Redirect되는 시점에 Cors 에러가 새롭게 나옵니다.CorsFilter @Component @Slf4j @Order(Ordered.HIGHEST_PRECEDENCE) public class CorsFilter implements Filter { private static final Set<String> allowedOrigins = new HashSet<String>(); static { allowedOrigins.add( "http://localhost:3000" ); } @Override public void init(FilterConfig fc) throws ServletException { } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; HttpServletRequest request = (HttpServletRequest) req; String origin = request.getHeader(HttpHeaders.ORIGIN); log.info("Origin: {}", origin); if (origin != null) { Optional<String> first = allowedOrigins.stream().filter(origin::startsWith).findFirst(); first.ifPresent(s -> response.setHeader("Access-Control-Allow-Origin", s)); } response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Methods", "*"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Key, Authorization"); if ("OPTIONS".equalsIgnoreCase(request.getMethod())) { response.setStatus(HttpServletResponse.SC_OK); } else { chain.doFilter(req, res); } } @Override public void destroy() { } Cors 오류Access to XMLHttpRequest at 'https://oidcdebugger.com/debug?code=1o_jSQQVu6EB4XDq-xCWP3qrzp2VDdGbH_AN7iBJGU5gQRC7BRFkQYdn2A6P-6G5Aoi8XLJLaVR4MSVktNzDvYLMmj_UXahcWfEwQdA-tk4GCw5Bff4mXn2q6mIYfs_d&state=3it6dl9kewr' (redirected from 'http://localhost:6080/login') from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.혹시 외부 로그인 페이지와 연동한 예시가 있거나, Cors 문제를 해결할 방안이 있는지 궁금합니다ㅠㅠ
-
미해결
부트캠프 참여
부트캠프는 2024년도 계획이 어떤지 궁금하구요?또한 부트캠프를 참여를 하고 싶은데 문자 알림을 통해서 알려주시기 바랍니다 010-8225-8431
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
List<Domain> -> List<Response> 변환을 Controller에서 하는 게 맞나요?
Domain -> Response 변환 코드를 Domain에 정의해두고Controller에서 Domain 메서드를 호출해서 Response를 변환하는게 맞나는 건 이해했습니다. 근데 실제 API에 해당 내용을 적용하려고 보니 Domain 단 건 조회보다는 List<Domain>을 반환하는 경우가 훨씬 많았습니다. 따라서 List<Domain>을 List<Response>로 변환해야 하는데 해당 작업을 for문이나 Stream으로 Controller로 처리하려니 Controller 코드도 지저분해지고 Controller가 하는 역할에 부합하지 않게 되는 것 같습니다.List<>를 변환할 때는 어디서 하는게 올바른 것인지 질문드립니다!
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
Null 값을 평균으로 채우는 방법
안녕하세요, 선생님. 강의 15분 경에 다음과 같은 코드가 나옵니다만, 저는 분명 동일한 코드를 실행했는데 오류가 떠서 질문드립니다. house_df.fillna(house_df.mean(),inplace = True) TypeError: can only concatenate str (not "int") to str 이 코드가 Null있는 문자형 열까지 포함시켜 처리하기 때문에 오류가 나는 거 같은데, 혹시 원래 정상적으로 실행되는 코드인가요…? 책에 있는 코드도 동일한데 제가 실행시키면 에러가 나서 전 Null 있는 숫자혀여 열에 대해서만 각 열의 평균값으로 결측치를 채워서 실행했습니다. 만약 현재 버젼으로 정상적으로 실행이 되지 않는 코드라면 선생님께서 혹시 이 부분에 대해서만 새로 작성하신 코드를 여쭙고 싶습니다!방금 확인해보니까 jupyter notebook으로는 잘 실행되는데, vscode에서는 위와 같은 오류가 뜹니다. 혹시 이 오류가 뜨는 이유를 알 수 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
샘요 ㅠㅅ ㅠ?
작업형 1 문제 3에서요 조건으로 풀어주셨는데요. sum 대신 len 쓰는 건 말이 안될까요? 일단 답은 틀렸어요,,..한국말로 일대일 대응해서 코드를 적어보면, f3 컬럼에서 '실버'인 행의 갯수를 출력하려면 len을 쓸수 있지 않을까요? 그런데 값이 달라 질문드립니다 ㅠㅠ