전체 글92 추상 클래스 개요 추상의 사전적 의미는 사물이나 어떤 표상들의 성질, 본질, 공통성등을 추출하여 파악하는 것들을 의미한다. 자바 프로그램에서는 각 클래스들 간의 공통점을 추출하여 하나의 클래스를 만든 것이라 볼 수 있다. 또한 추상 클래스를 만드는 목적 중 하나는 중복되는 코드들을 최소화하기 위한 목적도 있다. 일반 클래스와 다른 점은 일반 메서드와 추상 메서드가 모두 존재할 수 있다는 것이다. 추상 클래스를 정리하면 아래와 같다. 추상 클래스는 단독으로 인스턴스를 만들 수 없다. 다른 클래스에 상속되어 사용된다. 추상 메서드는 자손 클래스에서 반드시 재정의하여야 한다. 추상 클래스 작성하기 abstract class AbsClass{ public void prn(){ ... } // 일반 메소드 public voi.. 2024. 4. 7. 인터페이스 개요 자바 클래스들이 필수로 사용되어야 하는 기능들을 추상 메서드로 정의하는 것으로 일종의 클래스들의 가이드라인 역할을 하는 구조라 볼 수 있다. 인터페이스 안에는 추상 메서드와 상수만으로 이루어져 있다. 구현 코드가 없기 때문에 인스턴스를 만들 수 없고 자손 클래스가 상속받아 추상 메서드를 재정의하여 사용하게 된다. 인터페이스의 특징을 정리하면 아래와 같다. 다중 상속 가능 : class 형식으로 만드러 진 클래스들은 단일 상속만을 지원하는데 반해 인터페이스로 만들어진 구조는 다중 상속을 지원한다. 생성자 불가 : 단독으로 인스턴스를 생성할 수 없기 때문에 생성자 사용은 불가하다. 메서드 오버라이딩 : 인터페이시를 상속받은 클래스에서는 반드시 추상 메서드들을 재정의(Overriding) 해야 한다. 인.. 2024. 4. 7. vscode에서 한글/영어 인터페이스 설정하기 안녕하세요. IT여행자입니다. vscode 에디터에서 전체 인터페이스 구성을 영문 또는 한글로 변경하는 방법을 간단히 기술하겠습니다. 먼저 View>Command Palette...메뉴를 선택합니다. 단축키로는 Ctrl+Shift+p입니다. 열린 Command Palette 창에서 "Configure Display Lanugage"를 찾아 선택합니다. 아래와 같은 항목들이 나오면 필요한 언어를 선택하고 vscode를 다시 시작하면 됩니다. 물론 해당 언어팩이 설치되어 있지 않다면 자동으로 언어팩을 설치해 줍니다. 2024. 2. 19. thymeleaf 개요및 설정 thymeleaf는 view template 엔진으로 서버에서 클라이언트에게 응답할 브라우저 화면을 만들어 주는 역할을 한다. thymeleaf는 Natural Template을 기반으로 기존 html 코드와 그 구조를 변경하지 않고 덧붙여 사용하는 방식이라 볼 수 있다. 특징html 문서 내부에서 사용할 수 있으며 spring boot와 통합하는 작업이 매우 간단함. 관련 사이트 : https://www.thymeleaf.org/index.html ThymeleafIntegrations galore Eclipse, IntelliJ IDEA, Spring, Play, even the up-and-coming Model-View-Controller API for Java EE 8. Write Thymel.. 2023. 7. 3. eclipse냐 vscode 이냐? 아니면 둘다? 안녕하세요. IT여행자입니다. 저는 개인적으로 eclipse를 메인 개발툴로 사용하는 개발자 중 한 사람입니다. 그런데 eclipse 툴을 사용하여 FRONT-END 부분인 HTML, CSS, JS를 개발할 때는 불편한 점이 한두 가지가 아닙니다. 그중 가장 불편한 점은 코드 자동 완성 기능이 eclipse가 매우 불편하다는 점에 있습니단. 플러그인들을 설치하면 그나마 참을 수 있는 수준이 되지만 적당한 플러그인들을 찾는 것도 귀찮은 일이 됩니다. 그런데 vscode 편집기를 사용하여 BACK-END 부분중 jsp 부분을 개발하려다 보면 생각보다 설정 작업이나 귀찮은 점이 한두 가지가 아니게 되더군요. 물론 최근엔 jsp를 사용하여 개발하는 요소들이 많이 줄었다고는 하지만 이미 개발되어 운영되고 있는 프.. 2023. 7. 1. VSC에서 Spring 개발 환경 구축 VSC에서 Spring 개발을 하기 위한 환경 구축은 아래와 같은 절차와 방법으로 진행할 수 있습니다. 물론 JDK는 이미 설치되어 있고 JAVA_HOME이나 PATH와 같은 내용은 이미 윈도 환경 변수에 등록되어 있어야 설치 작업이 더 원활할 수 있습니다. 개발 환경 구축 절차는 아래와 같습니다. Spring Boot Extension Pack 프로젝트 생성 및 테스트 1. Spring Boot Extension Pack 설치 VSC에서 Extension 아이콘을 선택하여 Spring Boot extension Pack 을 검색하여 설치합니다. 나머지 필요한 라이브러리들은 프로젝트를 생성한 뒤 설치해도 상관없습니다. 2. 프로젝트 생성 프로젝트 생성 과정은 절차는 아래와 같은 단계로 진행됩니다. 본 지.. 2023. 5. 27. vsc에서 live server 설치 안녕하세요 IT여행자입니다. 이번 수첩은 visual studio code(VSC)에서 웹 페이지를 실시간으로 볼 수 있는 live server extention을 설치하고 약간의 설정을 할 수 있는 내용입니다. live server를 시작하면 기본적으로 ip 주소는 127.0.0.1로 표시되고, 포트번호는 live server를 구동할 때마다 번호가 달라집니다. 이러한 상태에서 ip주소를 현재 컴퓨터의 ip 로 사용한다던가, 포트번호를 고정시키는 설정 방법을 담았습니다. 간략히 그림으로 보여드리면 아래와 같습니다. 1. IP 주소를 127.0.0.1에서 localhost로 변경하기 2. 포트 번호 고정하기 Edit in settings.json 링크를 클릭하여 포트번호를 임의의 값으로 고정시킬 수 있습.. 2023. 3. 24. vsc 설치및 open in browser extention 설치(영상) 안녕하세요 IT여행자입니다. 이번 수첩은 개발 입문자들을 위한 내용입니다. 프로그램을 개발할 때 사용되는 각종 개발 툴이 있습니다. 저마다 장단점들을 갖고 있죠. 그중에 가장 인기 있는 개발 툴 중 vsc를 설치하고 작성된 html 문서를 바로 브라우저에서 확인할 수 있는 open in browser extention을 설치해 보도록 하겠습니다. 이런 부분은 글로 표현하기 쉽지도 않고 장황한 설명들을 나열해야 하기로 영상을 찍어 공유합니다. 이점 양지해 주시기 바라며, 아래 영상을 확인해 주시기 바랍니다. https://youtu.be/O-sRGmRsA3Y 2023. 3. 22. swing으로 만들어본 멀티 메모장 #2/2 안녕하세요 IT여행자입니다. 이번 여행지는 swing으로 만들어본 멀티 메모장 두 번째 부분입니다. 첫 번째 영상에서도 언급한 것처럼 자바 GUI를 사용한 프로그램이라는 인터페이스가 많이 사용되는 인터페이스가 아니지만, 진입 장벽이 높지 않으며, 웹 인터페이스처럼 다양한 언어를 사용하지 않아도 만들어 볼 수 있는 프로그램이기에 두 편에 걸쳐 만들어 봤습니다. 개발에 필요한 보다 자세한 내용들은 영상을 참조하시면서 하나씩 개발해 보시는 걸 추천드립니다. 1편에서는 레이아웃에 관한 내용을 다루었고, 2편에서는 BACK-END 부분을 다루었습니다. 주요 내용은 아래와 같습니다. MemoVo.java : 하나의 메모 내용을 저장하는 Value Object config.xml : mybatis를 사용하기 위한 환.. 2023. 3. 20. swing으로 만들어본 멀티 메모장 #1/2 안녕하세요 IT여행자입니다. 이번 수첩은 자바 GUI API 중 하나인 swing을 사용하여 멀티 메모장을 만들어 볼까 합니다. 우리나라의 개발 환경은 대부분이 웹에 치중되어 있어 그리 흥미로운 인터페이스는 아니지만 자바언어만 알고 있어도 만들어 볼 수 있는 주제이기에 선정하였습니다. 개발 난이도는 아마추어 중급 수준입니다. 개발 난이도에 대한 설명이나 개발 환경은 영상을 참고해 주시기 바랍니다. 또한 영상은 두 개의 파트로 나뉘어 있습니다. 개발 환경 https://youtu.be/jJK67Ex2W58 아래의 코드들은 직접 작성된 코드가 아니라 이클립스의 윈도빌더에 의해 기본적으로 작성된 코드들입니다. 따라서 이 부분까지는 직접 작성하지 마시고 영상을 보면서 과정대로 따라가시면 만들어 보시기 바랍니다... 2023. 3. 1. 개발 초보자를 위한 상위 Top10 구하기 안녕하세요 IT여행자입니다. 이번 내용은 입문 과정을 끝낸 개발 초보자분들이 배운 과정을 어떻게 응용하여 프로그램을 만들어 볼까 고민될 때 한번 만들어 볼 수 있는 프로그램을 준비해 봤습니다. 프로그램은 단순히 HTML, CSS, JAVASCRIPT만을 사용하였습니다. 개발을 잘하고 싶다면 직접 많이 만들어 봐야 한다는 것은 잘 알고 계실 거라 생각됩니다. 그리 복잡한 내용은 없으므로 차근차근 따라 만들어 보시길 바랍니다. 그럼 시작하겠습니다. 실행 결과 화면 입력 숫자의 범위는 제한이 없지만 표시되는 영역이 작으므로 -999~999까지 입력합니다. 처음 10개까지는 입력 순서대로 위쪽 영역에 표시되었다가 10개가 넘으면 입력 수들 중 상위 10개까지만 표시될 것입니다. 준비 파일 아래와 같이 3개의 파.. 2023. 2. 24. 초보 개발자를 위한 스무 고개 게임 만들기 안녕하세요 IT여행자입니다. 입문자 딱지를 떼도 어떤 프로그램을 어떻게 만들지 잘 떠오르지 않는 때가 바로 초보 개발자 시절이라고 생각합니다. 뭔가를 배우기는 했는데 내가 배운 것으로 무엇을 할 수 있을지도 잘 모르는 때이기도 하고요. 이런 분들을 위해 HTML, CSS, Javascript만으로 스무고개란 간단한 게임을 만들어 보도록 하겠습니다. 동여상도 첨부 되어 있으니 참고해 주시길 바랍니다. 간단히 개발 환경을 말씀드리자면 앞서서 말씀드린것과 같이 html, css, javascript만을 사용하였습니다. 또한 개발 툴은 어떤 툴을 사용하든지 상관없습니다. 저는 이클립스를 사용하여 제작해 보도록 하겠습니다. 가장 먼저 프로젝트를 '스무고개게임' 이라고 만들도록 하겠습니다. 이클립스 환경에 따라 다.. 2023. 2. 20. 주석 처리는 이것으로... 안녕하세요 IT 여행자입니다. 이번 여행자 수첩은 아주 간단한 내용입니다. 우리가 프로그램을 작성할 때 주석처리를 하게 되는데 일반적으로 '//'을 사용하거나 '/*... */ ' 을 사용하게 됩니다. 그러나 대부분의 IDE 툴에서는 주석에 대한 기능을 추가하여 프로그램을 사용할 때 도움을 줍니다. 그중 대표적인 주석 방법이 '/***.. */'를 사용하는 방법입니다. 예를 들어 보면, 아래의 그림과 같이 /*** ai 시뮬레이션 */ 으로 주석 처리를 합니다. 해당 클래스를 사용한 부분에서 마우스를 클래스명에 올려 놓으면(대부분) 아래의 그림처럼 주석처리된 내용이 하나의 정보로 표시됨을 알 수 있습니다. 클래스명뿐만 아니라 필드(변수), 메서드에도 동일한 방법으로 주석 처리를 하여 그 기능을 확인해 볼.. 2023. 2. 6. Chart.js를 사용한 차트 만들기 안녕하세요 IT여행자입니다. 이번 여행지는 Chart.js 라이브러리를 사용하여 차트 만들기 입니다. 차트를 만드는 라이브러리나 API는 그 종류가 굉장히 많이 있지만 Chart.js는 자바 스크립트를 사용하여 간단히 차트를 만들수 있는 라이브러리 입니다. 여행 방법은 아래와 같습니다. 1. CDN 형태로 라이브러리 가져오기 라이브러리를 다운로드 받아 프로젝트내에 포함시킬 수 도 있습니다. " target="_blank" rel="noopener">https://cdn.jsdelivr.net/npm/chart.js"> 2. 기본 골격 데이터를 생성하는 언어는 JSP를 사용하였지만 어떤 언어이든 상관없습니다. 데이터를 자바스크립트로 전달 할 수만 있으면 상관 없습니다. line type 1 특별한 이유는 .. 2023. 1. 16. ubuntu에서 ssh, tomcat, mysql 설치 및 설정하기 안녕하세요 IT여행자입니다. 이번 수첩에서는 업무 내용이 서버 관리자까지는 아니더라도, 리눅스를 설치하고 원격지에서 터미널접속, jsp연동 및 db 연동을 작업에 대한 내용을 알고 있다면 주변머리가 생길 것 같아 간단히 정리해 보았습니다. [참고] - 모든 작업은 리눅스의 슈퍼유저로 리눅스 터미널에서 작업하시면 됩니다. - 문서 작성환경은 window10위에 virtualbox로 xbuntu를 설치하여 작업함. sshd 설치 및 접속환경 설정 1) sshd 설치 apt update apt upgrade apt install openssh-server -y 2) sshd 활성화 systemctl enable ssh systemctl start ssh 3) 리눅스 유저 등록(리눅스 터미널에서 직접 작업) u.. 2023. 1. 11. 외부에서 mysql 접속하기 mysql 서버를 로컬 컴퓨터에서 뿐만 아니라 외부에서 접근할 수 있도록 사용자 계정을 만들 수도 있다. 물론 기존에 등록된 유저에게도 외부에서 접근할 수 있는 권한을 부여할 수도 있다. 그러나 외부에서 권근할 수 있는 권한은 매우 위험한 권한이므로 신중하게 권한을 부여해야 할 것이다. mysql 을 외부에서 접근할 수 있는 권한을 부여하는 과정을 살펴 보도록 하겠다. step 1. 먼저 권한을 부여 받게될 유저의 등록 정보를 확인해 봐야 한다. 관리자 권한이 있는 유저로 접속한 뒤 아래의 sql문장으로 사용자들의 권한 부분을 살펴 본다. SELECT * FROM mysql.user; 여기서 중요한 것은 Host 부분이다. 이부분의 정보가 localhost에서만 접근하게 할 것인지, 다른 ip대역에서도 .. 2023. 1. 6. 1. 개요 및 개발환경 개요 본 문서는 중급자 이상인 독자들에게 맞추어져 있습니다. 입문자나 초급자인 경우 문서를 이해하는데 다소 어려움이 있을 것 같습니다. 개발환경에서 언급한 것 같이 기본적으로 javascript, jQuery, 서버페이지(jsp), servlet의 사용 경험이 있어야 합니다. 그러나 초급자분들도 쉽게 이해할 수 있도록 설명을 최대한 자세히 넣도록 하겠습니다. 위지윅 에디터에 대한 내용이지만 게시판류의 프로그램처럼 수정, 삭제, 조회, 상세 보기 처리에 대한 부분도 추가되어 있습니다. 주요 실행 화면 summernote를 이해하기 위해 필요한 내용이 아닌 레이아웃 부분은 최대한 배제하였습니다. 개발 환경 개발 툴 종류 설명 Database mysql 5.x Server Tomcat 8.x servlet 3.. 2023. 1. 1. 2. 기본 구조 CDN을 연결하고 summernote 함수를 실행하는 것만으로도 기본 구조를 만들 수 있습니다. 물로 작성된 내용을 DB에 저장하는 서버 페이지는 따로 있어야 하겠지요~ step 1. 이클립스를 사용하여 Dynamic Web Project를 생성한 후 필요한 파일을 생성합니다. 만들어야 하는 파일의 개수가 다소 많지만은 지극히 통상적인 파일의 수라고 할 수 있습니다. 파일의 종류나 개수에 주늑들어 시작도 하기 전에 GG 날리지 마시고 부딪쳐 보세요~^^ - DBConn.java : DB 연결을 위한 클래스 - FileUpload.java : Servlet 3.x를 사용한 파일 업로드 클래스 - SnDao.java : CRUD를 위한 클래스 - SnVo.java : Value Object 클래스 - css.. 2023. 1. 1. 3. 에디터 화면 및 저장 만들기 가장 많은 내용들을 설명하고 있는 부분입니다. 많이 복잡하더라도 최종 결론은 그리 복잡하지 않으므로 하나씩 실행해 보시면서 따라오시기 바랍니다. 기본 페이지 insert.jsp 페이지를 열고 CDN과 기본 폼을 html로 작업합니다. 물론 jquery로 summernote 함수를 호출하는 것만으로도 기본 위지윅 에디터 화면을 볼 수 있습니다. 파일명 : webapp/insert.jsp SUMMERNOTE Editor 제목 : IT 여행자의 수첩입니다. SAVE 목록으로 부트 스트랩과 jQuery와 관련된 CDN은 summernote.org의 Getting started 항목을 확인하시면 쉽게 작업할 수 있습니다. 전체 화면 배치와 한글 폰트 추가 전체 화면의 넓이와 에디터를 비롯한 전체 화면을 브라우저 .. 2023. 1. 1. 4. 수정하기 입력할 때와 마찬가지로 summernote api를 사용하여 이미지의 추가 삭제를 처리하고 나머지는 dao 객체에게 request를 전달하여 나머지를 처리하도록 하겠습니다. 1) dao수정하기 SnDao 클래스에 modify()메서드를 추가하여 수정 부분을 처리하도록 하겠습니다. package bean; import java.io.File; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; p.. 2023. 1. 1. 이전 1 2 3 4 5 다음 반응형