inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

다른 모든창 한글창을 종료하고 시작을하고 싶습니다.

해결됨

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

안녕하세요 일코님 일코님 덕분에 정말 많이 진척이 있었습니다. 이번에 제목과 같이 매크로를 시작하고 pyhwpx에서 new=True 값을 주더라도 많은 양을 작업하다보니 가끔은 new의 작동이 되지 않고 켜져있는 한글탭에 포커싱이 되는 경우가 생겨 오류가 발생하는 경우가 종종 있었습니다. 물론 매크로 작동중에는 한글을 클릭하거나 커서를 이용하는 일을 하지 않았는데도 발생하는 일이여서 혹여 매크로를 시작할 때 다른 한글 창을 모두 종료 시키고 시작을 하고 싶은데 생각만큼 잘 진행이 되지 않아 질문을 남기게 되었습니다.

  • python
  • 한컴오피스
YongJun(Passion) 댓글 1 좋아요 1 조회수 207

17:00 분 경에 적으시는 @Bean은 꼭 main메서드가 있는 곳에서 작성해야 하나요>?

미해결

실전! 스프링 데이터 JPA

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 혹시 config클래스를 따로 파서 거기에 만들어도 적용이 되는 건가여? 만약에 된다고 하면 둘중 어떤 식으로 많이 사용하나요?

  • java
  • spring
  • spring-boot
  • jpa
김재원 댓글 1 좋아요 0 조회수 150

p6spy와 r2dbc 관련 질문

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 지금 엔티티 클래스 개발2 강의 수강 중입니다. 해당 강의 7분 20초 즈음 JpashopApplication 클래스 실행시키는 부분에서 런타임 에러가 발생하여 질문을 올리게 됐습니다. 처음 뜬 오류는 Caused by: java.lang.IllegalStateException: Could not evaluate condition on com.github.gavlyukovskiy.boot.jdbc.decorator.flexypool.FlexyPoolConfiguration$PropertyFlexyConfiguration due to com/vladmihalcea/flexypool/util/ClassLoaderUtils not found. Make sure your own configuration does not rely on that class. This can also happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake) 이었습니다. 구글링과 chatgpt를 사용해 해결방법을 모색하였고 p6spy를 사용하려면 flexypool이 필요없다는 사실을 확인 했지만 오류 메세지에 맞추어 implementation 'com.github.gavlyukovskiy:flexy-pool-spring-boot-starter:1.9.0' 을 build.gradle에 추가해 해결하려고 했습니다. 하지만 이번에는 'Caused by: java.lang.IllegalStateException: Could not evaluate condition on org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration due to io/r2dbc/spi/ValidationDepth not found. Make sure your own configuration does not rely on that class. This can also happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)' 오류가 발생하는 걸 확인할 수 있었습니다. 이번에도 구글링 및 chatgpt를 통해 해결방법을 찾아보려 했는데, JPA를 사용하면 R2DBC 관련한 모듈을 추가할 필요가 없다는 걸 확인할 수 있었고 아예 잘못된 방향으로 해결방법을 모색하고 있다는 걸 확인했습니다. 3. 현재 작성중인 코드에 flexy-pool을 사용하는 코드가 있나 점검해보았습니다. ./gradlew clean build .application.yml 점검 build.gradle 점검 ./gradlew dependencies 를 통해서 의존관계 확인 하지만 문제가 되는 부분을 찾을 수는 없었습니다. 어디서부터 잘못된건지, 해결 방법은 무엇인지 알려주시면 감사하겠습니다. 파일 링크 : https://drive.google.com/file/d/1kWHwYUf8akxBlG1Wdn6D_1WQbnRw8uzR/view?usp=sharing 감사합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
lee22park1234 댓글 1 좋아요 0 조회수 193

ghuhan18님이 질문한것중 OMG님이 대답의 대한 질문.

해결됨

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. ghuhan님의 질문 내용과 OMG님의 답변 내용을 보면서, 궁금증이 생겨서 질문을 남깁니다. OMG님의 답변 내용을 보면서 그 내용 중 ' 코드 규모가 커지고' 라는 말이 있습니다. 만약에 ghunhan님의 말처럼 지역 클래스 로 만들었는데, 어느 정도 코드 규모가 커져서 별도의 클래스 를 만들어야 한다는 상황이 생겻다면, (지역 클래스에서 그냥 일반 클래스로 전환) 어느 정도 코드 큐모가 커야지? 별도의 클래스를 만들겟다는 생각이 드는지요? 각각 사람들이 생각하는 코드의 규모가 있을 텐데요, 아직 저로서는 어떤 게 코드 규모가 큰지 생각을 할 수 없네요. 수정 : 너무 말이 이상해서 수정을 좀 많이 하네요. 수정 하시기전 보신 분들 좀 죄송합니다. 답변 부탁 드립니다.

  • java
  • 객체지향
생각하는자 댓글 1 좋아요 0 조회수 119

selenium 버전이 4.x 대가 되면서 메서드가 달라졌고, 크롬드라이버 다운도 방식이 달라졌습니다(24.09.07 기준)

미해결

12시간 안에 끝내는 파이썬을 활용한 크롤링

현재 지원되는 selenium 4.x 버전에서는, driver.find_element_by_id() 메서드가 더 이상 지원되지 않습니다. 라이브러리에 from selenium.webdriver.common.b y import By 을 추가하시고 search = driver.find_element (By.I D, 'query') menu = driver.find_element(By.CSS_SELECTOR,'div.dp2 > ul >li:nth-child(1) > a') 이렇게 하셔야 현재 24.09 기준으로 selenium 설치하신 분들은 코드가 무리 없이 돌아가실 거에요. 크롬 드라이버 역시 버전 115 이후부터는 통합으로 운영되어 https://googlechromelabs.github.io/chrome-for-testing/ 여기 페이지로 들어가셔서 아래쪽 stable(안정화) 버전에서 본인에게 맞는 운영체계의 크롬드라이버의 url을 주소창에 넣으시면 크롬드라이버를 다운 받으실 수 있습니다. 크롬과 셀레니움의 경우 계속해서 버전이 자동적으로 업되는 경우가 많아, 바로 전에 되던 코드가 실행이 되지 않는 경우도 있으니 버전들을 잘 확인하셔야 해요.

  • python
  • 웹-크롤링
surpriseye 댓글 1 좋아요 1 조회수 302

이분탐색(매개변수 탐색) 질문 있습니다!

해결됨

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

while문 조건에서, (lt < rt)와 (lt <= rt) 두 조건 중 어느것을 사용해야 하는지 판단 기준이 있을까요?

  • java
  • 코딩-테스트
공부맛있다 댓글 2 좋아요 0 조회수 106

어떤 경우에 get_attribute 이걸 사용하나요?

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

동적 페이지 크롤링 하고 있는데.. 어떤 경우에는 select_one를 사용하 또 다른 경우에는 get_attribute이걸 쓰더라고요.. 어떤 때에 각각 쓰는건지 아직 이해를 못했어요. 뭔가 알것같기도 하고.. 또 사용도 할 수는 있을 것 같은 좀 더 정확하게 이해하고 싶어요. 예를 들면 (맞는 코드는 아니지만) # 제목 가져오기 from bs4 import BeautifulSoup html = driver.page_source soup = BeautifulSoup(html, 'html.parser') items = soup.select('#main-area > div:nth-child(4)') for item in items: title = item.select_one('.article').text.strip() link = item.select_one('.article').attrs['href'] print(title,link) 이런 식으로 쓰기도 하니까 좀 헷깔립니다. 단순히 정적페이지/동적페이지에 따라 맞게 쓰는걸까요?

  • python
  • 웹-크롤링
루키22 댓글 2 좋아요 0 조회수 189

update 로직 질문

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

멤버 업데이트 시 memberService.update(id, request.getName()); 으로 작성해 주셨는데 memberService.update(id, request); 와 같이 객체를 통째로 넘기지 않는 이유가 있는 것인가요? 위와 같이 객체를 통째로 넘기는 경우 UpdateMemberRequest 클래스를 이너 클래스가 아닌 별도의 클래스로 분리해 줘야 하는 게 맞나요?

  • java
  • spring
  • spring-boot
  • jpa
gnstjrdlsla 댓글 1 좋아요 0 조회수 134

JdbcMemberRepository 문제

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 어떤 점이 문제인지 모르겠습니다 ㅜ jdbcMemberRepository package hello.hello_spring.repository; import hello.hello_spring.domain.Member; import org.springframework.jdbc.datasource.DataSourceUtils; import javax.sql.DataSource; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Optional; public class JdbcMemberRepository implements MemberRepository{ private final DataSource dataSource; public JdbcMemberRepository(DataSource dataSource) { this.dataSource = dataSource; } @Override public Member save(Member member) { String sql = "insert into member(name) values(?)"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, member.getName()); pstmt.executeUpdate(); rs = pstmt.getGeneratedKeys(); if (rs.next()) { member.setId(rs.getLong(1)); } else { throw new SQLException("id 조회 실패"); } return member; } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public Optional<Member> findById(Long id) { String sql = "select * from member where id = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setLong(1, id); rs = pstmt.executeQuery(); if(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); return Optional.of(member); } else { return Optional.empty(); } } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public List<Member> findAll() { String sql = "select * from member"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); List<Member> members = new ArrayList<>(); while(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); members.add(member); } return members; } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public Optional<Member> findByName(String name) { String sql = "select * from member where name = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setString(1, name); rs = pstmt.executeQuery(); if(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); return Optional.of(member); } return Optional.empty(); } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } private Connection getConnection() { return DataSourceUtils.getConnection(dataSource); } private void close(Connection conn, PreparedStatement pstmt, ResultSet rs) { try { if (rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (pstmt != null) { pstmt.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) { close(conn); } } catch (SQLException e) { e.printStackTrace(); } } private void close(Connection conn) throws SQLException { DataSourceUtils.releaseConnection(conn, dataSource); } } MemberRepository package hello.hello_spring.repository; import hello.hello_spring.domain.Member; import java.util.List; import java.util.Optional; public interface MemberRepository { Member save(Member member); void finById(Long id); Optional<Member> findById(Long id); Optional<Member> findByName(String name); List<Member> findAll(); void cleatStore(); } MemoryMemberRepository package hello.hello_spring.repository; import hello.hello_spring.domain.Member; import java.util.Map; import java.util.Optional; import java.util.*; public class MemoryMemberRepository implements MemberRepository { public static Map<Long, Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId((++sequence)); store.put(member.getId(), member); return member; } @Override public void finById(Long id) { } @Override public Optional<Member> findById(Long id) { return Optional.ofNullable((Member) store.get(id)); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } @Override public void cleatStore() { } void clearStore() { store.clear(); } } error error: JdbcMemberRepository is not abstract and does not override abstract method cleatStore() in MemberRepository public class JdbcMemberRepository implements MemberRepository{

  • java
  • spring
  • mvc
  • spring-boot
이윤솔 댓글 1 좋아요 0 조회수 266

제네릭클래스는 타입매개변수를 통해 타입을 결정하는데 이 타입을 메인에서 전달받는다면 의존성 주입과 IoC로 볼수 있나요?

미해결

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 제네릭클래스는 타입매개변수를 통해 타입을 결정하는데 이 타입을 메인에서 전달받는다면 의존성 주입과 IoC로 볼수 있나요? 제가 생각하는 IoC는 한 오브젝트에서 무언가를 결정해야하는데 이것이 다른 오브젝트에 의해 결정되는 것입니다. 이때 제 기준으로는 제네릭클래스는 내부적으로 타입을 결정해야하지만 이 타입이 메인과 같은 함수에 의해 타입을 전달받아 전달받은 타입으로 타입을 결정하므로 IoC에 부합한다고 생각합니다. 또한 외부에서 타입을 주입받으므로 의존성 주입에도 부합하다고 생각합니다. 혹시 제 생각이 틀렸나요?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
예비군갈나이 댓글 1 좋아요 1 조회수 172

클래스 상수 선언

미해결

김영한의 실전 자바 - 기본편

안녕하세요. 만약 flag 값이 1이면 데이터를 빨간색으로 표기한다 라고 가정했을때 private static final String RED = "1"; if(param.getFlag().equals(RED)){ .... 빨간색 표기 로직 } 저는 이런식으로 상수를 선언해 추후 소스를 봤을때 "1" 이라는 코드가 뭘 나타내는지 이해하기 쉽게 개발을 진행하고 있습니다. 근데 static 변수와 같은경우 메모리에 계속 떠있다보니 클래스에서 이런식으로 static 변수를 계속 선언하는것이 메모리 부족에 영향을 끼치지는 않을지? 걱정이 들기 시작했습니다. 톰캣 서버의 jvm 메모리가 1gb 라고 가정했을때 메모리 걱정을 하지않고 static 변수를 선언해도 괜찮을까요? 아니면 이런 경우 그냥 static 키워드를 제거하고 private final String RED = "1"; 이렇게 사용해서 gc 의 대상이 되도록 하는게 바람직할까요?

  • java
  • 객체지향
backendman 댓글 2 좋아요 1 조회수 147

실행 오류 도와주세요.

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 삼각형 눌러서 실행시키면 다음과 같은 에러가 뜹니다. 구글링 참고해서 세팅 바꿔보았는데도 해결이 안돼요 도와주세요 ㅠㅠ Error: LinkageError occurred while loading main class Hellooo java.lang.UnsupportedClassVersionError: Preview features are not enabled for Hellooo (class file version 66.65535). Try running with '--enable-preview'

  • java
  • 객체지향
before1995 댓글 1 좋아요 0 조회수 245

강의 10분 20초 부분에 대해 질문 있습니다.

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

운영제체 관점에서 보면 다음과 같이 구분할 수 있다. 워드 프로그램 - 프로세스A 스레드1: 문서 편집 스레드2: 자동 저장 스레드3: 맞춤법 검사 유튜브 프로세스B 스레드1: 영상 재생 스레드2: 댓글 강의 내용중에 위와 같은 내용이 있습니다. 유튜브라는 프로세스가 실행이 되고 영상 재생을 담당하는 스레드1이 생기고 댓글을 담당하는 스레드2가 생긴다고 했을때 영상 재생은 계속해서 사용자한테 보여줘야 하므로 스레드1이 쭉 영상 재생을 담당할거 같은데 댓글 같은 경우는 스레드2가 어떻게 동작하는지 궁금합니다. 댓글을 작성할때마다 스레드2가 생성되서 해당 댓글을 담당 한다는 건지 아니면 딱 하나의 스레드2가 생성이 되고 이 스레드2가 여러 사용자들의 댓글 작성 요청에 대해 관리를 하는건지 궁금합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
감바스 댓글 2 좋아요 0 조회수 180

JdbcMemberRepository 문제

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이런 오류가 뜨는데 대체 어떻게 해결해야 할까요? ㅠㅠ package hello.hello_spring.repository; import hello.hello_spring.domain.Member; import org.springframework.jdbc.datasource.DataSourceUtils; import javax.sql.DataSource; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Optional; public class JdbcMemberRepository implements MemberRepository{ private final DataSource dataSource; public JdbcMemberRepository(DataSource dataSource) { this.dataSource = dataSource; } @Override public Member save(Member member) { String sql = "insert into member(name) values(?)"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, member.getName()); pstmt.executeUpdate(); rs = pstmt.getGeneratedKeys(); if (rs.next()) { member.setId(rs.getLong(1)); } else { throw new SQLException("id 조회 실패"); } return member; } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public Optional<Member> findById(Long id) { String sql = "select * from member where id = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setLong(1, id); rs = pstmt.executeQuery(); if(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); return Optional.of(member); } else { return Optional.empty(); } } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public List<Member> findAll() { String sql = "select * from member"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); List<Member> members = new ArrayList<>(); while(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); members.add(member); } return members; } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } @Override public Optional<Member> findByName(String name) { String sql = "select * from member where name = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setString(1, name); rs = pstmt.executeQuery(); if(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); return Optional.of(member); } return Optional.empty(); } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } private Connection getConnection() { return DataSourceUtils.getConnection(dataSource); } private void close(Connection conn, PreparedStatement pstmt, ResultSet rs) { try { if (rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (pstmt != null) { pstmt.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) { close(conn); } } catch (SQLException e) { e.printStackTrace(); } } private void close(Connection conn) throws SQLException { DataSourceUtils.releaseConnection(conn, dataSource); } } error: JdbcMemberRepository is not abstract and does not override abstract method cleatStore() in MemberRepository public class JdbcMemberRepository implements MemberRepository{

  • java
  • spring
  • mvc
  • spring-boot
이윤솔 댓글 1 좋아요 0 조회수 433

[문제 5번] 중복제거

미해결

입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]

혹시 입력 받은 배열을 list(set(배열명))을 통해 중복을 제거한 후 deque 자료구조로 바꾸면 시간 복잡도상 문제가 될까요?

  • python
  • 코딩-테스트
parksangil99 댓글 1 좋아요 0 조회수 177

Reactor 3부의 오픈 일정에 관해서 문의드립니다!

해결됨

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부

안녕하세요 최근에 Spring MVC 말고도 Spring WebFlux에 대해서도 관심을 가지게 되어 Reactor 공부를 막 시작한 주니어입니다. 해당 강의가 3부까지 기획되어 있는 것으로 강의소개를 봤었습니다. 강사님께서도 무척이나 바쁘시겠지만, 혹시 3부는 언제쯤 오픈할 예정이신지 여쭤봐도 될까요? 강의 잘 보고 있습니다! 감사합니다

  • java
  • spring
  • project-reactor
  • webflux
denia park 댓글 1 좋아요 0 조회수 186

data_interval_start가 배치일로 나오는 이유 문의

해결됨

Airflow 마스터 클래스

안녕하세요. 우선 강사님, 좋은 강의 잘 듣고 있습니다. [섹션 5. Template Variable > Airflow 날짜개념] 강의 관련하여 질문 드립니다. Airflow 2.10.0 버전 사용 중이며, 강의와 같이 테스트를 진행하였는데, data_interval_start이 이전 배치일이 아닌 배치일로 나와서 문의드립니다. DAG의 start_date를 2024년 9월 1일로 설정 후 소급 처리하였습니다. 아래와 같이 dag_run이 배치일일텐데, 왜 data_interval_start가 이전 배치일(2024.08.31)이 아닌 배치일로 나올까요? ' dag_run ': <DagRun dags_python_show_templates @ 2024-09-01 00:30:00 +00:00: scheduled__2024-09-01T00:30:00+00:00, state:running, queued_at: 2024-09-06 09:11:26.187022+00:00. externally triggered: False>, ' data_interval_end ': DateTime(2024, 9, 2, 0, 30, 0, tzinfo=Timezone('UTC')), ' data_interval_start ': DateTime(2024, 9, 1, 0, 30, 0, tzinfo=Timezone('UTC')), 'ds': '2024-09-01',

  • python
  • 데이터-엔지니어링
  • airflow
kyou 댓글 2 좋아요 0 조회수 384

(맥환경) workbench 이용할 때 패스워드 입력 안해도 자동으로 활성화 가능해져요..

해결됨

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

본문제목 그대로 워크 벤치 이용할 때, 항상 패스워드를 입력한 후 활성화 되는 것으로 알고 있었는데, 현재 패스워드 입력 안하고 그냥 클릭만 해도 활성화됩니다. 보안상으로 좋지 않은 것 같은데, 혹시 이런 경우 어떻게 변경이 가능할까요? 오랜만에 mysql을 공부하는데 몇년 전에는 항상 패스워드 입력했던 것 같은데 이번에 새로 깔아보니 패스워드 입력 안해도 실행이 되어 불안합니다. 참고로 저는 맥 환경에서 사용하고 있습니다.

  • python
  • sql
  • mysql
  • dbms/rdbms
  • 데이터-엔지니어링
화리둥절 댓글 1 좋아요 0 조회수 391

인기 태그

인프런 TOP Writers

주간 인기글