묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
App.css에서 질문드립니다
.MyButton_positive{}이부분에서 앞서 MyButton.js 에서 className을 'MyButton MyButton_positive' 로 해주었는데왜 .MyButton MyButton_positive{} 가 아닌.MyButton_positive{}로 작성하는 걸까요??
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
BRAM 강의 질문있습니다!
질문 1. 실습편에서 simple_bram_ctrl.v 에서 맨 마지막 코드에 // 1 cycle latency to sync mem outputalways @(posedge clk or negedge reset_n) begin if(!reset_n) begin r_valid <= 0; end else begin r_valid <= o_read; // read data endend라는 코드가 있는데 이 코드가 어째서 1 cycle 뒤로 미루는 코드인지 이해가 잘 안 가네요.. fsm에서도 비슷한 코드가 있었는데 'done상태에서 외부 신호를 기다리지 않고 한 사이클 뒤에 idle 상태로 넘어간다' 라고 말씀하신적이 있거든요어째서 그런건지 이해가 잘 안가서.. 설명 부탁드려도 될까요! 그리고 그럼 일반화 해서 한 사이클 뒤로 미루기 위해선 저런 형태의 코드를 사용하면 될까요? 질문 2. BRAM 시뮬레이션 부분을 보면 q0부분이 실제로 한사이클 뒤로 밀려서 나오는데 이건 실제로 메모리를 사용해서 한 사이클 밀려서 나온 건가요?아니면 맛비님께서 latency를 보여주시기 위해 한 사이클 뒤로 미루신 건가요? 제가 찾아보기엔 임의로 한 사이클 미룬 코드는 보이지 않는데.. 궁금합니다! 그리고 만약 메모리를 사용하였기에 한 사이클이 미뤄져 q0가 출력된 거라면 현업에서는 한사이클 미뤄질지 두 사이클 미뤄질지 어떻게 아나요..?이것도 말씀하신대로 메모리 관련 문서를 보고 판단해야하는 건가요?미뤄지는 사이클에 따라 valid 신호를 주어야할텐데 그에 맞춰서 valid 신호를 주는 방법이 있나요?
-
미해결김영한의 실전 자바 - 기본편
이런식으로 해도 객체 지향 프로그램인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.package oop1.ex; import java.util.Scanner; public class Account { Scanner scanner = new Scanner(System.in); int balance; int deposit() { System.out.print("입금할 금액을 입력하세요.\n↳ "); int depositAmount = scanner.nextInt(); balance += depositAmount; System.out.println("잔액: " + balance + "원"); return balance; } int withdraw() { System.out.print("출금할 금액을 입력하세요.\n↳ "); int withdrawAmount = scanner.nextInt(); if (balance > withdrawAmount) { balance -= withdrawAmount; } else { System.out.println("잔액이 부족합니다."); } System.out.println("잔액: " + balance + "원"); return balance; } void checkAmount() { System.out.println("잔액: " + balance); } } package oop1.ex; import java.util.Scanner; public class AccountMain { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Account account = new Account(); while (true) { System.out.println("-------------메뉴를 선택하세요-------------"); System.out.print("1. 입금 | 2. 출금 | 3. 잔액 확인 | 4. 종료\n↳ "); int selectMenu = scanner.nextInt(); switch (selectMenu) { case 1: account.deposit(); break; case 2: account.withdraw(); break; case 3: account.checkAmount(); break; case 4: System.out.println("프로그램을 종료합니다."); return; default: System.out.println("잘못된 입력입니다. 다시 입력해주세요"); break; } } } } 제 나름 입력까지 하는 프로그램으로 만들었는데 인스턴스 안에 메서드에 print를 넣는게 좋은지 메인 클래스에 print를 넣는게 좋은지 잘 모르겠습니다코드도 잘 짰는지 궁금합니다
-
미해결이펙티브 자바 완벽 공략 1부
강의 제목 오타 발견!!! 뚜둥
'아이템 10. 완벽 공략 25 - 리스코프 치환 원친' 이라고 되어있어요..!!
-
미해결[신규 개정판] 코딩 입문자를 위한 파이썬 완벽가이드
Syntax Error
안녕하세요. 강의 내용을 그대로 따라하는 중인데, 갑자기 SyntaxError: invalid syntax 라고 뜨면서 값이 안 나오네요... 똑같이 따라했는데 왜 이러는 걸까요??
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
인터넷 익스플로러 호환성
모던 HTML/CSS 로 상용화도 가능한 반응형 모던 웹페이지만들기 11(9:37) 내용중인터넷 익스플로러 호환성을 위해 width:240px 대신 max-width:240px를 사용하고 flex-shrink:0;을 설정하셨는데인터넷 익스플로러가 사용되지 않는 현 시점에서 <link rel="short icon" type="image/x-icon" href="img/fun-coding.ico" />이와 같이 익스플로러의 호환성을 고려하는 행위가 현업에서 필요한지 궁금합니다!
-
미해결스프링 시큐리티
ajax 구현 부분 작동이 안되서 질문드립니다.
ajax가 아예 진행이 안되서 질문드립니다. springSecurity6, 스프링부트 3.2.1 사용중입니다. 코드는 아래와 같은데 이게 어디서 어디가 틀렸는지를 도저히 모르겠습니다.ajax 전까지 form 방식은 정상적으로 작동하고 있으며,ajax 요청 보낼 시 POST http://localhost:8080/api/loginorg.apache.http.client.ClientProtocolException 이런 에러가 발생합니다. ajax.http 파일은 강의 문서를 다시 다운받아 했으며 postman으로 요청시 이유는 모르겠지만 get 요청으로 처리되고 위의 요청시 아래와 같은 로그 발생합니다 10000자 제한떄문에 댓글로 변경 curl 요청시 아래와 같습니다 10000자 제한떄문에 댓글로 변경 아래 코드에서 csrf disable을 하였음에도 계속 동일한 상태이고 강의 git 코드를 여러 브랜치에서 계속 참고해서 막 섞여있어서 어디서부터 고쳐야될지 전혀 모르겠습니다. 거의 6시간 넘게 헤매고 있는데 전혀 모르겠습니다. 혹시 확인 가능하시면 변경해야될 부분 부탁드립니다. 감사합니다. @Configuration @Slf4j @Order(0) public class AjaxSecurityConfig { @Autowired protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.authenticationProvider(authenticationProvider); } @Qualifier("ajaxAuthenticationProvider") @Autowired private AuthenticationProvider authenticationProvider; // 변경된 부분 @Bean protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception { log.info("여기옴2"); http .authorizeHttpRequests(auth-> auth .requestMatchers("/api/login").permitAll() .anyRequest().authenticated() ); http.exceptionHandling(exceptionHandling -> exceptionHandling .authenticationEntryPoint(new AjaxLoginAuthenticationEntryPoint()) .accessDeniedHandler(ajaxAccessDeniedHandler()) ); http.addFilterBefore(ajaxLoginProcessingFilter(), UsernamePasswordAuthenticationFilter.class); http.csrf(csrf -> csrf.disable()); return http.build(); } @Autowired private ObjectMapper objectMapper; @Autowired private AuthenticationConfiguration authenticationConfiguration; @Bean public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception { return authenticationConfiguration.getAuthenticationManager(); } @Bean public AuthenticationSuccessHandler ajaxAuthenticationSuccessHandler(){ return new AjaxAuthenticationSuccessHandler(); } @Bean public AuthenticationFailureHandler ajaxAuthenticationFailureHandler(){ return new AjaxAuthenticationFailureHandler(); } public AccessDeniedHandler ajaxAccessDeniedHandler() { return new AjaxAccessDeniedHandler(); } @Bean public AjaxLoginProcessingFilter ajaxLoginProcessingFilter() throws Exception { AjaxLoginProcessingFilter filter = new AjaxLoginProcessingFilter(); filter.setAuthenticationManager(authenticationManager(authenticationConfiguration)); filter.setAuthenticationSuccessHandler(ajaxAuthenticationSuccessHandler()); filter.setAuthenticationFailureHandler(ajaxAuthenticationFailureHandler()); return filter; } // @Bean // public AjaxLoginProcessingFilter ajaxLoginProcessingFilter(){ // AjaxLoginProcessingFilter ajaxLoginProcessingFilter = new AjaxLoginProcessingFilter(); // ajaxLoginProcessingFilter.setAuthenticationManager(authenticationManagerBean()); // return ajaxLoginProcessingFilter; // } } @Slf4j @Component public class AjaxAuthenticationProvider implements AuthenticationProvider { @Autowired private UserDetailsService userDetailsService; @Autowired private PasswordEncoder passwordEncoder; /** * 검증에 대한 구현 부분 * * 여기서 전달받는 authentication 객체는 AuthenticationManager에서 전달받는 것 * @param authentication the authentication request object. * @return * @throws AuthenticationException */ @Transactional @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { String username = authentication.getName(); String password = (String) authentication.getCredentials(); log.info("ajax Authentication"+ authentication); log.info("ajax username : "+username); log.info("ajax password : "+password); /** * db에 있는 사용자를 가져오는 부분 */ AccountContext accountContext = (AccountContext)userDetailsService.loadUserByUsername(username); if (!passwordEncoder.matches(password, accountContext.getPassword())){ throw new BadCredentialsException("ajax invalid password!"); } /** * 섹션 4-8에서 secret key 추가해서 검증하는 부분 */ // FormWebAuthenticationDetails formWebAuthenticationDetails = (FormWebAuthenticationDetails) authentication.getDetails(); // String secretKey = formWebAuthenticationDetails.getSecretKey(); // // if (secretKey == null || !"secret123".equals(secretKey)){ // throw new InsufficientAuthenticationException("secret key invalid"); // } AjaxAuthenticationToken authenticationToken = new AjaxAuthenticationToken(accountContext.getAccount(),null,accountContext.getAuthorities()); // log.info(""+accountContext.getAccount()); // log.info(""+authenticationToken); return authenticationToken; } /** * parameter 로 전달되는 authentication 타입과 여기서 검증하려는 대상의 타입이 일치하면 검증하도록 하는거 * @param authentication * @return */ @Override public boolean supports(Class<?> authentication) { return authentication.equals(AjaxAuthenticationToken.class); } } public class AjaxAuthenticationToken extends AbstractAuthenticationToken { private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; private final Object principal; private Object credentials; /** * 인증받기전에 사용자가 입력한 아이디와 비밀번호 담는 생성자 * */ public AjaxAuthenticationToken(Object principal, Object credentials) { super(null); this.principal = principal; this.credentials = credentials; setAuthenticated(false); } /** * 여기는 인증 완료후 아이디와 비번, 권한정보를 담는 생성자 */ public AjaxAuthenticationToken(Object principal, Object credentials, Collection<? extends GrantedAuthority> authorities) { super(authorities); this.principal = principal; this.credentials = credentials; super.setAuthenticated(true); // must use super, as we override } public static UsernamePasswordAuthenticationToken unauthenticated(Object principal, Object credentials) { return new UsernamePasswordAuthenticationToken(principal, credentials); } public static UsernamePasswordAuthenticationToken authenticated(Object principal, Object credentials, Collection<? extends GrantedAuthority> authorities) { return new UsernamePasswordAuthenticationToken(principal, credentials, authorities); } @Override public Object getCredentials() { return this.credentials; } @Override public Object getPrincipal() { return this.principal; } @Override public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException { Assert.isTrue(!isAuthenticated, "Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead"); super.setAuthenticated(false); } @Override public void eraseCredentials() { super.eraseCredentials(); this.credentials = null; } } @Slf4j public class AjaxLoginProcessingFilter extends AbstractAuthenticationProcessingFilter { private ObjectMapper objectMapper = new ObjectMapper(); private static final String XML_HTTP_REQUEST = "XMLHttpRequest"; private static final String X_REQUESTED_WITH = "X-Requested-With"; public AjaxLoginProcessingFilter() { /** * 여기서 정한 경로의 요청만 받음 * 여기서 path 가 일치해야만 수행함 */ super(new AntPathRequestMatcher("/login", "POST")); } @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, IOException, ServletException { log.info("isAjax processing"); if (isAjax(request)){ throw new IllegalStateException("Authentication is not supported"); } AccountDto accountDto = objectMapper.readValue(request.getReader(), AccountDto.class); /** * accountDto 비어있는지 확인하는 부분인데 StringUtils.isEmpty 가 deprecated 되어서 ObjectUtils.isEmpty 사용 */ if (ObjectUtils.isEmpty(accountDto.getUsername()) || ObjectUtils.isEmpty(accountDto.getPassword())){ throw new AuthenticationServiceException("Username op Password is empty"); } AjaxAuthenticationToken token = new AjaxAuthenticationToken(accountDto.getUsername(), accountDto.getPassword()); return this.getAuthenticationManager().authenticate(token); } /** * 클라이언트와 약속 정해서 * 그게 참이면 ajax 요청이 맞다고 판단함 * @param request * @return */ private boolean isAjax(HttpServletRequest request) { return "XMLHttpRequest".equals(request.getHeader("X-Requested-With")); } }
-
미해결초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
ch08 02_instagram_exp.py 실행 시 오류 발생
코드에 USER_ID와 USER_PASSWORD는 제 인스타그램 계정으로 설정했습니다.실습하는 컴퓨터에서 해당 ID와 패스워드로 인스타그램에 로그인도 확인했구요.실습 과정과 같이 실행했더니 아래와 같이 에러가 발생합니다. 설치된 패키지 정보는 아래와 같습니다.(ch08_env) D:\inflearn_chatGPT\ch08>pip show openaiName: openaiVersion: 0.28.1Summary: Python client library for the OpenAI APIHome-page: https://github.com/openai/openai-pythonAuthor: OpenAIAuthor-email: support@openai.comLicense:Location: D:\inflearn_chatGPT\ch08\ch08_env\Lib\site-packagesRequires: aiohttp, requests, tqdmRequired-by:(ch08_env) D:\inflearn_chatGPT\ch08>pip show instagrapiName: instagrapiVersion: 2.0.1Summary: Fast and effective Instagram Private API wrapperHome-page: https://github.com/subzeroid/instagrapiAuthor: Mark SubzeroidAuthor-email: 143403577+subzeroid@users.noreply.github.comLicense: MITLocation: D:\inflearn_chatGPT\ch08\ch08_env\Lib\site-packagesRequires: pycryptodomex, pydantic, PySocks, requestsRequired-by:< 실행 및 오류 메시지 >(ch08_env) D:\inflearn_chatGPT\ch08>python 02_instagram_exp.pyTraceback (most recent call last): File "D:\inflearn_chatGPT\ch08\ch08_env\Lib\site-packages\instagrapi\mixins\private.py", line 360, in sendprivate_request response.raise_for_status() File "D:\inflearn_chatGPT\ch08\ch08_env\Lib\site-packages\requests\models.py", line 1021, in raise_for_status raise HTTPError(http_error_msg, response=self)requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://i.instagram.com/api/v1/accounts/login/During handling of the above exception, another exception occurred:Traceback (most recent call last): File "D:\inflearn_chatGPT\ch08\02_instagram_exp.py", line 17, in <module> cl.login(USER_ID, USER_PASSWORD) File "D:\inflearn_chatGPT\ch08\ch08_env\Lib\site-packages\instagrapi\mixins\auth.py", line 441, in login logged = self.private_request("accounts/login/", data, login=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\inflearn_chatGPT\ch08\ch08_env\Lib\site-packages\instagrapi\mixins\private.py", line 542, in private_request raise e File "D:\inflearn_chatGPT\ch08\ch08_env\Lib\site-packages\instagrapi\mixins\private.py", line 527, in private_request self._send_private_request(endpoint, **kwargs) File "D:\inflearn_chatGPT\ch08\ch08_env\Lib\site-packages\instagrapi\mixins\private.py", line 447, in sendprivate_request raise ProxyAddressIsBlocked(**last_json)instagrapi.exceptions.ProxyAddressIsBlocked: Instagram has blocked your IP address, use a quality proxy provider (not free, not shared)(ch08_env) D:\inflearn_chatGPT\ch08>
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2.Driver 오류와 HelloProjectApplication 실행오류
[질문 내용]여기서 org.h2.Driver 인식이 안되는 문제가 발생합니다. 초록색으로 떠야하는 것 같은데 왜 인식이 안되는지 모르겠어요. build.gradle에도 dependencies에도 h2관련되어서 잘 추가했고 뒤에 띄어쓰기도 되어 있지 않습니다! 이 상태에서 HelloProjectApplication을 실행시켰더니 여러 오류들이 뜨는 것을 발견했습니다. com.zaxxer.hikari.pool.HikariPool j.LocalContainerEntityManagerFactoryBeano.s.boot.SpringApplication 이 3곳에서 에러가 발생합니다. 아래에 소스코드 파일 구글드라이브 첨부드립니다.. 감사합니다!https://drive.google.com/drive/folders/18tc10v1OtuO7iS6ZFTqcy0ag6eJH0NGU?usp=sharing
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
도메인 객체와 영속성 객체를 구분하게 되면
도메인 객체와 영속성 객체를 구분하게 되면 비즈니스 로직을 짤때 JPA에서 제공해주는 기능들을 사용하지 못할거 같은데 제가 이해한 방식들이 맞나요??예를들어 User의 update 메소드를 확인해보면 기존 JPA에서 repository로 영속성 객체를 가져와서 값을 수정하는 방식이 아닌 완전히 새로운 User 객체를 생성하고 repository로 save 하는 방식으로 구현을 하시길래 그러면 JPA에서 영속성 객체들 끼리 단방향 매핑이나 양방향 매핑을 구현한 객체들은 도메인 객체로 어떻게 연결지어야할지 감이 안잡히네요..
-
해결됨실전! 스프링 데이터 JPA
커스텀 인터페이스 구현체 이름 작성 시 순환 참조 발생 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 영한님. 이번 강의도 잘 수강한 학생입니다.강의 내용과 공식 문서를 참고하며 간단한 게시글 리포지토리를 만들어보고자, 아래처럼 작성했었습니다. public interface BoardRepository { Long save(final Board board); ... }@Repository @RequiredArgsConstructor public class BoardJpaRepositoryImpl implements BoardRepository { private final BoardJpaRepository boardJpaRepository; ... }public interface BoardJpaRepository extends JpaRepository<Board, Long> { }강의 내용대로 스프링 데이터 JPA인 BoardJpaRepository에 Impl을 붙인 BoardJpaRepositoryImpl을 만들었는데, 아래와 같이 순환 참조 문제가 발생했습니다. The dependencies of some of the beans in the application context form a cycle: boardController defined in file [/Users/hyunjoonchoi/Desktop/2024/2024-mju-mentoring/build/classes/java/main/com/mju/mentoring/board/controller/BoardController.class] ↓ boardService defined in file [/Users/hyunjoonchoi/Desktop/2024/2024-mju-mentoring/build/classes/java/main/com/mju/mentoring/board/service/BoardService.class] ┌─────┐ | boardJpaRepositoryImpl defined in file [/..../build/classes/java/main/com/mju/mentoring/board/infrastructure/BoardJpaRepositoryImpl.class] └─────┘ Action: Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true. 그런데 이름을 BoardRepositoryImpl, JpaBoardRepositoryImpl 등 다른 이름으로 하니까 순환 참조 문제가 해결되더라구요이에 대해서 다른 외국 개발자 분들도 이슈로 올리고, 그것들을 찾아봤으나 메인테이너 분이 @Lazy를 사용하거나 ObjectProvider를 사용해야 한다고 말씀해주시는 것 밖에 없었습니다. 공식 문서 (https://docs.spring.io/spring-data/jpa/docs/1.5.0.RELEASE/reference/html/repositories.html#repositories.create-instances)를 보면 스프링 데이터 JPA + Impl로 할 시 자동으로 스프링 데이터 JPA의 구현체로 인식한다고 되어 있는 것 같은데, 이런 순환 참조 이슈가 발생한 원인을 알 수 있을까요? 이를 해결해보고자 스프링 데이터 JPA 레포지토리에 직접 이슈로 남기고 (https://github.com/spring-projects/spring-data-jpa/issues/3320) 답변을 받았긴 했습니다만, 여전히 다른 이야기를 하시는 것 같아 영한 님께도 문의드리고 싶습니다!
-
해결됨코딩테스트 [ ALL IN ONE ]
강의자료 공유 요청 드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강사님 강의 너무 잘 보고 있습니다.교재 공유 요청 드립니다!
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
Checked, Unchecked 예외 변환 질문드립니다.
안녕하세요. 복습 도중 개념적으로 혼동이 와서 질문드립니다.Checked Exception - 체크를 하라고 만든 예외Unchecked Exception(Runtime Exception) - 체크를 하지 말라고 만든 예외예를 들어서 NullPointerException 같은 경우, 개발자가 예외를 잡아서 처리하지 않습니다.런타임 예외는 원래 처리하지 않기 때문에 당연하다고 생각합니다.그런데 체크를 하라고 만든 예외를 체크를 하지 말라고 만든 예외로 변환을 하는 것이 개념적으로 이해가 잘 가지 않습니다.Checked 예외를 Unchecked 예외로 변환함으로써Unchecked는 체크를 하는게 아닌데, 마치 Checked 처럼 핸들링 하는 느낌이 듭니다.물론 강의에서 설명해 주신 변환을 함으로써의 이점은 이해가 잘 갑니다!throws SQLException → throws JPAException반복적인 throws 을 변경하지 않아도 되고, 특정 기술에 의존하지 않아도 됨다만, 이는 커스텀 Checked 예외를 사용해도 해결할 수 있다고 생각합니다.public class MyCustomCheckedException extends Exception { ... }Checked 예외를 커스텀 Checked 예외로 변환 이 경우에는 반복적인 throws 작성은 피할 수 없긴 합니다.코틀린 등의 언어에서 이런 개념적 혼동을 막기 위해 Checked/Unchecked를 나누지 않는 것인지..제가 무언가 잘못 이해하고 있는것이 있을까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
매출액의 종류 문제에서 시간초과 에러가 뜨는데요...
public static void main(String[] args){ Scanner in = new Scanner(System.in); int a = in.nextInt(); int b = in.nextInt(); int[] arr = new int[a]; for(int i = 0 ; i < a ; i++) { arr[i] = in.nextInt(); } String answer = ""; HashMap<Integer, Integer> map = new HashMap<>(); for(int i = 0 ; i <= (a - b) ; i++) { map.clear(); for(int j = i ; j < (i+b) ; j++) { map.put(arr[j], map.getOrDefault(arr[j], 0) + 1); } answer = answer + map.size() + " "; } System.out.println(answer); }저는 이렇게 짰는데요...아무리 봐도 강의에서 알려주신 것과 크게 차이를 못 느끼겠는데... 혹시 어떤 부분에서 문제가 되는걸까요?
-
미해결[30만 수강생 기념] 1/31 김영한님 온라인 밋업 Live
제발 나와라이
당첨되게 해주세요.
-
해결됨홍정모의 따라하며 배우는 C언어
5분 50초경 제가 생각하는 게 맞는 건가요?
int a = 1;int* a_ptr = &a;a_ptr은 a를 가리키고a_ptr + 1은 a + 1을 가리킨다.배열에서는 원소에서 다음 원소로 갈 때 원소의 자료형의 크기 만큼 이동하는 걸 생각하면a + 1은 a 다음의 변수를 가리키는 것이고, a에서 a의 자료형인 (int 자료형의 크기) * 1 만큼 이동하는 것이다.그렇게 (int 자료형의 크기) * 1 만큼 이동을 해야지 a 다음의 변수를 가리킬 수 있다. 이렇게 생각을 해봤는데 이게 맞는 걸까요?a 다음의 변수라는 표현은 뭔가 틀린 것 같은데 저도 잘은 모르겠습니다.
-
해결됨웹플로우(Webflow) 시작하기 - 코딩 없이 자유도 높은 프로토타입 만들기
대시보드에서 만든 사이트 자체를 삭제하는 방법
대시보드에서 만든 사이트 자체를 삭제하는 방법을 알려주세요.10개가 넘어 삭제하고 다시 New site를 하고 싶은데 이미 만들어진 사이트로 인해 새로운 사이트를 만들 수 없습니다. 이미 만들어진 사이트를 삭제하는 방법을 알려 주세요.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestMapping에 대하여
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1. 스프링 부트를 구동시켜서 톰캣 서버가 띄워지면 HandlerMapping 인터페이스가 애플리케이션 내에 존재하는 핸들러 매핑을 시도하는데 우선적으로 HandlerMapping 인터페이스의 구현체인 RequestMappingHandlerMapping 클래스가 @RequestMapping 어노테이션이 지정된 핸들러를 매핑해서 사용자가 해당 어노테이션으로 지정된 핸들러 중 하나를 요청할 경우 해당 핸들러가 반환되고해당 핸들러에 대한 어댑터를 연결하고 호출하는데 필요한 구현체가 RequestMappingHandlerAdapter 로 이해했는데 맞을까요? 1번의 내용이 맞다면 @RequestMapping을 컨트롤러에 지정할 경우 해당 컨트롤러가 매핑 정보로 활용이 되는데 한 컨트롤러 내에 여러 메서드에 @RequestMapping을 지정할 경우 그 메서드들이 전부 컨트롤러가 되는 것인가요? 그렇다면 메서드들을 정의하고 있는 클래스도 컨트롤러인데 어떤 차이가 있는 건지 궁금합니다 ! 그리고 추가로 컨트롤러는 클래스로 알고있는데 어떻게 메서드 레벨에 @RequestMapping을 지정할 수 있는지도 궁금합니다..
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 데이터베이스 연결 문제
[질문 내용]db 생성 확인하고 주신대로 입력하였는데 이런 오류가..ㅠ 도와주심 감사하겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
값은 정상적으로 나오는데 어디가틀린지모르겠습니다.
안녕하세요 큰돌님. 언제나 늘감사하게 수업듣고있습니다.vscode에서는 이코드로돌리면 정상적으로 나오는데 어디가틀린지 모르겠네요 한번만 봐주실수있을까요? 감사합니다.#include<bits/stdc++.h> using namespace std; string a[104][104]; int h,w,cnt,ret[104][104]; string s; bool flag; int main() { cin >> h >> w; for(int i=0; i<h; i++){ for(int j=0; j<w; j++){ cin >> s; a[i][j] = s; } } for(int i=0; i<h; i++){ flag = 0; for(int j=0; j<w; j++){ if(a[i][j] == "c"){ cnt = 0; flag = 1; ret[i][j] = cnt; } if(flag && a[i][j] == "."){ cnt++; ret[i][j] = cnt; } else if(!flag) { flag = 0; ret[i][j] = -1; } } }; for(int i=0; i<h; i++){ for(int j=0; j<w; j++){ cout << ret[i][j] << " "; } cout << "\n"; } return 0; }