전체 글 777

[ java, AOP ] AOP(Aspect Oriented Programing)

AOP(Aspect Oriented Programing) AOP는 관점 지향 프로그래밍이다. 쉽게 말해서 AOP는 애플리케이션 전체에 걸쳐 사용되는 기능을 재사용 하도록 지원하는 것이다. 관점 지향 프로그래밍이라는 단어가 AOP를 이해하는데 더 어려움을 일으킨다. 쉽게 설명하면 프로젝트 구조를 바라 보는 관점을 바꿔 보자는 것이다. (제 3자의 관점) (핵심기능에서 바라본 관점) (부가기능에서 바라본 관점) 부가적 기능의 관점엑서 보면 각각의 서비스는 before와 after 메소드를 공통으로 사용하고 있다. 기존의 OOP에서 바라보던 관점을 다르게하여 부가기능적인 측면에서 보았을때 공통된 요소를 추출하자는 것이 관점 지향 프로그래밍이다. OOP : 비지니스 로직의 모듈화 모듈화의 핵심 단위는 비지니스 ..

IT 유용한 정보 2020.12.23

[ java ] 자바 예외처리 Try Catch문 사용법

Error(에러)와 Exception(예외의 차이) 에러(Error)란 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램에 이상이 생겼거나 JVM 실행에 문제가 생겼을 경우 발생하는것을 말합니다. 이 경우 개발자는 대처할 방법이 극히 제한적입니다. 하지만 예외(Exception)은 다릅니다. 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말합니다. 예외가 발생하면 프로그램이 종료가 된다는것은 에러와 동일하지만 예외는 예외처리(Exception Handling)을 통해 프로그램을 종료 되지 않고 정상적으로 작동되게 만들어줄 수 있습니다. 자바에서 예외처리는 Try Catch문을 통해 해줄 수 있습니다. 여러가지 예외들 예외 구문이유 ArithmeticExc..

Java 2020.12.22

[ Spring Boot] JAVA에서 JSON 데이터 만드는 방법

JAVA에서 JSON 데이터 만드는 방법 JSON Maven 추가 com.googlecode.json-simple json-simple 1.1.1 아래와 같은 데이터를 만들고 싶을 경우 라이브러리를 추가했다면 JSONArray, JSONObject 객체를 사용할 수 있다. { “SECR_KEY”: "ktko.tistory.com”, “KEY”: “ktko”, “REQ_DATA”: [ { “BANK_CD”: “088”, “SEARCH_ACCT_NO”: “1231231234”, “ACNM_NO”: “123456”, “ICHE_AMT”: “0”, “TRSC_SEQ_NO”: “0000001” } ] }JSONObject 객체를 생성하여 데이터를 .put 할 수 있다. JSONObject에 배열을 포함하고 싶다면..

Java 2020.12.22

[ java ] 배열 응용 프로그램(ArrayList 배열 객체) 만들기

ArrayList 객체 배열 사용법 package StudentArrayList; import java.util.ArrayList; public class Student { private String name; private int studentID; private ArrayList subjects; public Student(String name, int studentID ) { this.name = name; this.studentID = studentID; subjects = new ArrayList(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int ..

Java 2020.12.18

[ java ] 변수 유효 범위란?

변수 유효 범위란? 지금까지 세 가지 종류의 변수를 알아보았다. 함수나 메서드 안에서만 사용할 수 있는 지역 변수(로컬 변수, local variable) 클래스 안에서 사용하는 멤버 변수(인스턴스 변수, instance variable) 여러 인스턴스에서 공통으로 사용할 수 있는 static 변수(클래스 변수, class variable) 변수는 어디에 어떻게 선언되느냐에 따라 유효 범위(scope)가 달라진다. 지역 변수의 유효 범위 지역 변수는 함수나 메서드 내부에 선언하기 때문에 함수 밖에서는 사용할 수 없다. 즉 하나의 함수에 선언한 지역 변수는 다른 함수에서 사용할 수 없다. 지역 변수가 생성되는 메모리를 스택(stack)이라고 한다. 스택에 생성되는 지역 변수는 함수가 호출될 때 생성되었다가..

Java 2020.12.17

[ java ] static 변수와 static 메서드 연습하기/클래스 메서드/클래스 변수

클래스 변수 앞서 이야기한 것처럼 static 변수는 인스턴스를 생성할 때마다 만들어지는 것이 아니고 클래스를 선언할 때 특정 메모리에 저장되어 모든 인스턴스가 공유하는 변수이다. static 변수는 인스턴스 생성과는 별개이므로 인스턴스보다 먼저 생성된다. 그러므로 인스턴스가 아닌 클래스 이름으로도 참조하여 사용할 수 있다. 예시) 클래스이름.static 변수명 static 변수를 인스턴스 참조 변수로 사용한다면 아래쪽에 노란색 줄이 보인다. 이것은 오류가 아니고 이 변수가 static 변수이므로 인스턴스 참조 변수가 아닌 클래스 이름으로 직접 참조하라는 뜻이다. 이클립스에서 static 변수와 static 메서드는 이탤릭체로 나타난다. static 변수 공통된 이름 3가지 static 변수 정적 변수 ..

Java 2020.12.17

[ java ] 객체. this

this this는 간단히 설명하면 생성된 인스턴스 스스로를 가리키는 예약어이다. 참고 인스턴스가 생성된 동적 메모리(힙) 주소는 실제 주소가 아닌 자바 가상 머신(JVM; Java Virtual Machine)이 생성한 주소이다. 생성자가 다른 생성자를 호출 디폴트 생성자가 호출되는 경우에는 초깃값으로 "이름 없음"과 1 값을 대입하고자 한다. 물론 디폴트 생성자 코드 안에서 직접 써도 되지만, 이미 다른 생성자에 이 코드가 작성되어 있으므로 this를 활용하여 다른 생성자를 호출 할 수 있다. this로 다른 생성자를 호출할 때 주의사항 this를 사용하여 생성자를 호출하는 코드 이전에 다른 코드를 넣을 수 없다. 다른 코드를 먼저 구현하면 오류가 발생한다. 생성자는 클래스가 생성될 때 호출되므로 클..

Java 2020.12.17

[ java ] 정보 은닉, 접근 제어자

정보 은닉 객체 지향 프로그램에서는 예약어를 사용해 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있다. public 이라고 선언한 변수나 메서드는 외부 클래스에서 접근이 가능하며 외부 클래스가 사용할 수 있다는 뜻이다. 반대로 접근 제어자를 private으로 선언한 변수나 메서드는 외부 클래스에서 사용할 수 없다. 변수를 public으로 선언하는 것과 변수를 private으로 선언하고 나서 그 변수를 사용할 수 있도록 public 메서드를 제공하는 것의 차이는 무엇일까? 클래스의 멤버 변수를 public으로 선언하면 접근이 제한되지 않으므로 정보의 오류가 발생할 수 있다. 필요하지 않은 정보를 해당 클래스에 저장을 하게 될 수도 있는 것이다. 이처럼 클래스 내부에서 사용할 변수나 ..

Java 2020.12.17

[ java ] 생성자(constructor)

생성자가 하는 일 클래스를 처음 만들 때(클래스를 생성할 때) 멤버 변수나 상수를 초기화하는 것 생성자는 클래스를 생성할 때만 호출한다. 생성자 이름은 클래스 이름과 같고 반환값이 없다. 디폴트 생성자(default constructor) 생성자가 없는 클래스는 클래스 파일을 컴파일할 때 자바 컴파일러가 자동으로 생성자를 만들어준다. 그러나 매개변수를 받는 생성자를 직접 구현한다면 자바 컴파일러는 디폴트 생성자를 자동으로 생성해주지 않는다. 직접 매개변수를 받는 생성자를 구현했다면, 필히 디폴트 생성자를 사용하기 위해서는 직접 default constructor를 구현해주어야 오류없이 사용할 수 있다. 어떤 경우에 생성자를 직접 구현할까? 생성자는 주로 멤버 변수에 대한 값들을 매개변수로 받아서 인스턴스..

Java 2020.12.14

[ java ] 객체 지향 기초 개념 7가지

1 : 객체 객체 지향 프로그램의 대상, 생성된 인스턴스 2 : 클래스 객체를 프로그래밍하기 위해 코드로 만든 상태 3 : 인스턴스 클래스가 메모리에 생성된 상태 4 : 멤버 변수 클래스의 속성, 특성 5 : 메서드 멤버 변수를 이용하여 클래스의 기능을 구현 6 : 참조 변수 메모리에 생성된 인스턴스를 가르키는 변수 7 : 참조 값 생성된 인스턴스의 메모리 주소 값

Java 2020.12.14

[ java ] 변수, 클래스, 객체, 메모리 외 기초 설명

패키지란? 패키지는 간단히 말하면 클래스 파일의 묶음이다. 조금 더 깊이 들어가면 패키지가 단순히 클래스 묶음이 아닌 프로젝트 전체 코드를 구성하는 계층 구조가 되고 이 계층 구조를 잘 구성해야 소스 코드 관리와 유지 보수가 편리하다. 클래스 이름이 같더라도 패키지 이름이 다르다면 다른 클래스로 구분된다. 메서드(method) 함수(function)의 한 종류이다. 함수는 어떤 기능을 수행하도록 미리 구현해 놓고 필요할 때마다 호출하여 사용할 수 있다. 함수란 하나의 기능을 수행하는 일련의 코드를 말한다. 함수는 이름이 있고 입력 값과 결과 값을 갖는다. return : 반환값 (예약어) 스택(stack) 함수를 호출하면 그 함수만을 위한 메모리 공간이 할당되는데 그 공간을 스택(stack)이라고 한다...

Java 2020.12.14

[ java ] 반복문 사용의 경우, break문과 continue문의 차이

for문을 자주 사용하는 이유 반복 횟수를 관리할 수 있다. while문의 초기화, 조건 비교, 증감식을 가독성이 더 좋도록 코딩할 수 있다. 반복문 사용하는 경우 for문 반복 횟수가 정해진 경우에는 for문 사용하는게 좋다. do-while문 수행문을 반드시 한 번 이상 수행해야 하는 경우에 do-while문 사용이 좋다. while문 조건의 참, 거짓에 따라 반복문 수행의 경우 좋다. 때에 따라서는 각 사용에 다른 반복문이 사용되기도 하지만 상황에 맞는 적절한 문법을 사용하는 것이 중요하다. break문 switch-case문에서도 break를 사용하면 다른 조건을 더 이상 비교하지 않고 빠져나왔다. 반복문에서도 break문을 사용하면 그 지점에서 더 이상 수행문을 반복하지 않고 반복문을 빠져나온다..

Java 2020.12.13

[ java ] for문 break 사용법(조건식 생략)

package algo2; public class Operators { public static void main(String[] args) { // 1부터 더했을 때 그 합이 500이 넘는 자연수는 얼마인가? int num; int sum = 0; for ( num = 1; ; num++ ) { sum += num; if ( sum > 500 ) { break; } } System.out.println("num : " + num); System.out.println("sum : " + sum); } } break를 거는 if문의 위치가 중요하다. 마지막에 조건에 부합할 때 딱 종료가 되어야 한다.

Java 2020.12.13
728x90
반응형
LIST