1. 멤버십 ID 생성 public int insertMember(MemberDTO dto) Main클래스에서 멤버십ID를 난수로 생성( 문자 A~Z / 10진수를 append 하여 11자 생성) 하여MemberDTO의 memberNo에 set해주고 DAO 메서드에 매개변수로 담아 호출하여 멤버십 ID를 Insert 한다. StringBuffer memberNumber =new StringBuffer(); for(int i=0;i=orderPrice && possessionMileage>0) {resultMileage = possessionMileage-orderPrice;JOptionPane.showMessageDialog(null, orderPrice + "원을 " + possessionMileage..
취업전 만들었던 작은 프로젝트다. 자바 스윙 컴포넌트를 학습할때 JDBC 오라클 DB와 연동하여 '학사 관리 프로그램'을 만들었던적 있었다.학생들의 정보와 도서 대여 정보를 입력(create)하면 읽어오고(readList) 수정(update)하고 삭제(delete) 할 수 있는학습 목적의 프로젝트였다. 자바를 복습할겸 하나의 작은 프로젝트를 만들어 개발을 진행했다.레이아웃도 쓰진 않았지만 UI가 있으면 흥미가 올라 갈 거 같아 스윙을 다시한번 해보기로 했었다.당시에는 결과 내는데 급급했는데.. 음. 코드부터 DB설계까지 수정할게 너무 많다. 프로젝트명 bunCafe 시나리오 서울에 위치한 '분카페'는 회원제로 운영되고 있는 커피 전문점이다.'분카페'는 주문 금액의 10%를 마일리지 멤버십 아이디로 적립해..
네트워크에 연결되어 있는 대상 사이에 데이터 전송 방법을 배워본다.네트워크의 데이터 입·출력은 대상 사이에 InputStream, OutputStream을 이용한다.InputStream과 OutputStream은 네트워크상에서 대화가 오고 갈 때 장치 역할을 해주지만,교신역할을 해주진 않는다.현실에서는 멀리 떨어져있는 A , B 두 사람이 서로 대화를 주고 받기 위해서휴대전화기와 같은 교신 장치를 사용하듯 네트워크상에서는 socket이라는 교신 장치를 사용한다.자바에서는 이 개념을 Socket 클래스로 구현하여 제공하고 있다. 우선 ServerSocket클래스를 이용하여 네트워크상에 A , B 두사람이 약속된 통신 지점을 만들고Socket클래스를 통해 접선 할 수 있도록 코드를 작성해보자. public ..
다른곳의 데이터를 가져 오는것을 입력이라 하고, 다른 곳으로 데이터를 내보내는 것을 출력이라고 한다.프로그래밍적인 행동에서 직관적으로 표현하자면, 입력(Input) : 파일 읽기, 이미지나 동영상 불러오기출력(output) : 파일 쓰기, 이미지나 동영상 내보내기 프로그램이 어느 대상으로부터 입·출력이 가능하도록 중간에서 장치역할을 해줄 녀석을 스트림(stream)이라 하는데,자바에서는 이 스트림이란 장치가 이미 클래스로 제공하고 있다. 입·출력에 사용되는 기본 클래스는 1바이트 단위로 데이터를 전송하는 InputStream(입력 클래스)과OutputStream(출력 클래스)이 있다. InputStream,OutputStream 클래스는 추상 클래스로 추상 메서드를 갖고 있으며, 두 클래스를 상속받고 확..
예외는 프로그램에 문제가 있는 것을 말한다.예외로 인해 시스템 동작이 멈출때 이를 대비하여 막는것을 예외처리라고 한다.우선 예외처리 방법을 알아보기전에 에러와 예외의 차이를 간단히 살펴보고자 한다. 출처https://stackoverflow.com/users/51681/georgios-gousioshttps://stackoverflow.com/questions/912334/differences-between-exception-and-error/912352 위 그림처럼 에러는 시스템 단에서 발생하며 개발자가 대처 할 수 없다. 예외는 잘못된 입력, 연산, 시스템과부하, 하드워드 또는 네트워크 문제발생의 예상지점에서 대처가 가능하다. 예외에도 2가지 종류가 있는데 Checked Exception과 Unche..
자바 컬렉션 프레임워크는 배열과 같이 데이터를 효율적으로 관리하기 위한 인터페이스다.배열에는 고정값의 크기를 사용하지만 컬렉션은 필요에따라 제한없이 데이터를 추가 할 수있다.컬렉션에는 대표적으로 List와 Map이 있고 이를 상속하여 구현된 클래스들이 여럿 있지만포스팅에서는 List-ArrayList와 map-HashMap을 다루도록 하겠다. List순서가 있는 데이터의 집합으로 인덱스를 이용하며 데이터를 관리하며, 데이터 중복이 가능하다. 아래와 같이 문자열 데이터를 관리 할 수 있도록 ArrayList 객체를 생성하고 데이터가 몇개 담겼는지를 리턴해주는size 메서드를 출력문에 써서 체크해본다. ArrayList list = new ArrayList(); System.out.println("list...
String은 문자열을 담는 참조형 데이터 타입이다.기본형 데이터 타입은 별도의 객체를 생성하지 않고 사용하는데 (byte,short,int,long,float,double,boolean,char)String 역시도 객체를 생성하지 않고 잘만 사용했었다.String은 클래스이기때문에 String s = new String("JAVA"); 와 같이 객체 생성하여 사용 할 수도 있다.String s = "JAVA"; 와 String s = new String("JAVA"); 의 차이점부터 간략하게 알아본다.(실제 신입 면접에 질문을 받은던적 있다.)(이하 설명될 내용에서 String s="JAVA"를 전자로 String s = new String("JAVA");를 후자로 표현하겠다.) 전자와 후자의 생성방식..
람다식은 익명함수를 이용해서 익명 객체를 생성하기 위한 식이다.JDK 1.8에서부터 도입되었고 당연히 1.8버전부터 사용 가능하다.객체지향 언어인 자바 안에 함수 지향 방식인 람다 표현식을 혼용함으로써 더욱 간결한 프로그래밍이 가능하다.이곳 저곳 참고자료를 들여다 보면 자바에서 람다에 대한 퍼포먼스와 실용성을 인정하느냐 마느냐 갑을논박도 있고,자바의 강력한 객체지향적 특성에다 찬물을 끼얹는 존재로 치부하는 경우도 있다.이번 포스팅에는 자바에서의 람다식 사용 방법에 기초하는 포스팅을 쓰고,추후에는 람다식이 자바에 도입되는데에 대한 이해와 배경을 토대로 나의 경험과 생각을 덧대어 써볼 생각이다. 람다식은 기본적으로 함수를 만들어 사용한다.기존에는 인터페이스타입 변수에 인터페이스를 구현체를 대입하여 사용하였다..
추상클래스는 인터페이스와 비슷한 형태로 구체화 되지 않은 멤버를 이용해서 클래스를 만든다.클래스의 공통된 부분을 뽑아서 별도의 클래스(추상클래스)로 만들어 놓고, 상속해서 사용한다.추상 클래스의 특징은 다음과 같다. · 멤버변수를 가진다· 추상클래스를 상속하기 위해서는 extends를 이용한다.· 추상메서드를 가지며, 상속한 클래스에서 반드시 구현해야 한다.(의무)· 일반메서드도 가질 수 있다.· 일반클래스와 마찬가지로 생성자도 있다. 코드를 통해서 설명한다. public abstract class AbstractClassEx { -- ① int num;String str;public AbstractClassEx() {System.out.println("AbstractClassEx constructor"..
인터페이스는 클래스에서 구현해야하는 동작을 추상적으로 작성하는 작업 명세서라고 할 수 있다.인터페이스를 사용하는 이유는 여러가지가 있다.느슨한 연결을 위한 장치라고 표현 하기도 하고, 협업을 위한 토대가 되는 틀을 생산해내는장치 역할이라 표현 표현하기도 하고, 다양하다.조만간 인터페이스에 대해 좋은 참고 자료를 올리고자 한다. 인터페이스는 class 키워드를 사용하지 않고 interface를 사용한다. 인터페이스는 클래스로부터 '기능을 구현 하라' 할 뿐, 직접 기능 구현을 할 수 없다. 이제 'Impl'이라는 클래스에게 showInfo(); 라는 메서드를 구현하게 하도록 하고 'Impl'은 인터페이스에서 명세한 메서드를 구현 할 수 있게 단계적으로 작성해보자. InterfaceA.java public ..