묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오라클 DB연결 bean설정하는 방법 질문합니다.
강의를 듣다가 데이터베이스를 h2 말고 oracle로 사용하고싶어서 변경해봤는데 방법을 잘 모르겠습니다..단순하게 db 연결은 가능합니다. public class JdbcTest01 { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "이름", "비밀번호"); Class.forName("oracle.jdbc.driver.OracleDriver"); String sql = "select * from member"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); System.out.println(" == 쿼리문 처리 결과 =="); while (rs.next()) { System.out.println("Lprod_id : " + rs.getInt("id")); System.out.println("------------------------------"); } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { } finally { if (rs!=null) { try { rs.close(); } catch (SQLException e2) { } } if (stmt!=null) { try { stmt.close(); } catch (SQLException e2) { } } if (conn!=null) { try { conn.close(); } catch (SQLException e2) { } } } } } 그런데.. 빈 설정하는 방법을 잘 모르는 것 같습니다 ㅠㅠ (.getConnection에 유저이름과 비밀번호는 제대로 설정했습니다!밑에만 바꿨어요!)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 = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "이름", "비밀번호"); 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 { // 5. 자원 반납 if (rs!=null) { try { rs.close(); } catch (SQLException e2) { // TODO: handle exception } } if (conn!=null) { try { conn.close(); } catch (SQLException e2) { // TODO: handle exception } } } }프로퍼티스spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver spring.datasource.username=이름 spring.datasource.password=비밀번호 디펜던시스dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.oracle.ojdbc:ojdbc8:19.3.0.0' implementation 'com.oracle.database.jdbc:ojdbc6:11.2.0.4' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.projectlombok:lombok' implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' } @Configuration@Configuration public class SpringConfig { private DataSource dataSource; public SpringConfig(DataSource dataSource) { this.dataSource = dataSource; } @Bean //스프링빈수동등록 public MemberService memberService() { return new MemberService((MemoryMemberRepository) memberRepository()); } @Bean public MemberRepository memberRepository() { //return new MemoryMemberRepository(); return new JdbcMemberRepository(dataSource); } } 어떤 부분을 추가하고 수정해야하는지 잘 모르겠습니다 ㅠ
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 질문이 있습니다
포인터 값을 증가시키면 해당 포인터 자료형만큼 주소가 이동한다고 했는데요!(ex. int* 면 4byte씩, char* 면 1byte씩)근데 스택프레임에서의 주소 이동은 32bit면 4byte, 64bit면 8byte 단위로 이동하는걸로 알고 있는데, char* 형 이동 단위인 1byte씩 움직이는것도 가능한건가요???ex.char number = 1;char* pointer = &number;pointer += 2;만약 위처럼 코딩이 되어있을 때, 메모리를 까보면 pointer 주소값이 2byte 증가해 있는데, 이렇게 되면 32bit 기반 스택프레임에서 4byte의 절반인 0.5블럭만 갖게 되는 건가요????
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
선행 지식
스프링 강의 선행으로 요구되는 지식이 자바, 관계형 데이터베이스 기초라고 되어 있는데요자바랑 MySQL은 공부했습니다.그런데 JDBC나 JSP, 서블릿, 디자인 패턴 등에 대한 지식이나 웹 개발에 대한 지식은 모른 채로 로드맵 시작해도 상관없나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
싱글 코어와 멀티 코어에 대해 질문드립니다.
안녕하세요. 싱글 코어와 멀티 코어에 대해 궁금한 점에 대해 질문드립니다.1.만약 제가 작성한 프로그램에서 멀티 쓰레드를 사용하더라도 사용하는 컴퓨터의 CPU가 싱글 코어 일 경우쓰레드를 사용할 때 컨텍스트 스위칭이 일어나기 떄문에 멀티 쓰레드를 사용하는 건 의미가 없는 게 맞을까요?2.반대로 멀티 코어인 컴퓨터에 단일 스레드 환경의 프로그램을 만들었을 경우 여러 코어를 사용하는 게 아닌 하나의 코어만 사용하게 되어 CPU의 성능을 제대로 활용 못하는 게 맞을까요? 실제 운영체제 환경에서는 제가 만든 프로그램 외 에도 백그라운드로 실행되는 프로그램들이 있어서 코어 하나만 사용하진 않겠지만 개념적으로 봤을 때 멀티 코어일 때 단일 쓰레드 환경의 프로그램이면 CPU 성능을 제대로 활용 못 하는 게 맞는 건지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:text=${}에서 변수에 데이터가 없는 경우 관련 질문
<span th:text="${data}">html data</span>Model에 data가 있는 경우, 키가 data인 값이 'html data'를 대체합니다.그런데, Model에 data가 없는 경우, 소스코드 보기로 확인해보니 <span></span>으로 출력되었습니다. 그렇다면 'html data'는 도대체 왜 작성하는 것인가요..??
-
미해결앨런 Swift문법 마스터 스쿨 (온라인 BootCamp - 2개월과정)
질문은 슬랙채널에 올려주세요.
질문은 부트캠프 슬랙채널에 올려주세요. 인프런으로 답변을 드리지 않습니다. (답변 채널을 통일하기 위함이기도 하고, 자주하는 질문들을 이미 정리해 놓았기 때문에, 질문이 흩어지면 관리가 안되는 문제가 있습니다. 양해 부탁드립니다.)
-
미해결오픈 소스 자바스크립트 React 프로그래밍 입문 Part.1
GitHub extension 이 확장프로그램 목록에 노출되지 않습니다.
강의 48분 정도에 GitHub Extension 이 확장프로그램 목록에 노출되지 않는데 어떻게 해야 할까요 ?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
dispose에서 timer를 직접적으로 cancel 해줘야 하는지 궁금합니다.
안녕하세요. 강의 잘 듣고 있습니다! dispose되어서 State 객체가 사라지면 그 member인 timer도 GC에 의해 함께 메모리 해제 되는 것이 아닌지 궁금합니다.혹시 timer를 관리하는 또 다른 객체가 포인팅하고 있어서 그런건가요?
-
미해결
JPA 식별관계 사용에 대해서...
Jpa를 사용할 때 테이블 관리를 쉽게 하기 위해서 비식별 관계로 테이블을 설계하라고 들었는데 그러면 실무에서 jpa쓸 때 식별관계를 안쓰나요?
-
미해결
서버에서 받은 파일을 바로 프론트에서 보여주는 방법
백엔드에서 프론트로 mp3형태의 파일을 보내줄 때,받은 오디오 mp3 파일을 바로 프론트에서 audio태그를 사용하여 보여줄 수 있는 방법이 있을까요?
-
해결됨프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 2
webp 확장자질문
강사님 안녕하세요 좋은강의 잘 수강중인 학생입니다.강의중에는 클라이언트에 저장된 확장자 2개의 이미지를 사용해서 분기처리를 하셨는데요,서버에서 받아오는 이미지파일을 분기처리 할려면(webp를 지원하지않는 브라우저를 위해)webp파일 이미지와 jpg(또는 png) 파일 이미지 총 2개 파일 이미지를 보내줘야 분기처리가 가능한가요?아니면 서버에서 1개의 확장자 이미지를 보내주면jpg -> webp 또는 webp->jpg로 바꾸어서 분기처리 하는방법은 없을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
mysql.server start 에러
M1 Macbook Pro입니다. brew로 mysql 설치 후 mysql.server start를 하면 아래 메시지가 반겨주네요. ERROR! The server quit without updating PID file (/opt/homebrew/var/mysql/Wons-MacBook-Pro.local.pid).어찌해야 될까요? 설 연휴에 죄송합니다^^
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
블로그 글이 여기에 어디에 해당하나요~
선생님 강의 감사합니다~\블로그에서 보다가 여기로 수강신청해서 보고 있는데요 예전에 블로그https://martinii.fun/365글이 여기서 어디에 해당하는지 안내좀 부탁드립니다^^
-
해결됨파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
attack_units []에서 다른 인스턴스들을 추가할 때 궁금한 것이 있습니다.
강사님께서는 attack_units.append(m1)과 같이 일일이 인자에 인스턴스를 각각 넣어서 빈리스트에 추가하셨는데요. 만약에 인스턴스가 많을 경우에는 어떻게 해야하나요?
-
해결됨PHP 개발자의 최종 테크트리, 라라벨 강의
routing 오류
안녕하세요, 선생님!오늘도 어김없이 에러가 나네요! url주소 창에 localhost/get/3라고 입력을 했더니, 브라우저에서 이런 결과를 출력해주네요!소스코드에는 강의에서 진행한 그대로 똑같이 구성되어있는데도 불구하고, 이런 결과가 출력이되니까 어디에서 잘못된 건지 감도 안 잡히네요 ㅜㅜ 아 그리고 하나 더 궁금한 점이 있습니다.api.php와 web.php이 차이점이 무엇이고 왜 둘을 구분해서 라우팅하는 건가요? -routes/web.php<?php use Illuminate\Support\Facades\Route; use Illuminate\Http\Request; use App\Http\Controllers\NewController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Route::get('/get/{$id}', function($id){ return view('routing', ['id' => $id]); }); -routes/api.php<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | API Routes |-------------------------------------------------------------------------- | | Here is where you can register API routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | is assigned the "api" middleware group. Enjoy building your API! | */ Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); }); Route::post('post', function(Request $request){ $data = $request->input('name'); return view('routing',["id"=>$id,"data" => $data]); }) -resources/views/routing.blade.php{{$data}} {{$id}} <form method="POST" action = "/api/post"> @csrf; <input type="text" name = "name"> <input type= "submit" value = "test"> </form>
-
미해결반응형 웹사이트 포트폴리오(Architecture Agency)
질문있습니다
제가 선생님께서 만드신 웹사이트에서 테마를 변경 후제 개인포트폴리오 웹사이트에 응용해보려고 하는데요현재강의에서 선생님께서 만드신 웹사이트랑 유사하거나 응용해볼만한 사이트가 있을까요?
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
연산자 파트 질문
안녕하세요 연산자 첫 파트 강의를 듣고 있는데요밑에 (1) 식에서는 c를 30으로 한번 출력하고 다시 식을 줄 때c = a - b;로 바로 했는데(2)에서는 val = 10;을 다시 선언하고 한게 무슨 차이인지모르겠습니다.(2)에서 처음 val 이 11로 됐기 때문에 다시 val=10;으로 한거라면(1)에서도 c는 30이 됐으니까 다시 c를 0으로 해줘야 하는거 아닌지.. (1)int a = 20; int b = 10;int c;c = a + b;System.out.println(c); //30c = a - b;System.out.println(c); //10 (2)int val; val = 10; System.out.println(val); //10 System.out.println(++val); //11 System.out.println(val); //11 val = 10; System.out.println(val); System.out.println(val++); System.out.println(val);
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
vs2022 미로 줄간격
상당히 길쭉하게 나옵니다.■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
-
미해결앨런 Swift문법 마스터 스쿨 (온라인 BootCamp - 2개월과정)
힙의 특성에 대해서 궁금합니다!
85강 48분에서 나오는 힙에 대한 설명 중에 힙의 영역에 인스턴스가 알아서 자리를 찾아서 저장된다고 하셨는데...힙의 특징이 원래 FIFO이지 않나요? 선입선출의 특징이 있어서 차례대로 인스턴스들이 쌓여야하는 것이 아닌가? 하는 궁금증이 생깁니다!
-
해결됨[코드캠프] 훈훈한 Javascript
새로고침 두번 누를시 카운트다운 초기화
storage 데이터 유무에 따른 조건문까지 들은 학생입니다.로직 다 작성하고 테스트를 하는 과정에서 새로고침(F5)을 한번 눌렀을때는 입력했던 숫자들이 지워지면서 카운트다운이 흘러가고, localStorage에 있는 데이터도 사라지고 그 상태에서 한번 더 새로고침(F5)을 누르게 될 때 카운트다운이 흘러가는게 사라지고 D-Day를 입력해 주세요 가 뜨는데 원래 강의에서 이렇게 동작하게 하려고 했던 로직이 맞는지 궁금합니다!