본문 바로가기

분류 전체보기

(135)
클래스의 구성 멤버(메소드) 매소드는 객체의 동작에 해당하는 중괄호{} 블록을 말한다. 중괄호 블록은 이름을 가지고 있는데 이것이 메소드 이름이다, 메소드를 호출하게 되면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행된다. 메소드는 필드를 읽고 수정하는 역할도 하지만, 다른 객체를 생성해서 다양한 기능을 수행하기도 한다, 메소드는 객체 간의 데이터 전달의 수단으로 사용된다. 리턴타입 리턴 타입은 메소드가 실행후 리턴 하는 값의 타입을 말한다. 메소드는 리턴값이 있을수도 있고 없을 수도 있다. 메소드가 실행후 결과를 호출한 곳에 넘겨줄 경우에는 리턴 값이 있어야 한다. 예를 들어 전자계산기 객체에서 전원을 켜는 powerOn() 메소드와 두 수를 나누는 기능인 divide()메소드가 있다고 가정해보자. divide() 메소드는 나..
클래스의 구성 멤버(생성자) 생성자 생성자(Constructor)는 new 연산자와 같이 사용되어 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당한다. 객체 초기화란 필드를 초기화하거나, 메소드를 호출해서 객체를 사용할준비를 하는 것을 말한다. 생성자를 실행시키지 않고는 클래스로부터 객체를 만들수 없다. new연산자에 의해 생성자가 성공적으로 실행되면 힙(heap) 영역에 객체가 생성되고 객체의 주소가 리턴된다. 리턴된 객체의 주소는 클래스 타입 변수에 저장되어 객체에 접근할 때 이용된다. 만약 생성자가 성공적으로 실행되지 않고 예외(에러)가 발생했다면 객체는 생성되지 않는다. 기본 생성자 모든 클래스는 생성자가 반드시 존재하며 , 하나 이상을 가질수 있다. 우리가 클래스 내부에 생성자 선언을 생략했다면 컴파일러는 다음..
클래스의 구성 멤버(필드) 필드(Field) 객체의 데이터가 저장되는곳 생성자(Constructor) 객체 생성시 초기화 역할 담당 메소드(Method) 객체의 동작에 해당하는 실행 블록 클래스에는 객체가 가져야 할 구성 멤버가 선언된다, 구성 멤버에는 필드, 생성자 메소드가 있다. 이 구성 멤버들은 생략되거나 복수 개가 작성될수 있다. 필드는 객체의 고유 데이터 ,부품 객체, 상태 정보를 저장하는 곳이다. 선언 형태는 변수와 비슷하지만 필드를 변수라고 부르지는 않는다. 변수는 생성자와 메소드 내에서만 사용되고 생성자와 메소드가 실행 종료되면 자동 소멸된다 하지만 필드는 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재한다. 생성자는 new 연산자로 호출되는 특별한 중괄호{} 블록이다. 생성자의 역할은 ..
객체 생성과 클래스 변수 클래스를 선언한 다음 컴파일을 했다면 객체를 생성할 설계도가 만들어진셈이다. 클래스로 부터 객체를 생성하는 방법은 다음과 같이 new연산자를 사용하면 된다. new는 클래스로 부터 객체를 생성시키는 연산자이다. new 연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태를 가지고 있다. new 연산자로 생성된 객체는 메모리 힙(heep)영역에 생성된다. 현실 세계에서 물건의 위치를 모르면 물건을 사용할수 없듯이, 객체 지향 프로그램에서도 메모리 내에서 생성된 객체의 위치를 모르면 객체를 사용할수 없다. 그래서 new 연산자는 힙영역에 객체를 생성시킨후 객체의 주소를 리턴하도록 되어 있다. 이 주소를 참조 타입인 클래스 변수에 저장해 두면 , 변수를 통해 객체를 사용할수 있다. 이코드가 실행되면 메모리..
객체와 클래스 현실에서 객체는 갑자기 하늘에서 떨어지는 것이 아니라 설계도를 바탕으로 만들어진다. 메모리에서 사용하고 싶은 객체가 있다면 우선설계도로 해당객체를 만드는 작업이 필요하다. 자바에서는 설계도가 클래스이다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다. 클래스로 부터 만들어진 객체를 해당 클래스의 인스턴스라고 한다. 객체 지향 프로그래밍 개발은 세 가지 단계가 있다. 첫번째 단계는 클래스를 설계해야 한다. 두번째 단계는 설계된 클래스를 가지고 사용할 객체를 생성해야한다. 그리고 마지막 단계는 생성된 객체를 이용하는것이다. 클래스 선언 이제 부터 클래스를 선언하는 방법에 대해 알아볼것이다. 사용하고자 하는 객체를 구성했다면 , 그 객체의 대표 이름을 하나 결정하고 이것을 클래스 이름으로 한다..
SpringSecurity(Authorization,FilterSecurityInterceptor) 이전까지 인증에 대하여 계속 공부해봤다 이제인가 처리를 한번 공부해보자 한다 인가는 말그대로 사용자가 로그인 했을때 서버자원에 접근할수 잇는 자격이 있는지 여부를 판단하는게 인가처리 라고 할수있다. 그래서 SprginSecurity는 Authentication과 Authorization 두개를 처리하도록 되어 있다. 위에 그림을 보면 사용자가 서버 자원에 접근하려 할때 그 사용자가 Authenticated 먼저 인증을 받았는지 안받았는지 확인을 하게된다 이후에 Authorization 에서 해당자원에 설정된 권한에 충분한 자격이 있는지 권한 심사를 하게된다. 스프링 시큐리티가 지원하는 권한계층을 살펴보자 웹 계층 URL 요청에 따른 메뉴 혹은 화면단위의 레벨보안 사용자가 user라는 경로로 자원에 접근하..
Oracle 연동 ㅎ ㅏ.. 구글링 하면 h2나 아니면 mySql이 가장 많이 나온다 난 한번에 되는경우가 잘 없다 ㅋㅋ 그래서 남긴다 이거 보면서 Oracle연동 할때 나와같은 삽질을 하지 않길 바랄뿐이다. 내가 했던 사양은 mac os , 툴은 인텔리 j , 버전은 gradle 이니 참고 바란다. 1) Application properties 여기까지는 정말 쉽게 구글링 하여 알수 있었다. 하지만 삽질은 여기서 부터 시작이였다 드라이버 이름과 url 을 서로 바꿔서 사용했기때문이다. 이런 어처구니 없는 실수를 하여 2시간을 소비 했다.. 그러면 저기서 run을 하면?.. 두근두근두근두근 빠라빠라빠라 짠 !!! 사진 삭제 역시 한번에 될리가 없다 클래스 경로 자원에 정의 된 이름 'dataSource'로 bean 생성 ..
키위주스 타로는 맛있는 키위 주스를 준비했습니다. 타로는 0부터 N-1이라 이름을 붙인 N개의 키위 주스를 넣었습니다. 이때 i번째의 병의 용량은 capacities[i]리터이며 타로가 i번째 병에 넣은 키위주스 양을 bottles[i] 리터라고 합니다. 타로는 병에 키위주스를 재분배하려고 하며, 0부터 m-1까지 m회 조작합니다. i번째의 조작은 타로가 병 fromId[i]부터 병 toId[i]에 키위주스를 넣는 것을 의미합니다. 병 fromId[i]가 비어 있거나 병 toId[i]가 꽉 차 있는 순간 , 타로는 더 이상 키위주스를 넣지 않았습니다. N개의 요소를 가진 정수 배열 int[] 를 리턴해주세요. 배열의 i번째 요소는 모든 주스를 쏟는 작업이 완료되고 i번째 병에 남아 있는 키위주스의 양입니다. 병의..