기본 콘텐츠로 건너뛰기

Part4 객체지향 프로그래밍의 기법(12장 ~ 15장)

API : 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 한 인터페이스 String API concat(추가할 문자열) : 문자열을 연결할 때 charAt(위치) : 문자열 중에서 특정한 위치의 글자를 가져오고 싶을 때 String.valueOf() : 모든 기본 자료형을 모두 문자열로 변경 spilit() : 문자열을 특정 토큰으로 분리 문자열과 배열 String str = "한글은" ; char [] arr1 = str. toCharArray (); System. out . println (Arrays. toString (arr1)); Java의 성능 튜닝의 기본 String 대신 StringBuffer/StringBuilder를 이용, String은 immutable이라서 새로 만들어야 하지만 StringBuffer와 StringBuilder은 mutable이 이므로 변경가능함 StringBuilder를 써야 하는 경우 : 루프를 돌면서 문자열의 내용이 계속해서 변경되는 경우, '+'혹은 '+='와 같은 연산이 빈번하고 자주 사용되는 메소드인 경우, if ~ else에 의한 연산에 의해 문자열이 완성되는 경우(주로 SQL 문이나 명령어) 시간 관련 API  System.currentTimeMillis() : 현재 시각 Calendar 함수 선언 방법 2가지 Calendar cal1 = Calendar. getInstance (); Calendar cal2 = new GregorianCalendar(); 데이터를 얻을 때는 get() - 월(month)는 0부터 시작하므로 월-1로 나옴 int year = cal1. get (Calendar. YEAR ); int month = cal1. get (Calendar. MONTH ); int date = cal1. get (Calendar. DATE ); 데이터를 변경할 때는 set() cal2. set (Calendar. YEAR , 2020 ); ca

메이븐으로 라이브러리 인식

 간혹 퍼블릭 jar가 아닌 파일이 있는데 그럴때 쓰면 될듯 <dependency> <groupId> SimpleCryptLib </groupId> <artifactId> SimpleCryptLib </artifactId> <version> 1.1.0 </version> <scope> system </scope> <systemPath> ${basedir}/src/main/webapp/WEB-INF/lib/SimpleCryptLib-1.1.0.jar </systemPath> </dependency> version, scope, systemPath는 꼭 작성해야 한다 groupId, artifactId, version은 암거나 해도 되는거 같음 최근(2021.05.04)스프링 부트    < dependency > < groupId > NiceID </ groupId > < artifactId > NiceID </ artifactId > < version > 1.0 </ version > < scope > system </ scope > < systemPath > ${basedir}/src/main/resources/lib/NiceID.jar </ systemPath > </ dependency > 이걸 추가해주는것도 필요할지도..?? < build > < plugins > < plugin > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-maven-plugi

네이버페이 리뷰 API 연동

네이버 페이 리뷰 API 네이버 측에 문의 하면 sandbox용 인증키를 받습니다. AccessLicense, SecretKey 그리고 받은 파일의 4. WSDL을 열어 주시고 Naver_Pay_API_MallService41_WSDL(sandbox)_20140925파일 압축 풀어주세요 그럼 파일이 BaseType.xsd, CheckoutAPI.wsdl, MallServiceMessage.xsd 세개의 파일이 나옵니다. 네이버페이 리뷰 리스트 가져오는 메소드는 getPurchaseReviewList입니다. BaseType.xsd를 켜신 후 MallID로 검색하면 <xs:complexType name="purchaseReview"> 안쪽의 MallID밑에  <xs:element minOccurs="0" name="PurchaseReviewClassType" type="xs:string"/> 추가해주세요 포토 리뷰를 가져오는 파라미터 값을 보내기 위해서 입니다. <xs:element minOccurs="0" name="Content" type="xs:string"/> 이값도 필요합니다 이미지 경로를 가져오기 위해서 입니다. <xs:complexType name="purchaseReview">     <xs:sequence>       <xs:element minOccurs="0" name="CreateYmdt" type="xs:dateTime"/>       <xs:element minOccurs="0" name="MallID" type="xs:string"/>   <xs:element minOccurs="0" nam

Part3 객체지향 프로그래밍의 기법(10장 ~ 11장)

상속 : 특정 클래스를 구성할 때 기존 클래스의 데이터(속성)와 메소드를 상위(부모) 클래스에서 그대로 물려받아서 중복적인 코드를 줄인다는 장점과, 하나의 변수 타입으로 여러 종류의 객체를 의미하는 추상화 된 방식의 프로그램이 가능하게 하는 객체지향 기법  부모 클래스(Super 클래스) 자식 클래스(Sub 클래스) extends : 상속을 사용하는 문법 WheelMouse m = new Mouse(); 휠마우스의 휠 기능의 정의를 못하므로 에러인가봄 public class MouseTest { public static void main (String[] args){ System. out . println ( "------------" ); Mouse op = new OpticalMouse(); op. clickLeft (); op. clickRight (); } } 결과  --------------------- 광센서로 왼쪽 클릭 광센서로 오른쪽 클릭 실행되는 메소드는 실제 객체의 메소드가 호출 - 변수의 타입이 무엇이든 간에 실제로 움직이는 것은 리모컨(레퍼런스)에 연결된 객체  - 컴파일러는 변수 타입으로 선언된 클래스에 해당하는 메소드가 있는지만 확인  - 실제로 움직이는 것은 연결된 객체  - 만일 실제 객체에 해당 메소드가 없다면 부모 클래스의 정보를 추적해서 실행 오버라이드 : 자식 클랙스에서 부모 클래스의 메소드를 다시 정의 super : 부모 클래스를 부르는 키워드, 부모 클래스에 정의된 생성자를 사용(this로 자식에서 재정의 가능) 다형성 : 상속을 사용하여 하나의 변수 타입으로 여러 가지 종류의 객체를 가리킬 수 있어서 기존 코드를 고치지 않고도 처리할 수 있는 부분이 많아짐 상속의 장점 - 변수의 타입과 실제 객체가 일치하지 않아도 됨, 부모 타입으로 파라미터, 배열을 선언가능 생성자.... 추상 클래스 : 변수의 타입으로만 의미가 있고, 객체로 생성될 가능성이 없는 것은

JAVA

 JAVA 장점  - 다중 스레드를 지원하여 효율적인 멀티 처리 효과를 볼 수 있다.  - 메모리를 할당받아 사용한 후 메모리를 자동으로 제거해줌(가비지 컬렉터) MVC 패턴  - M(model) => 요청처리(DB연동)  - V(view) => HTML생성 표현  - C(controller) => 클라이언트 요청 접수 참조형   - 클래스가 객체화 될때 메모리에 올라가는 객체의 메모리 위치 주소 값 Final  - 데이터 갱신 불가 설정시  - 활용     클래스 앞에 -> 자식클래스 없음, 상속금지     메소드 앞에 -> 오버라이딩 금지     속성, 지역 변수 앞에 -> 갱신 금지 속성 변수 - 객체의 구성성분 지역 변수 - 메소드내의 선언된 변수(휘발성) 클래스 접근 지정자     public - 같은 또는 다른 패키지의 타 클래스에서 수입이 가능하다.     dafault - 같은 패키지의 타 클래스에서만 수입이 가능하다. 클래스 성격 지정자     abstract - 블록이 없는 메소드를 하나 이상 소유한 클래스임을 지정한다.(추상 클래스)     final - 자식 클래스를 가질 수 없는 클래스임을 지정한다. 상속이 불가능한 클래스(종단 클래스) 속성 변수 - 기본형 데이터 또는 참조형(주소값) 데이터를 저장하는 변수다. 메소드안에 선언된 변수는 속성변수가 아니라 지역번수로 메소드 안에서 선언되어 종료시 삭제된다. 속성변수의 접근 지정자     public          같은 패키지 다른패키지 다 호출 가능     protected     다른패키지 타클래스의 메소드에서 호출 불가. 다른 패키지 타 자식 클래스의 메소드에서 속성변수명으로 호출     default         다른 패키지에서 호출 불가능     private          동료 메소드/속성 변수에서 호출 가능 같은 패키지 다른패키지에서 호출 불가 속성변수의 성격 지정자     final          처음에 저장된 데이터는 갱신 불가    

JavaScript

 JavaScript 장점  - 복잡한 환경 설정 없이 HTML 코드 안에서 사용가능  - Client에서 실행되므로 Server부담이 적음  - 변수, 연산자, 조건문, 반복문, 함수, 객체등을 사용하여 프로그래밍 수준으로 쓸 수 있음  - Ajax기술을 사용하여 간접DB연동  - 모바일 분야에서 활용하기 좋음 JavaScript단점  - 소스코드가 노출된다. JavaScript Import 파일명.js <script language= "JavaScript" src= "파일명.js" > < /script> 매개변수  - 함수 호출 시 전달되는 데이터를 저장하는 변수  - 함수 안에서만 사용가능 함수 볼 차례

HTML

 HTML  - HyperText Markup Language 주석  - HTML <!-- 주석문 -->  - CSS /* 주석문 */  - Javascript, Java, JSP /* 주석문 */  // em  - 웹브라우저의 기본 폰트 크기(16px)을 1로 하는 단위  - 소수점 표현도 가능 <marquee>  - 문자나 그림을 움직이게 하는 태그          behavior               scroll : 일정한 방향으로 흐른다.(오른쪽에서 왼쪽으로 계속 흐름)                                       alternate : 문자가 좌우로 왕복                                       slide : 한번 반복 후 화면 끝에서 멈춤(오른쪽에서 와서 왼쪽에서 멈춤)          scrolldelay            스크롤 속도 지정 수치. 클수록 스크롤 속도 느려짐          scrollamount         스크롤 속도 지정 수치. 클수록 속도 커짐          bgcolor                 <marquee>태그가 움직이는 부분에 배경색을 지정한다.          width                     <marquee>태그가 움직이는 부분의 좌우 범위를 지정한다.          height                    <marquee>태그가 움직이는 부분의 위아래 범위를 지정          direction                스크롤 되는 방향을 정해준다. <div>  - static : div태그의 현재 코딩 위치서만 존재함. 이동성이 없기 때문에 top, left, z-index속성은 사용해도 효과가 없다.  - relative : div태그의 현재 코딩 위치를 0, 0으로 기준 삼고 top, left 속성 사용에 따라 div 태그를 위치시킨다. z-index 속성을