2021/04 21

Mac ) 설치되어있는 모든 자바 버전 확인하기

/usr/libexec/java_home -V 위의 명령어를 터미널에서 입력하면 됩니다. 위와 같이 설치되어 있는 모든 자바의 경로와 버전이 나옵니다. java -version 을 입력하면 지금 기본으로 사용중인 자바 버전을 확인 할 수 있습니다. Mac에서 이클립스를 사용한다면 구동용 자바 버전과 개발용 자바 버전을 따로 가지는걸 추천합니다. 2020-12 버전부터는 Eclipse에 기본적으로 jre를 내장해서 나오기 떄문에 상관 없습니다. Sql Developer는 JDK 11로 구동하는걸 추천합니다. 2020-06 이클립스는 자바 16 버전으로 실행시에 에러가 심각해서 사용할 수 없었습니다. 전자정부 프레임워크 사용시에는 JDK 8 이나 11 로 구동하면 됩니다.

IT Computer/Mac 2021.04.23

MacOS) m1 맥북 Oracle SQL Developer (Docker 없이) 사용하기 및 the directory is not accessible 에러 해결하기

MacOS) m1 맥북 Oracle SQL Developer (Docker 없이) 사용하기 및 the directory is not accessible 에러 해결하기. the directory is not accessible 에러 해결 하러 왔으면 서론 건너뛰기 클릭 꾸준히 최신 정보로 수정 중입니다. (최근 수정일자 : 2021 / 10 / 03 , developer 버전 21.2) 시작하기에 앞서. 혹시 SQL Developer 를 실행하는건 성공을 했는데 데이터베이스 구축을 하는 방법을 찾고 있는 분은 두 가지 방법이 있습니다. 1. Docker를 이용한 가상 환경에 DB 구축 현재 (2021. 08. 14) m1 맥북에서 Oracle 데이터베이스를 가동할 수 있는 방법은 전혀 없습니다. 수많은 해..

IT Computer/Mac 2021.04.23 (40)

MYSQL)Data too long for column 에러 해결

[http-nio-80-exec-6] ERROR j.sqlonly - 1. PreparedStatement.execute() UPDATE LIC_ALBA SET LIC_IMG = '' WHERE AL_ID = 'A0000016' AND LIC_CODE = 'L006' com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'lic_img' at row 1 MYSQL에서 데이터를 넣으려 할때 위의 에러가 뜬다면 해당 컬럼에 들어갈 수 있는 최대 값보다 넣으려고 하는 데이터가 더 큰 상황입니다. 숫자나 CHAR, VARCHAR2 등을 넣으려고 했다면 테이블의 해당 컬럼의 Length가 몇으로 되어있는..

JDBC 와 MYSQL 연동하기 9) Semantic UI 적용해보기 (BootStrap 대안)

최종 프로젝트를 할때 모든 팀이 BootStrap을 이용할 것 으로 보여 너무 획일화 된 디자인의 웹 사이트들이 나오지 않을까 싶어 다른 대안들을 몇개 찾아보았습니다. 그러던중 Semantic UI가 요즘 트렌드에도 맞아 보이고 BootStrap과 기능이나 사용상의 차이는 그닥 커보이지 않아서 Semantic UI를 써보려고 합니다. semantic-ui.com/introduction/getting-started.html Getting Started | Semantic UI semantic-ui.com 위의 사이트에서 다운받습니다. 본인의 취향에 맞게 바꿔가면서 쓰려면 Building Tool을 설치해서 한다는데, 아직 기본적인 것도 사용해 보지 않았으니, 일단 기본적인 Default Theme 을 써보..

JDBC 와 MYSQL 연동하기 8) log4jdbc 적용하기

기존에 oracle에서 쓰던 설정을 그대로 가져왔더니 log4 설정이 제대로 먹히지 않았습니다. 그래서 몇가지 수정이 필요했습니다. 1. pom.xml 에 dependency 추가 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4 1.16 위의 log4jdbc를 사용합니다. 2. 데이터베이스 접속 정보 수정 #driverClassName=com.mysql.cj.jdbc.Driver driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy #url=jdbc:mysql://localhost:3306/jsp url=jdbc:log4jdbc:mysql://localhost:3306/jsp 위의 주석 처리된 부분들이 각각 log4jdbc 적..

JDBC 와 MYSQL 연동하기 7) MyBatis 적용하기

Mybatis란? Mybatis는 Java Persistence Framework 입니다. SQL 문장을 XML 혹은 어노테이션을 이용해 Object에 저장하도록 해줍니다. ORM ( Object Relational Mapping) 혹은 Sql Mapper Framework 로 불립니다. Transaction 도 관리해주며, class loader 형태로 접근(절대경로)합니다. Ibatis가 발전해 MyBatis가 되었는데요, Apache Project 팀에서 google code 팀으로 이동하며 명칭이 변경되었습니다. MyBatis와 Ibatis는 몇가지 차이점이 있습니다. - IBatis는 JDK 1.4 에서 사용이 가능합니다. MyBatis로 넘어오며 요구사항이 JDK 1.5 이상으로 바뀌었습니다...

JDBC 와 MYSQL 연동하기 6) MVC 패턴 적용하기

1. 필요한 VO(Value Object) 객체를 제일 먼저 만들어 줬습니다. package kr.or.ddit.vo; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @Data @EqualsAndHashCode(of="al_id") @ToString public class AlbaVO { private String al_id; private String al_name; private Integer al_age; private String al_zip; private String al_addr1; private String al_addr2; private String al_hp; private String gr_co..

JDBC 와 MYSQL 연동하기 5) FrontController 패턴 적용하기

@Controller 와 @RequestMapping 어노테이션을 이용한 FrontController 패턴을 적용해 보았습니다. 1. 적용하기 앞서 FrontController 패키지가 준비 되어 있어야 합니다. github.com/Shane-Park/jspClass/tree/master/alba/alba/src/main/java/kr/or/ddit/mvc Shane-Park/jspClass jsp class tomcat . Contribute to Shane-Park/jspClass development by creating an account on GitHub. github.com 위의 링크에서 해당 패키지 코드들을 다운받을 수 있습니다. 2. web.xml에 해당 컨트롤러를 등록해주어야 합니다. F..

Oracle) ORA-01031: insufficient privileges 해결하기

Error report - ORA-01031: insufficient privileges 01031. 00000 - "insufficient privileges" *Cause: An attempt was made to perform a database operation without the necessary privileges. *Action: Ask your database administrator or designated security administrator to grant you the necessary privileges View를 만들려고 하는데 권한이 없다는 에러로 애를 먹었습니다. 제가 사용자를 만들때 뷰를 만들 수 있는 권한을 주지 않았기 때문이었습니다. 오라클 시스템 계정 (syste..

Database/Oracle 2021.04.16

JDBC 와 MYSQL 연동하기 4) 서블릿으로 출력하기

이번에는 서블릿을 만들어서 MYSQL에서 읽어온 데이터를 브라우저에서 출력해보도록 하겠습니다. shanepark.tistory.com/78 JDBC 와 MYSQL 연동하기 3) 커넥션 팩토리 패턴 적용하기 이제부터는 2) 번에서 했던 코드를 커넥션을 팩토리 패턴을 이용해 받아오도록 해보겠습니다. 코드는 거의 동일한데 커넥션을 받아온다는 것만 다릅니다. 제일 먼저 Resource 소스 폴더에 dbinfo.prop shanepark.tistory.com 위의 3번 예제의 코드를 서블릿으로 만들었습니다. 어노테이션(@WebServlet)을 통한 맵핑은 Servlet 3.0 이후부터 가능합니다. 출력할 내용에 한글이 포함되어 있다면, charset을 설정해주지 않으면 한글이 깨져서 나옵니다. 그외 전체 코드는 ..

JDBC 와 MYSQL 연동하기 3) 커넥션 팩토리 패턴 적용하기

이제부터는 2) 번에서 했던 코드를 커넥션을 팩토리 패턴을 이용해 받아오도록 해보겠습니다. 코드는 거의 동일한데 커넥션을 받아온다는 것만 다릅니다. 제일 먼저 Resource 소스 폴더에 dbinfo.properties 파일을 생성합니다. driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/본인DB이름 user=아이디 password=비밀번호 initialSize=2 maxTotal=2 maxWait=2000 connectionMessage=connected! 이어 적당한 위치에 ConnectionFactory 만들어주는 코드도 생성합니다. package kr.or.ddit.utils.db; import java.sql.Con..

JDBC 와 MYSQL 연동하기 2) 간단한 쿼리문 실행해보기

아래에서 사용할 간단한 테이블들을 위에 파일로 첨부해 두었습니다. package kr.or.ddit.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Test02Select { public static void main(String[] args) { String user = "접속아이디"; String password = "접속비밀번호"; String url = "jdbc:mysql://localhost:3306/디비정보"; try( Connection conn = D..

JDBC 와 MYSQL 연동하기 1) 커넥션 생성

DB와 연결해 CRUD를 하는 MVN 프로젝트를 새로 만드는 프로젝트가 숙제로 나와서 이왕 처음부터 DB도 새로만드는거 오라클은 학원에서 충분히 써보니깐 MYSQL을 한번 시도해 보려고 합니다. OJDBC의 O는 Oracle을 의미합니다. MYSQL을 쓴다면 커넥터를 MYSQL용으로 받아야합니다. mvnrepository.com/artifact/mysql/mysql-connector-java MYSQL이 아직 설치되어 있지 않거나 접속할 서버가 없다면 Mac의 경우에는 아래 튜토리얼을 따라하시면 됩니다. shanepark.tistory.com/41 mac) MYSQL 설치 및 초기설정하기 HOMEBREW 패키지 설치를 이용해 설치하는게 가장 간단합니다. [ homebrew가 설치되어있지 않다면?] sha..

이클립스에서 메이븐 MAVEN 웹 프로젝트 만들기

메이븐으로 프로젝트를 만들면 빌드관리가 매우 수월해집니다. 꼭 자바에서만 쓸 수 있는건 아닌 듯 합니다. 최근엔 Gradle이 널리들 쓰이는 것 같은데 아직 학원에서는 MAVEN을 가르쳐 주고 있습니다. 여유가 있다면 MAVEN에 충분히 익숙해 진 후에 Gradle로도 연습 프로젝트를 만들어 보고 싶고, 괜찮다면 최종 프로젝트때는 Gradle을 쓰고 싶습니다. 중급프로젝트부터 Windows 에서 개발하던걸 Mac OS로 전환해 개발을 하니 학원에서 가르쳐주는걸 온전히 내 것으로 만들지 않고 무작정 따라하기만으로는 벽에 부딪히는 점이 많아 더욱 정신을 바짝 차리고 수업을 듣게 된 것처럼, DB는 오라클로 배워서 MYSQL로, 빌드관리는 Maven으로 배워서 Gradle로 프로젝트를 한다면 더 힘든만큼 더 ..

Programming/Java 2021.04.14

Playddit 비밀번호 이중 암호화 적용기

Playddit 비밀번호 이중 암호화 적용기 🔐 AES256 Playddit에서는 AES256 방식으로 비밀번호를 암호화 하고 있었습니다. 이유는 단 한가지 학원에서 AES256를 이용한 암호화를 배웠기 때문이었습니다. public static String encryptAES256(String str, String key) throws UnsupportedEncodingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { String iv = key.substri..

반응형