본문 바로가기

노력을 이기는 재능은 없고
노력을 외면하는 결과도 없다.
- 이창호 9단

Java13

[JAVA] 인코딩(Encoding)이란? 인코딩 개념과 종류(ASCII, ISO/IEC, EUC-KR, MS949, UTF-8) 우리가 이클립스를 설정하거나 소프트웨어 개발을 하거나 데이터를 전송하거나 등등 여러가지 행위에서 인코딩이라는 개념과 사용이 생각보다 많다. 그렇지만 정작 우리가 사용하면서 정확한 개념을 이해하거나 정의를 알고 있는 건 한정적이고 한계가 많다. 그래서 오늘은 인코딩에 대해서 알아보고 인코딩 방식의 종류에 따른 개념과 특징이 무엇인지 알아보기로 했다. 인코딩(Encoding)이란? 파일에 저장된 정보의 형태를 다른 것으로 변경하는 것을 말한다. 부호화(符號化)라고도 한다 정보의 형태를 다른 것으로 변경하는 것을 인코딩이라고 하는데, 우리가 사용하는 정보를 나타내는 문자들의 형태 또한 나타내는 방식이 있다. 그 형태에 맞는 인코딩 설정으로 우리가 보고자 하는 형태를 사용하면 된다. 그렇다면 그런 형태는 무엇이.. 2022. 9. 8.
[Java Error] A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be availavle in order to run Eclipse. No Java Virtual machine was found after searching the following locations. 이클립스를 실행할때면 가끔 볼 수 있는 에러 알림창이다. 난 분명 JDK도 설치도하고 설정까지 다 했는데 이클립스를 실행하면 저런 에러가 발생하는 경우가 있다. 이런 에러 알림창이 뜰때마다 여간 당황스러울수가 없지만, 해당 에러창은 크게 문제가 되거나 복잡한 에러가 아니기때문에 간단하게 해결할 수 있다. 해결방법 JDK 환경변수 설치 확인 또는 JDK 환경변수 재설정 또는 설정 시 절대경로로 설정하기 JDK 환경변수 설치 확인 1. JDK가 정상적으로 설치되고 설정되었는지 확인하기 위해 명령 프롬프트 창을 열고 "java -version"을 확인한다. 자바 버전 명령어 : java -version or javac -version 위와 같이 java version "1.8.0_271" 이라고 출력되면 정상.. 2022. 9. 7.
[Java Error] java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column 게시판에 글 등록을 하던 중, 위와 같은 에러가 발생했다. 내용으로 작성하고 있었던 텍스트 길이가 데이터베이스 테이블의 내용 컬럼의 공간보다 훨씬 컸나보다. Long으로 설정된 컬럼은 Long에 맞춰 내용을 작성하여 저장해야하는데, 그렇지 못한 것이다. 내용에 이미지를 한개 첨부했는데 해당 이미지가 base64로 인코딩되어 들어가는 바람에 이미지가 데이터로 변환되서 내용에 첨부되었다. 그래서 엄청난 길이의 텍스트 데이터로 내용에 첨부되었다. 실제 html형태로 보면 이미지지만 소스코드 보기로 확인해보면 엄청난 길이를 가진 텍스트로 보여진다. 처리결과 데이터베이스 테이블에서 설정한 컬럼의 최대 공간안에서 글을 작성하거나, 데이터베이스 테이블의 해당 컬럼 크기를 CLOB으로 변경하여 더 많은 데이터를 담을 .. 2022. 8. 9.
[Java Error] java.lang.ArithmeticException: / by zero 테스트용도로 게시판 리스트를 구현하려고 하던중에, 페이징 처리를 하여 서버로부터 데이터를 구현해서 클라이언트로 보내기위해 해당 페이지를 요청하는데 / by zero 에러가 뿜어져나왔다. 무언가를 0으로 나누려고해서 발생하는 에러인데, 어딘가에서 0으로 나누려고 시도했던것 같다. 0으로 나눠질것 같은 부분 부분을 찾아보았는데 페이지를 구성하기위해서 PagingVO를 꾸며주는 setter, getter부의 기본 초기값을 설정하지 않아, setter에서 값이 없으므로 정의 초기값인 0이 들어가 0으로 나눠져 위와 같은 에러가 발생했다. 처리결과 어떠한 값을 0으로 나누려고 해서 발생, 0으로 나누지 못하도록 값의 정의 및 초기화를 진행한다. PagingVO 클래스에 정의된 변수 들 중, screenSize와 .. 2022. 8. 8.
[Java Error] Cause: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory, ORA-00923: FROM keyword not found where expected. 테스트 프로젝트로 사용하던 서비스를 수정하기 위해서 오랜만에 프로젝트를 열고 Mysql 데이터베이스로 사용하던 설정들을 Oracle 데이터베이스 설정으로 변경 후, 서버를 가동하고 로그인을 진행했다. 그런데, ORA-00923: From keyword not found where expected. 라는 에러가 발생했다. From절과 관련이 있는거 같아 DB 쿼리가 있는 Mapper쪽으로 가 로그인을 관장하는 Mapper xml을 들여다보았다. 쿼리에 Mysql에서 사용중이던 구문이 있어 수정하고, 오타 또한 확인했지만 오타는 없었다. 다시 서버를 재가동하고 로그인을 진행했다. 하지만 같은 에러가 뿜어져나왔다. 설정이 잘못된건가? 어디서부터 잘못된건지 하나하나씩 찾아나갔다. 한참을 헤매고 시도하다가 마지막.. 2022. 8. 4.
[Java Error] Invalid character found in method name. 서비스를 띄우려고 톰캣을 실행하고 서비스 URL을 인터넷 브라우저에서 실행하였는데 홈페이지가 열리지 않고 위와 같은 에러가 발생하였다. 기존에 개발서버에서도 문제 없이 열렸던 서비스가 열리지 않으니 당황스러웠다. 톰캣 docbase가 잘못되었나? 소스상에 누락된 부분이 있나? 404에러와 같은 경로를 정확하게 작성하지 않은건가? 등등 여러가지 확인점을 가지고 확인을 해보았다. 하지만 그런 모든 부분이 아니고 내가 설정한 js에서 http로 요청하면 https로 바로 연결되게 한 js가 문제였다. 개발서버에는 신뢰할수 있는 SSL 보안인증서가 등록되어 있거나 OpenSSL과 같은 보안 정책이 등록되어 있지 않은 상태였기에 위와 같은 에러가 발생한 것이다. 그래서 해당 js를 주석처리하고 개발서버를 실행하였.. 2022. 6. 6.
[Java Error] java.lang.IllegalStateException: Optional int parameter 'bo_no' is present but cannot be translated into a null value due to being declared as a primitive type. 에러 해결방법 Rest Api 통신중, 서버로 int bo_no 파라미터를 받아 처리하는 함수가 있는데 요청도 안오고 그냥 500에러만 출력하는 에러가 발생했다. 에러로그는 아래와 같다. java.lang.IllegalStateException: Optional int parameter 'bo_no' is present but cannot be translated into a null value due to being declared as a primitive type. [ 구글 번역 ] 구글 번역을 해보니, bo_no가 파라미터로 속성으로 넘어오지만, 값이 없어 null처리를 하려고 했으나 int라 null 변환이 안된다는 에러다. 선택적 int 매개변수 'bo_no'가 있지만 기본 유형으로 선언되었기 때문에 nul.. 2021. 12. 29.
[JAVA] 변수와 상수 어떤 프로그래밍 언어라 할지라도 변수와 상수의 개념은 동일 하거나 비슷 할 것이다. 변수와 상수의 대한 개념은 프로그래밍 언어를 배우기 위해 무조건 기본으로 또 기초로 알고 있어야하는 개념일 것이다. 변수란? "변수(Variable)란? 단, 하나의 값을 저장할 수 있는 메모리 공간을 의미한다." 프로그래밍에서는 변수(variable)란, 값을 저장할 수 있는 메모리상의 공간을 의미한다. 이 공간에 저장된 값은 변경될 수 있기 때문에 '변수'라는 수학용어와 비슷한 면이 있어서 붙여진 이름이다. 하나의 변수에 단 하나의 값만 저장할 수 있으므로, 새로운 값을 저장하면 기존의 값은 사라진다. 프로그래밍의 첫 시작이 변수 이므로 간단하지만 정확한 개념과 사용법을 알고 가야한다. 변수의 선언과 초기화 변수(va.. 2020. 4. 25.
[JAVA] 자바에러와 해결방법 자바로 프로그래밍을 진행하다보면 많은 에러들을 만난다. 에러들을 만났을 때 해결방법을 알거나 어디 부분에서 에러가 났는지 알고 있어 바로 해결하기도 하지만 어떤 에러인지 어디서 난 에러인지 도통 몰라서 찾고 또 찾다가 결국 검색하고 다시 검색해서 해결할때가 여럿 있다. 대부분의 에러는 작은 실수에서 비롯된 것들이며, 곧 익숙해져서 쉽게 대응할 수 있게 되지만 처음 배울 때는 작은 실수 하나 때문에 많은 시간을 허비하곤 한다. 1. 세미콜론을 누락했을때 발생하는 에러 ';' expected 세미콜론 ';'이 코드 마지막 부분마다 붙여주었어야 하는데, 그렇지 못했을때 발생한다. 자바의 모든 문장의 끝에는 세미콜론(';')을 붙여주어야 하는데 가끔 이를 잊고 실수하기 쉽다. 2. main메서드가 잘못되었을때 .. 2020. 4. 22.
[JAVA] 자바(JAVA)란? JAVA 언어를 처음 접할 때가 2009년이었다. 그때 당시엔 JAVA가 무엇인지 어떻게 사용되는건지도 모른채 그냥 사용했던것 같다. 그러다 문득 내가 JAVA언어를 사용해 웹 프로그램도 만들고 봇도 만들고 그외 다른것들도 만들지만 누군가가 "JAVA란 무엇인가요?" 라는 질문을 했을때 막힘없이 JAVA에 대해서 설명을 할 수 있을까? 하는 의문이 들었고 내 자신에게 JAVA에 대해서 설명해보았다. 속 시원한 결과를 내지 못하는 나를 발견할 수 있었다. 그래서 JAVA란 무엇이고 JAVA의 특징에 대해서 알아보고자 한다. 정의 자바란 무엇인가? 자바는 썬 마이크로시스템즈(Sun Microsystems, Inc)에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다. 자바의 가장 중.. 2020. 4. 17.
[SPRING] 네이버 스마트에디터2를 이용해서 이미지 업로드하기 텍스트 편집도구들 중 CKEditor를 주로 사용하는 편이다. 예전부터 꾸준히 CKEditor를 이용해서 많은 개발도 하고 익숙하게 사용해서 그런지 CKEditor를 적용하고 사용하는게 제일 편했다. 그러다 문득 네이버 스마트에디터2를 적용해서 사용해보자는 마음이 생겨 적용해보았다. 네이버 스마트에디터2 적용하기 SmartEditor2에서 이전 버전에 비해 개선된 기능과 추가된 기능은 다음과 같다. 개선된 기능 UI 디자인 개선 글꼴, 글자 크기, 줄 간격 등을 설정하는 UI를 기존의 드롭다운 메뉴에서 레이어로 변경하여 디자인이 개선되었다. 글자 색과 글자 배경 색 기존의 기본 색상표 이외에 다양한 색상을 선택할 수 있는 컬러 팔레트를 제공한다. 줄 간격 줄 간격 값을 직접 입력할 수 있다. 인용구 인용.. 2020. 4. 7.
[Mac] MacOS Java JDK 설치 및 환경변수 설정하기 MacOS에서 Java JDK를 설치하려고 한다. openssl 설치를 진행하면서 특정 명령어를 사용하기 위해서 필요한게 Java JDK이기도 하고, MacOS에서 이클립스를 설치해 웹 개발도 같이 진행해야하기 때문에 JDK 설치는 꼭 필수이다. 그래서 MacOS에서 Java JDK를 설치하고 환경변수를 설정하는 과정을 작성해보려한다. Java JDK 설치 1. Oracle 공식 홈페이지에 접속한다. Oracle 공식 홈페이지 접속 Oracle 공식 홈페이지로 접속해서 상단 메뉴를 펼치면 "Product Help" 카테고리에 "Download"항목을 클릭한다. 2. Java JDK 다운로드 항목을 찾아 이동한다. Oracle 공식 홈페이지 Customer Downloads Java 항목을 선택하면 스크롤.. 2020. 3. 27.