Programming language/Java 10

자바 static import 사용해서 static method (정적메소드)를 클래스 메소드 처럼 사용하기

getProjNoFromSession 이라는 static method가 있습니다. 이 메서드를 다른 클래스에서 사용 하려면, 해당 클래스 명을 다 써줘야 하는 불편함이 있습니다. 하지만 import static 을 사용하여 해당 메서드를 import 시켜둔다면, 해당 클래스에서는 언제든 이미 가지고 있는 메서드 처럼 사용 할 수 있습니다. 코드의 ReadAbility 에도 좋고 Code Assist 도 되니 알아둔다면 유용하게 사용할 수 있습니다! import static best.gaia.utils.SessionUtil.*; 위와 같이 import 해둔다면 해당 클래스의 모든 메서드를 import 합니다 !

Programming language/Java 2021.06.06 (1)

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

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

Servlet으로 text file Reader 만들기

수업에서 배운 tmpl 파일구조를 이용합니다. tmpl은 jsp 구조를 익히기 위해 임의로 만든 확장자입니다. package kr.or.ddit.servlet01; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet..

웹페이지로 만든 sns에서 메시지 기능 구현하기

playddit 메시지 기능 구현 설명 저희 팀에서 중간 발표로 준비중인 playddit 프로젝트 에서는 메시지 기능을 선보일 예정입니다. 학원 학생들이 사용하는 SNS라는 프로젝트 주제에서, 구현하고자 하는 기능들을 분류할때 '회원가입 & 로그인', '피드', '공지사항' 에 이어 '메시지, 알림' 또한 필수 기능으로 분류했습니다. 채팅을 구현한다고 하니, 소켓을 이용한 실시간 서버에서의 채팅으로 생각하는 분들이 많았는데요, 데이터 베이스를 이용한 '쪽지' 개념으로 접근하였습니다. 개인 간의 메시지와 단체 메시지는 비슷하지만 다르게 구현을 했습니다. 개인 메시지에서 메시지 테이블은 수신자,송신자가 모두 users 테이블의 user_id를 FK로 받아옵니다. public class MessageVO { ..

javax.mail 이용해 이메일 보내기

JAVA 이용해 이메일 보내기 지금 진행하는 프로젝트에서 웹사이트 회원가입시 저희는 '이메일'을 회원 아이디로 할 예정입니다. 이메일을 통해 대부분의 확인을 할 예정이기때문에 회원가입시 입력한 이메일이 본인의 것이라는게 확인이 되어야만 합니다. 백엔드 서버를 Servlet으로 구현할 예정이기 때문에, 자바에서 입력한 이메일로 본인의 이메일임을 확인 할 수 있는 코드를 보낼 예정입니다. 해당 코드는 랜덤으로 생성한 난수를 보낼 것이며, 정확히 입력시 본인의 이메일임을 증명할 수 있습니다. 시작에 앞서 본인이 사용하실 이메일의 SMTP 설정을 확인해주세요. 저는 gmail을 기준으로 설명하겠습니다. ☐ 전체코드를 먼저 한번에 올린 뒤 파트별로 따로 설명해드리겠습니다. package users...

Programming language/Java 2021.02.17 (2)

iText 활용한 pdf 파일 작성하기

What is iText? iText는 개발자가 결과물을 PDF 파일로 작성하는 작업을 수행 할 수 있게끔 도와주는 SDK(개발도구) 입니다. 그 자체로서 완성되어 사용자가 사용하는 도구(end-user tool)가 아닌, 개발자가 반드시 본인의 응용프로그램 에서 iText를 구축해야 PDF 생성 및 프로세서를 자동화 할 수 있습니다. PDF 형식은 어느 환경에서나 동일한 결과물을 일관적으로 보여주기 위해 개발되었습니다. 글꼴과 이미지 또한 포함이 가능하며, 기본적으로 출력을 전제로 하기때문에 pdf 파일은 한번 생성되면 이후 편집은 고려되지 않습니다. github.com/itext iText Technical support: https://itextpdf.com/support. iText has 30 ..

게시판 페이징 처리하기

5주간의 일정으로 기초 자바 수업이 모두 마무리 되었습니다. 마지막 주에는 JDBC를 이용한 게시판 만들기를 했습니다. Map SelectOne(String sql) Map SelectOne(String sql, List param) List SelectList(String sql) List SelectList(String sql, List param) int update(String sql) int update(String sql, List param) 이렇게 6개의 메서드를 구현한 JDBCUtil 클래스를 만든 뒤, 해당 메서드들을 이용해 게시판을 만드는 숙제를 했습니다. 5주동안 받은 기초 데이터베이스 수업과 기초 자바 수업이 마침내 콜라보레이션을 하는 역사적인 순간이었습니다. 이 수업 전에는 해시..

클래스 자유생성 과제

자바교육 3주차에 객체지향 수업을 듣고 있습니다. 이번 숙제는 배운것을 이용해 자유롭게 클래스를 만들어 보라고 하셨습니다. 별 고민없이, 단지 '재밌을거' 같다는 이유로 노트에 슥슥 써봤습니다. 선생님께서 학생들 테이블을 순회하시다가 제 노트를 슥 보시고는 한마디 하십니다. [ "오늘 안에 하겠어요?" ] 쉽지 않은 주제란걸 말씀하셨단건 눈치챘지만, 괜히 오기가 더 생겨서 [ 내일 수업시간 까지 뭐가 됐든 기본적인 틀은 만들어 놓겠다 ] 란 다짐을 합니다. 쉬는시간, 점심시간 내내 이클립스를 켜고는 생각해봤던 객체들을 구현해 보려고 하는데. 생각했던것보다 복잡합니다. 일단 hp, exp로 끝날게 아니라 max 값이 지정이 되어야 했습니다. 그렇지 않으면 전투 후 체력이 떨어지고는, 본래의 체력을 나중에 ..

3자리 마다 콤마(,) 넣는 프로그램

국비지원 자바수업을 시작한지 어느덧 2주가 지났습니다. 매일 오전 4시간동안 자바 수업을 듣고, 수업이 끝날때면 과제를 주시는데 생각을 꽤 해야하는 재밌는 문제를 주로 주셔서 항상 즐겁게 하고 있습니다. 마침 이번에는 간만에 비교적 간단한 과제를 주셔서, 해결책을 여러개 만들어 보았습니다. 일단 내가 손으로 ' , ' 를 붙인다면 어떤 절차로 할까 하고 잠시 생각해 보았습니다. 저는 뒤에서 부터 숫자를 세자리씩 세면서 콤마를 붙이기 때문에 일단 생각대로 구현해보기로 했습니다. 또한, 금요일 수업에서 배운게 String 클래스기 때문에, 새로배운 charAt()을 통해 각 자리 숫자를 읽어오기로 했습니다. 뒤에서 부터 숫자를 셌으니, 당연하게도 숫자가 뒤에서부터 출력이 되었습니다. 세자리 마다 쉼표를 찍지..

1. 논리형 type ' boolean '은 왜 1bit가 아닌 1byte의 크기를 가질까?

JAVA의 기본형(Primitive type) 중 논리형 데이터 타입인 boolean은 true 혹은 false 둘중 하나의 값만을 가진다. true =1, false=0 이라고 간주하고 1 bit 면 충분히 표현 가능하다고 생각되는데, 왜 굳이 1byte 일까? 다행히도, google 검색을 통해 같은 질문을 찾을 수 있었다. 간단한 대답이 달렸는데, cpu가 1바이트 보다 작은 데이터를 처리 할 수 없다는 듯 두번째 대답도 비슷했다. 주소를 매길 수 있는 최소한의 단위가 byte 라는것. 검색을 이어가다보니 c 언어에서의 bool 타입도 똑같이 1 byte 를 차지한다는 걸 알 수 있었는데, 위의 이유 때문이라면 사실 어느 프로그래밍 언어에서도 논리형 데이터 타입이 1bit만 차지할 수는 없겠다. 실..

반응형