전체 글 40

[git/이클립스] github 저장소에 프로젝트 올리기

Git을 사용하는 이유를 간단하게 설명하자면 실무에서 협업의 이유도 있고 갑작스러운 컴퓨터 오류로 프로젝트가 삭제되었을 때를 대비한 백업의 용도로도 사용할 수 있다. ​ 이클립스를 사용하면 명령어를 사용하지 않고 편하게 프로젝트를 올릴 수 있다. 1. 먼저 깃 저장소에 올릴 프로젝트가 있어야 한다. 대충 깃 허브에 올리기 위해 간단한 자바 프로젝트를 만들어봤다. 프로젝트는 그냥 자신이 깃에 올리고 싶은 프로젝트를 사용하면 된다. 2. 자신의 깃허브에 저장소를 만든다. 만약 아이디가 없다면 빨리 만들어준다... 아이디 만드는 건 어렵지 않게 때문에 패스~~ 깃허브에서 로그인을 하면 나오는 화면 왼쪽 상단에 New를 클릭해준다. Create a new repository(새 저장소 생성) 페이지가 나오면 R..

Git 2021.05.11

[Spring boot] 스프링 부트 기본 설정 및 프로젝트 구성 / template 프로젝트 만들기

​스프링 부트가 아무리 모든 설정을 다 해준다 해도 기본 경로설정이나 환경 변수 설정, 그리고 프로젝트 구성 같은 건 사용자가 직접 해야 한다. 공부를 하면서도 매번 까먹고 인터넷을 찾아보는 나 자신을 보며 반성의 자세를 가지고 정리를 한번 해봤다. IDE 툴 : STS 3.9.9버전 OS : Window 10 1. 프로젝트 생성 [File] → [New] → [Other...] 또는 [Package Explorer] → [New] → [Other...]에 들어간 후 Spring을 검색해서 Spring Starter Project를 클릭한 다음 Next~~ ​ 그다음 프로젝트 정보를 입력한다. Name : 프로젝트 이름 Type : 프로젝트 타입 Packaging : 나중에 리눅스 배포할 때 War로 배..

Backend/Spring 2021.05.06

[JAVA] Null/NaN/공백/문자열 처리

다른 외부업체와 프로젝트를 하다 보면 외부업체로부터 받아오는 데이터가 null값인지 아닌지 알 수 없을 때가 있다. 물론 조율을 통해 해당 데이터는 값이 필수로 들어있다거나 null값이면 0이나 다른 문자로 대체해서 받아 올 수도 있지만 예상치 못하는 상황이 발생해서 에러가 발생할 수도 있기 때문에 항상 개발자는 null처리를 생각하고 개발을 해야 한다. ​ null은 공백도 아니고 0도 아닌 정의되지 않은 값이라고 할 수 있다. ​ 1. null 및 공백 처리 먼저 매개변수로 들어오는 String 데이터가 null인지 비어있는 변수인지를 확인할 때에는 org.apache.commons.lang3.StringUtils 클래스를 사용한다. ​ StringUtils에는 대부분의 문자열 처리를 수행할 수 있는..

Backend/JAVA 2021.05.06

[Maven] *.jar에 기본 Manifest 속성이 없습니다. 에러

maven 프로젝트 생성 후 서버에서 실행시킬려고 jar파일을 만들고 실행한 결과 ​ '파일명.jar에 기본 Manifest 속성이 없습니다.'이런 에러가 나왔다... ​ 구글링결과 무슨 설정을 안한 것 같은데...설정하는 방법 말고 다른 방법으로 해결했다!! ​ 먼저 프로젝트를 한번 실행시킨 후 종료를 하고 ​ project -> export -> Runnable Jar file로 jar파일을 만들면 문제없이 실행된다.

Error resolution 2021.05.06

[linux 에러] 어플리케이션 too many open files 에러 해결

리눅스에서 어플리케이션(was서버 등등)을 잘 돌리다가 성능테스트에서 too many open files라는 에러가 나왔다.... ​ 구글링을 해본 결과 os에 요청하는 프로세스수가 설정해 놓은 limit을 넘어서 생긴 에러라한다. ​ ulimt명이령어를 통해 nofile limit을 확인한다 ​ $ulimit -Hn $ulimit -Sn ​ 기본값은 4096, 1024다 ​ limit을 막 올려버리면 문제가 생길 수 있기 때문에 아래와같은 명령어로 system 전체 limit을 확인해본다 ​ limit을 설정할때는 system 전체 limit보다 적게 설정해야한다 ​ $ cat /proc/sys/fs/file-max ​ 전체 limit을 확인했으면 root 계정으로 /etc/security/limits..

Error resolution 2021.05.06

JAVA / JVM / JDK / JRE에 대해서

JDK, JRE, JVM 구조 JVM (Java Virtual Machine) 자바 가상 머신으로 자바 바이트코드(.class 파일)를 os에 특화된 코드로 변환(인터프리터와 JIT컴파일러)하여 실행한다. 바이트 코드를 실행하는 표준(JVM 자체는 표준)이자 구현체다.(특정 밴더가 구현한 JVM) JVM 밴더: 오라클, 아마존, Azul... etc.. 어느 환경에서든 자바 코드를 실행 할 수 있다. 메모리 관리, Garbage Collection(GC)등 많은 고급 기술을 사용하여 Java 애플리케이션에 최적의 성능을 제공 자바프로그램 실행과정 프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당받음, JVM은 이 할당받은 메모리를 용도에 따라 여러 영역으로 나누어 관리한다...

Backend/JAVA 2021.05.04

Spring boot + tibero + mybatis 연동하기

​ 이거 연결하는데 이것저것 오류가 많이 발생했다.... ​ 연결하기 전 해야 할 것!!! 1. tibero를 설치한다. tibero는 tmax사이트에서 받을 수 있다. [설치 링크] 다운로드할 때 회원가입을 해야 하고 데모 라이선스를 신청하여 사용할 수 있다. Spring Boot 설정 1. application.properties에 db정보 입력 spring.datasource.url=jdbc:tibero:thin:@127.0.0.1:8629:tibero spring.datasource.driver-class-name=com.tmax.tibero.jdbc.TbDriver spring.datasource.username=test spring.datasource.password=test00 usernam..

Backend/Spring 2021.04.12

[redis-server] (error) NOAUTH Authentication required 에러

redis 서버를 사용할 일이 있어서 설치를 하고 이것저것 만져보는 중 ​ redis-cli을 실행시키면 어떤 것을 입력하는 창이 나온다고 해서 실행해봤다. (bin 디렉터리에 있음) ​ 이렇게 나오면 redis 서버가 성공적으로 실행되었다는 것이다. ​ ping pong테스트라고 ping을 입력하면 pong이 나온다길래 해봤더니 ​ 에러가.... 구글링을 해본 결과 password가 설정되어있어서 그렇다고 한다. ​ redis.conf 파일에서 requirepass를 찾으면 그 옆에 패스워드가 있다 ​ vi에서 찾기는 '/'를 입력한 다음 찾을 단어를 넣으면 된다... 혹시 모르사람들을 위해!! ​ 찾은 비밀번호를 기억한 다음 ​ AUTH 비밀번호를 입력하면 성공!~~ ​

Error resolution 2021.04.12

[centos 7] php로 외부서버 mysql 연동 오류 및 해결

학부 서버DB를 이용한 안드로이드 앱을 만들기 위해 먼저 외부 mysql에 대한 권한 설정을 해줘야한다 먼저 학교측에 부탁해서 3306과 80포트를 열어 놓은 후 학부 서버컴에 접속해서 아래 명령어를 입력했다. SQL> GRANT ALL PRIVILEGES ON DB이름.* TO root@'ip주소' IDENTIFIED BY '비밀번호' 그 후 내가 만든 웹서버에서접속한 결과 # mysql -h 'ip주소' -u root -p Enter password: ERROR 2027 (HY000): Malformed packet Malformed packet..... 많은 구글링과 지인에게 물어본 결과 mysql버전이 안맞아서 그런거같다는 의견이 나왔다 확인해보니 학부 mysql이 내가 만든 서버의 mysql보다..

Error resolution 2021.04.07

[SQL] 게시판 다음글 / 이전글 SQL문

게시판을 만들 때 보면 다음 글과 이전 글에 갈 수 있게 만들어야 되는데 데이터베이스에서 게시판 데이터를 꺼내올 때 게시판 테이블에 하나의 게시판 데이터가 있고 게시글이 차례대로 있으면 아래와 같이 SELECT 문을 써주면 된다. //- 다음 글 - SELECT * FROM '게시판 테이블' WHERE '게시글 번호' = '현재 게시글 번호 + 1'; //- 이전 글 - SELECT * FROM '게시판 테이블' WHERE '게시글 번호' = '현재 게시글 번호 - 1'; 하지만 게시판 테이블 안에 여러 게시판의 데이터가 관리되면 게시판 번호가 똑같지만 글번호 차이가 많이 나게 된다. 그리고 게시판이라는 것이 삭제가 돼서 번호와 번호 사이의 간격이 일정하지 않을 수도 있다. 이럴 때는 아래 SELECT ..