본문 바로가기

개발/JAVA, Spring24

[Java/Spring] 클래스(Class), 객체(Object), 인스턴스(Instance)란? 자바에서 말하는 클래스(class)와 객체(object), 인스턴스(Instacne)란 무엇인가? 다른 블로그에서 우연히 클래스, 객체, 인스턴스에 대해 깔끔하게 정리되어 있는 포스팅을 보고 옮겨 봅니다. (출처 : https://cerulean85.tistory.com/149) "'객체'란 소프트웨어 세계에 구현 할 대상이고, 이를 구현하기 위한 설계도가 '클래스' 이며, 이 설계도에 따라 소프트웨어 세계에 구현된 실체가 '인스턴스' 이다." 객체는 프로그램으로 구현 할 실세계의 어떠한 대상을 가리킨다. 이러한 객체를 프로그램으로 구현하려면 세밀히 분석하고 관찰해야 하는데, 이러한 결과를 정리해 놓은 명세서(설계도)가 클래스이다. 이 명세서(설계도)를 바탕으로 프로그램으로 구현해 놓은 것이 인스턴스인 .. 2019. 4. 4.
[java/Spring] 이클립스/인텔리제이 자주 쓰는 단축키 개인적으로는 인텔리제이를 사용하고 있지만 많은 프로젝트에서 이클립스를 써야 하는 경우가 대부분 입니다. 두 프로그램의 단축키가 비슷하면서도 서로 다른 부분이 있어서 가장 자주쓰는 단축키만 정리해 보았습니다. 더 자세한 내용은 인텔리제이 키맵 파일을 첨부해 두었습니다. 일반 편집모드 기능 OS 구분 이클립스 인텔리제이 import 추가 윈도우 shift + ctrl + o MAC shift + command + o alt + 엔터 import 정리 윈도우 shift + ctrl + o (import 동일) MAC shift + command + o ctrl + alt + o 코드 자동완성 윈도우 ctrl + 스페이스 MAC ctrl + 스페이스 (한글 맥인 경우는 ctrl + 스페이스가 한/영 전환이다. .. 2019. 4. 1.
[JAVA/Spring] 널(null) 값 체크 함수 만들기 이 포스팅의 샘플 게시판 개발 환경은 MAC OS, STS, OpenJDK11 입니다. 널(null) 값 체크 함수 만들기 공통함수모음 클래스 만들기실무에서는 공통적으로 자주사용하는 함수를 static 메소드로 정의하여 하나의 클래스에 모아두곤 한다. 이 클래스들의 명칭은 보통 Commons 나 CommonUtils, Utils 등으로 하는것 같다. 이런 공통함수의 대표적인 것에 공백(빈값) 또는 널(null) 값 체크 함수가 대표적이다. 데이터의 무결성 체크는 중요하기 때문에 여러 곳에서 자주 쓰인다. 이번 포스팅은 널값 체크를 하는 공통함수를 만들어 보는 것으로 어떻게 공통함수를 사용하는지 정리해 보려한다. common 이라는 패키지를 만들고 하위에 CommonUtils 라는 클래스를 만들어 어래와 .. 2019. 3. 19.
[JAVA/Spring] IntelliJ 를 Data Grip 처럼 사용하기 이 포스팅의 샘플 게시판 개발 환경은 MAC OS, STS, OpenJDK11 입니다. 게시물 검색 기능에 대한 포스팅은 아래와 같은 순서로 진행합니다.리스트 화면(index) 수정조건에 맞는 게시판 목록 조회 SQL 및 전체 게시글 수 SQL 수정총 개시글 개수 확인을 위한 BoardDAO, BoardService의 수정(메소드 추가)BoardController의 수정게시글을 읽어 오기 위한 BoardDAO, BoardService의 수정(getBoardList 메소드 수정)게시판 목록 화면(index) 수정 IntelliJ 를 Data Grip 처럼 사용하기 JetBrains 사의 제품중에 DataGrip 이라는 제품이 있습니다.유료이지만 다른 데이터베이스 툴 보다는 저렴한 편이라고 생각됩니다.Jet.. 2019. 3. 10.
[JAVA/Spring] SQL 로그 출력하기 이 포스팅의 샘플 게시판 개발 환경은 MAC OS, STS, OpenJDK11 입니다. SQL 로그 출력하기 의존성 추가 pom.xml 을 열어 아래의 내용을 추가합니다. org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4 1.16 데이터베이스 접속 설정 수정데이터베이스 접속 설정이 들어 있는 설정파일 (root-context.xml 또는 dataSource-context.xml)을 수정해야 합니다. 붉은 색 부분이 수정된 부분입니다. 정확히는 value의 일부분이 수정되었습니다. 수정된 내용은 아래와 같습니다. com.mysql.cj.jdbc.Driver -> net.sf.log4jdbc.sql.jdbcapi.DriverSpyjdbc:mysql://127.0.0.1:33.. 2019. 2. 19.
[JAVA/Spring] MAC OS, STS 에서 lombok 설정하기 스프링으로 웹 개발을 하다보면 VO나 DTO에서 getter/setter 등과 같은의미 없는 작업에 많은 시간을 빼앗기는 경우가 있습니다.이번 포스팅에서는 이 작업을 도와줄 lombok 사용법에 대해서 정리해 보려고 합니다. 1. lombok 다운로드 우선 아래의 위치에서 lombok 파일을 다운로드 받아야 합니다.파일은 jar 형식으로 묶여 있습니다. lombok 다운로드 : https://projectlombok.org/download 다운로드 페이지 화면 캡쳐 2. lombok 설치 lombok는 jar 파일이지만 일반적인 자바 라이브러리 파일과는 다르게 '설치' 라는 과정을 거쳐야 합니다.다운로드 받은 폴더로 이동하여 아래의 명령어로 lombok를 설치해 줍니다. java -jar lombok.j.. 2018. 11. 27.
[JAVA/Spring] 체크 박스의 값을 목록(리스트)에 같이 보여 주기 이번 포스팅은 체크박스로 체크한 데이터 들을 게시판 목록(리스트)에 하나하나 뿌려주기 위해서 고민했던 내용에 대해 적어 보려고 합니다.카드형으로 리스트를 출력해 줘야 하는데카드 안에 각 게시물의 체크박스 데이터를 아이콘으로 같이 출력해 주는 내용입니다. 우선 내용을 정리해 보면게시판 목록(리스트)에 체크박스에 선택된 값들을 출력을 해야한다. 이때 그냥 체크값을 출력하면 사용자들은 모르기 때문에 그 값에 해당하는 적당한 값을 표시해 줘야 한다.문제는체크 박스로 체크한 데이터들은 각각의 컬럼에 저장되는 것이 아니라 하나의 컬럼에 쉼표(,)를 구분자로 해서 저장된다.화면에 뿌려 주려면 각 값들을 모두 분리해서 각각 변수에 담아야 한다. 체크값은 각 글마다 몇개가 선택되어 있는지 알 수 없으므로 일반 변수에 담.. 2018. 11. 10.
[Java/Spring] 설정파일 관리 이번 포스팅에서는 스프링 프로젝트의 설정파일을 용도에 맞게 몇 가지로 구분하는 작업을 하려고 합니다. 우선 STS Meven 프로젝트로 스프링 MVC 프로젝트를 생성하게 되면기본적으로 아래 그림과 같은 디렉토리 구조를 가지게 됩니다.(전 프로젝트 이름을 'sample02' 라고 하였습니다.) 우선 알고 있어야 할 부분이 있는데대체로 서버 운영에 필요한 스프링 관련 설정(DB, 보안등)은 root-context.xml 에서 처리하고화면과 관련된 설정은 servlet-context.xml 에서 설정을 하게 됩니다. 서버를 운영할때는 필요한 여러 가지 요소들 중에대표적인 것들이 데이터베이터 접속, 보안 설정 등입니다. 프로젝트의 규모가 작다면 이것들을 모두 root-context.xml에 담아 관리할 수 있겠.. 2018. 10. 29.
[JAVA/Spring] maven 라이브러리 다운로드 경로 수정 방법 이번 포스팅에서는 maven을 사용할 경우 다운로드 받아지는 라이브러리의 경로를 설정하는 방법에 대해 적어보겠습니다. 프로젝트가 매번 같은 버전의 라이버러리나 같은 종류의 라이브러리를 사용하지 않아서각 프로젝트별로 사용하는 라이브러리를 관리해 줘야 할 필요가 있습니다. 이때 maven의 기본 다운로드 경로는 '사용자 계정 / .m2' 디렉토리 입니다. 따라서 프로젝트와 같이 묶어서 관리를 하려면 이 설정을 변경해야 할 필요가 있습니다. 1. 우선 앞으로 사용할 라이브러리의 경로를 생성합니다. 프로젝트 폴더 안에 라이브러리 폴더를 별도로 만들어 두면 관리하기 편합니다. 2. 생성한 디렉토리 아래 settings.xml 이라는 파일을 만들고 아래의 내용을 복사해 넣습니다. 이때 다운로드 받을 경로를 이 파일.. 2018. 10. 17.
[JAVA/Spring] The import javax.annotation.Resource cannot be resolved Spring로 개발을 하다 보면 @Resource 를 많이 사용하게 됩니다.이번 포스팅에서는 신규 프로젝트를 생성하여 개발 할 때,많이 접하게 되는 'The import javax.annotation.Resource cannot be resolved' 에러 처리방법에 대해정리해 보려고 합니다. 이 에러를 해결하는 방법은 크게 2가지 방법이 있습니다. 모두 pom.xml 을 수정해서 해결 할 수 있는데 한 가지는 dependency 를 추가해 주는 것이고다른 한 가지는 plugin 을 추가해 주는 방식입니다. 우선 첫 번째 방법은 pom.xml 에 아래의 구문을 추가해 줍니다. javax.annotationjavax.annotation-api1.3.1 위 구문을 추가한 후, pom.xml 파일을 저장한 후.. 2018. 10. 3.
[JAVA/Spring] 외부 js 및 css 파일 사용방법 웹 프로젝트에서 화면을 만들다 보면 외부의 자원(js, css 등)을 가져다 쓰게 되는 경우가 많이 발생하게 되죠.간단한 화면에서 조차 외부 파일들을 사용하는 경우가 상당히 많습니다. 이번에는 그런 파일들을 삽입하는 가장 기본적인(?) 방법에 대해 정리해 봅니다.(프로젝트 별로 외부 파일을 저장하는 위치나 설정하는 방법은 조금 상이 할 수 있습니다.) 우선 설정이 제대로 되어 있지 않을때 STS 콘솔창에서 확인 할 수 있는 에러를 확인해 봅시다. WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/js/jquery-3.3.1.min.js] in DispatcherServlet wi.. 2018. 10. 2.
[JAVA/Spring] @Value annotation 이번 포스팅 에서는 @Value 어노테이션을 정리해 봅니다. 프로젝트가 커지다 보면 공통으로 사용하는 값을 별도로 관리를 하게 되는데이런 값들을 쉽게 가져다 쓰기 위해 사용합니다.쉽게 생각해서, 공통 값들을 정의해 놓은 파일에 접근하여원하는 데이터를 읽어와 사용한다고 생각하면 됩니다. 이렇게 관리를 하는 이유는 관리를 쉽게 하기 위해서 입니다. 사용법은 간단합니다. 우선 아래의 코드를 봅시다. class ValueSample() { @Value("#{WORK.LOCATION}")String JOB; public ValueSample() {// TODO}} 클래스의 프로퍼티 설정 부분에 @Value 어노테이션을 사용한 것을 볼 수 있습니다.위 코드의 의미는프로퍼티 파일에서 WORK의 LOCATION 값을 .. 2018. 7. 29.