본문 바로가기
728x90

전체 글520

java input.txt 읽기 코테 하다보면 input.txt로 쉽게 읽기 import java.util.Scanner; import java.io.FileInputStream; class Solution { public static void main(String args[]) throws Exception { String inputTxt = Solution.class.getResource(".").getPath()+"input.txt"; System.setIn(new FileInputStream(inputTxt)); Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int test_case = 1; test_case 2021. 7. 29.
JDBC /DAO, DTO Statement로 sql을 적용시키고, 같은 명령을 값만 바꿔서 더 빠르게 처리하기 위해서 PreparedStatement를 사용해서 아래 코드로 insert와 select를 만들었다. 그런데도 그 코드는 다른 기능과 함께 사용하려면 아마 함수나 객체로 만들어 처리하는게 더 가시적이고 편할 것이다. 즉 데이터베이스의 CRUD를 모듈화 한 것이 DAO이다. try{ Class.forName("com.mysql.jdbc.Driver"); String url ="jdbc:mysql://localhost:3306/hellojdbc?serverTimezone=UTC"; conn = DriverManager.getConnection(url, "root", "root"); System.out.println("연결 .. 2021. 7. 23.
JDBC API를 이용해서 두 개 이상의 쿼리를 트랜잭션으로 묶어서 처리 try { conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass); conn.setAutoCommit(false); //쿼리 실행1 //쿼리 실행2 // 트랜잭션 커밋 conn.commit(); } catch(Throwable e) { if (conn != null) { try { // 트랜잭션 롤백 conn.rollback(); } catch(SQLException ex) {} } occuredException = e; } finally { if (pstmtItem != null) try { pstmtItem.close(); } catch(SQLException ex) {} if (pstmtDetail != null) try { pstmtDeta.. 2021. 7. 23.
웹 어플리케이션 구동 시 JDBC 드라이버 로딩하기 JDBC 드라이버는 ㅎ한 번만 로딩하면 이후로 계속해서 사용할 수 있기 때문에 JSP를 실행할 때마다 JDBC 드라이버를 로딩할 필요가 없다 톰캣과 같은 웹 컨테이너가 시작될 때 자동으로 JDBC 드라이버를 로딩하도록 지정하면 JSP 페이지에서 매번 JDBC 드라이버를 로딩할 필요가 없다. package jdbc; import javax.servlet.http.HttpServlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; public class MySQLDriverLoader extends HttpServlet { public void init(ServletConfig config) throws ServletE.. 2021. 7. 23.
JSP LONG VARCHAR 타입 값 일어오기 (mysql) String history = null; // 스트림으로 읽어온 데이터를 저장한다 Reader reader = null; // LONG VARCHAR 데이터를 일어올 스트림 try { // 1.ResultSet 의 getCharacterStream()으로 Reader 구함 reader = rs.getCharacterStream("HISTORY"); // 스트림 일거옴 if (reader != null) { // 2. 스트림에서 일어온 데이터를 저장할 버퍼를 생성한다 StringBuffer buff = new StringBuffer(); char[] ch = new char[12]; int len = -1; // 3. 스트림에서 데이터를일어와 버퍼에 저장한다. while( (len = reader.read.. 2021. 7. 23.
JSP JDBC 이용해 mysql 연결 JDBC URL = jdbc:mysql://HOST[:PORT]/DBNAME[?param=value&param2=value2&...] MEMBER 테이블의 내용 이름아이디이메일 2021. 7. 23.
MySQL8.0 계정생성 및 DB 권한 주기 MySql5.7 까지만 하더라도 아래와 같이 계정 생성과 동시에 DB에 권한을 부여할 수 있었다. mysql> grant all privileges on DB이름.* to 계정ID@'%' identified by '계정비밀번호' with grant option; mysql> flush privileges ; 그러나 MySQL 8 에서는 해당 명령어가 동작하지 않고, 계정 생성과 DB 권한 부여를 각각 해줘야 한다. mysql> create user 계정ID@'%' identified by '계정비밀번호' ; mysql> grant all privileges on DB이름.* to 계정ID@'%' with grant option; mysql> flush privileges; 출처: https://fruit.. 2021. 7. 21.
이클립스에서 JSP로 개발 시 파일 경로 설정 이해 Eclipse에서 JSP로 개발환경 설정 시 파일 경로 설정방법 테스트 과정 - 그림파일 준비 - 이클립스에서 Dynamic Web Project 생성 - 준비한 그림파일 WebContent아래에 복사 - 이미지파일을 보여주는 jsp코드 작성 - 경로 확민 및 변경하여 테스트(상대경로, 절대경로, 외부경로매핑) 1. 프로젝트 생성 후 다음 그림과 같은 위치에 그림파일을 위치시키고 JSP파일 생성 2. 클라이언트에 그림파일을 보여주도록 jsp코드 작성 3. 작성된 페이지 브라우저로 요청 결과 확인 4. 이미지 파일의 위치를 변경 5. jsp코드에서 그림 파일경로 수정 위 경로 설정은 상대경로이다. "image/my.png" 는 현재 페이지를 기준으로 image폴더 아래에 my.png파일을 지정하는 경로이다.. 2021. 7. 17.
[eclipse] Server Location 비활성화 되어 있을때.출처: Server Location 이 잠겨서 수정이 되지 않는 경우. 1. 서버 View 에서 해당 서버를 선택하고 오른쪽 클릭하여 속성 정보를 연다. 2. Switch Location 을 클릭하여 정보를 변경한다. 3. Server Locations 가 활성화 되었다. 출처: https://macdev.tistory.com/179 [커피중독자] 2021. 7. 16.
이클립스 JSP 컴파일 위치 (서블릿 클래스) . 서버를 더블 클릭하면 나오는 화면에서 Open launch configuration 을 클릭 2. 팝업창에서 Arguments 탭을 클릭하여 Tomcat 과 연동되는 폴더가 어디인지 확인. 하단 이미지를 기준으로 Dcatalina.base 에 해당하는 폴더 밑에 work\Catalina\localhost 에 JSP 가 컴파일 됨. 즉, 전체경로는 D:\workspace_new\.metadata\.plugins\org.eclipse.wst.server.core\tmp4 폴더 밑에 있는 work\Catalina\localhost 가 되는 것임. 출처: https://rainny.tistory.com/118 [긍정적 사고방식^^] 2021. 7. 15.
이클립스 톰캣 설정 및 추가 우측 상단에 Open Perspective -> java EE -> 화면에 서버창에 Server 없으면 Windows -> Show View -> Servers -> Servers 창 우클릭 -> New -> Server 아파치 -> Tomcat 버전 선택 -> Add -> 톰캣 홈페이지에서 다운로드 후 압축 해제 -> Tomcat Iinstallation directory 톰켓 경로 설정 -> Finish -> Finish 설정 완료 2021. 7. 15.
이클립스 다이나믹 웹 프로젝트 만들기 File -> New -> Dynamic Web Project Next 2번 누르면 Context root, Content directory 설정 Context root : URL 접속시 root 경로 Content directory : html, css 등 정적파일 경로 설정 2021. 7. 15.
이클립스 html,css 추가 다이나믹 웹 프로젝트 -> WebContent 우클릭 -> Import -> General -> File System -> 파일 경로 설정 -> WebContent 확인 2021. 7. 15.
이클립스 인코딩 설정 UTF-8 Windows -> Preferences -> encoding 검색 Workspace, CSS, HTML, JSP : encoding UTF-8 변경 2021. 7. 15.
org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다 ​ 에러 메시지 타입 예외 보고 메시지 JSP를 위한 클래스를 컴파일할 수 없습니다.: 설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다. 예외 org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: ​ ​ ​ 에러창 ​ 톰캣 실행이 오류인 듯하다. 콘솔창에서 server에 들어가 톰캣 -> 오른쪽 버튼 -> clean 클릭 그리고 서버를 재실행 해주면 정상 작동 ​ 참조 https://m.blog.naver.com/fullmoon_in_me/222063938399 2021. 7. 15.
이클립스에 아파치 톰켓 설치후 가동시 404에러 해결 해당 톰켓 더블클릭 -> Server Locations -> 2번째 체크(Use Tomcat Installation(~)) 후 저장 2021. 7. 15.
윈도우 아파치 톰캣 설치 startup.bat 실행시 한글 깨짐 1. 한글이 깨지는 이유 윈도우 환경에서 Tomcat을 bin폴더에 있는 startup.bat으로 실행시 한글이 깨지는 현상이 발생한다. 한글이 깨지는 이유는 cmd의 코드 페이지가 949 – ANSI/OEM으로 설정되어 있기 때문이다. 이를 Tomcat이 실행될 때 UTF-8로 실행되게 해주면 한글이 깨지지 않는다. 2. 해결방법 1) 레지스트리 실행 window키 + R -> regedit 으로 레지스트리 편집기 실행하고 컴퓨터\HKEY_CURRENT_USER\Console 로 이동하여 Console폴더에 오른쪽 마우스 클릭 -> 새로 만들기 -> 키 만들어진 키 폴더명을 Tomcat 으로 변경 2) cmd 실행 cmd를 실행( window키 + R -> cmd ) 하고 1 REG ADD HKCU\C.. 2021. 7. 14.
sqlite3 테이블 확인 bool MySqlite::CheckTable(std::string tableName) { sqlite3_stmt* stmt; char query[1024] = ""; std::string tableSql = "SELECT name FROM sqlite_master WHERE name = '%s';"; sprintf(query, tableSql.c_str(), tableName.c_str()); bool result = false; sqlite3_prepare_v2(this->db, query, -1, &stmt, NULL); if (sqlite3_step(stmt) == SQLITE_ROW) { result = true; } sqlite3_reset(stmt); sqlite3_finalize(stmt).. 2021. 4. 12.
c++ sqlite ' 포함된 문자열 insert시 쿼리 변환 sqlite ' 포함된 문자열(i'm fine) insert시 에러가 발생함으로 변환 필요 std::string StrConvert::ReplaceAll(std::string& str, const std::string& from, const std::string& to) { size_t start_pos = 0; //string처음부터 검사 while ((start_pos = str.find(from, start_pos)) != std::string::npos) //from을 찾을 수 없을 때까지 { str.replace(start_pos, from.length(), to); start_pos += to.length(); // 중복검사를 피하고 from.length() > to.length()인 경우를 .. 2021. 4. 8.
유니티 2D 애니메이션 붕 떠있는 효과 없애기 캐릭터와 바닥 사이 붕떠있는 상황 Edit -> Project Settings Physics 2D -> Default Contact Offset 을 0으로 변경(변경하면 내 컴터에서는 0.0001로 바뀜) 틈 없는것을 확인 2021. 3. 22.
유니티 이미지 픽셀 크기 조정 Scene화면에 한칸의 크기를 맞추고 싶은 경우 이미지 한개의 크기 확인 (16x16) 이미지 Sprite Mode의 Pixels Per Unit의 크기를 16으로 변경하면 픽셀 하나의 크기에 딱 맞게 적용된다. 2021. 3. 22.
유니티 2D Z축 원근법 사용 카메라에 Projection을 Perspective로 변경 시 z축 이동시 원근감 생김(커졌다 작아졌다) 2021. 3. 21.
유니티 컴포넌트 복사 Copy Component 복사 복사할 오브젝트의 아무 컴포넌트 상단 ":" 클릭하고 Paste Component As New 클릭 2021. 3. 21.
Update() , FixedUpdate() , LateUpdate() 의 차이점 Update() - 스크립트가 enabled 상태일때, 매 프레임마다 호출됩니다. 일반적으로 가장 빈번하게 사용되는 함수이며, 물리 효과가 적용되지 않은 오브젝트의 움직임이나 단순한 타이머, 키 입력을 받을 때 사용됩니다. FixedUpdate() - 프레임을 기반으로 호출되는 Update 와 달리 Fixed Timestep에 설정된 값에 따라 일정한 간격으로 호출됩니다. 물리 효과가 적용된(Rigidbody) 오브젝트를 조정할 때 사용됩니다(Update는 불규칙한 호출임으로 물리엔진 충돌검사 등이 제대로 안될 수 있음). LateUpdate() - 모든 Update 함수가 호출된 후, 마지막으로 호출됩니다. 주로 오브젝트를 따라가게 설정한 카메라는 LateUpdate 를 사용합니다(카메라가 따라가는 오.. 2021. 3. 21.
물체의 속도가 너무 빠를 시 방법 1. Rigidbody 컴포넌트에서 무게 추가 2. AddForce의 힘 감소 2021. 3. 21.
AddForce의 ForceMode AddForce의 2번째 인자 값 설명 1. 연속적인 힘 : 자동차의 엑셀을 밟아서 가속을 넣듯이 가속을 추가해주는 방식입니다. : 이미 굴러가고 있는 중에 사용하기 적합합니다. : 무게를 적용하려면 ForceMode.Force : 무게를 무시하려면 ForceMode.Acceleration ​ 2. 순간적인 힘 : 마치 뒤에서 누가 밀듯이 순간적으로 속도가 붙여주는 방식입니다. : 정지 상태서 이동을 시작하려 할 때 적합합니다. : 무게를 적용하려면 ForceMode.Impulse : 무게를 무시하려면 ForceMode.VelocityChange 참조 m.blog.naver.com/PostView.nhn?blogId=gold_metal&logNo=221486016593&proxyReferer=https:.. 2021. 3. 21.
IEnumerable 에서 string으로 변환할 수 없습니다. 에러 이 에러가 나서 찾아봤는데 유니티에서 코루틴을 사용해 함수를 실행시킬경우 해당 함수(DestoryAfter) 린턴값이 IEnumerator로 작성하면 안된다. 자동완성시 실수 할 수 있다. IEnumerator로 리턴 2021. 3. 18.
유니티 네트워크 설정(PUN 2) 에셋 스토어에서 PUN 2 검색해 FREE버전 다운로드하고 Import Window -> photon Unity Networking -> PUN Wizard Setup Project 클릭 클릭시 해당 페이지 Photon 홈페이지 접속 회윈가입 및 로그인 관리 화면으로 이동 -> 새 어플리케이션 만들기 애프리케이션 생성 생성 완료 화면 AppId 적고 Setup Project 클릭하고 Done! 나오면 성곡 2021. 3. 16.
C++ UTF-16 formatstring 하기(swprintf 함수 사용) sqlite3* db; wchar_t* err_wmsg = 0; wchar_t query[1024] = L""; std::wstring filePath = L"C:/Users/apple/Downloads/sqlite_unicode (2)"; swprintf(query, L"INSERT INTO MFTpath VALUES(%d, '%s');", 1, filePath.c_str()); rc = sqlite3_exec16(db, query, 0, 0, &err_wmsg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL error: %s\n", err_wmsg); sqlite3_free(err_wmsg); sqlite3_close(db); return 1; } sqlite3_ex.. 2021. 3. 12.
유니티 백그라운드 설정 백그라운드로 할 오브젝트를 선택 Sprite Renderer -> Sorting Layer -> Add Sorting Layer 클릭 클릭하면 인스펙터 창에서 Layer 생성 상위 레이어일수록 백그라운드로 적용 배경화면 백그라운드 설정 2021. 3. 12.
728x90