개발
JSP란
JavaServer Pages, 동적 페이지를 작성하는데 사용하는 자바의 표준 기술로서 HTML응답을 생성하는데 필요한 기능을 제공하고 있다.더 정확히는 XML, JSON, 바이너리 등 파일등도 응답으로 생성할 수 있지만 주로 HTML생성 목적으로 사용한다. JSP를 이용해서 만든 프로그램을 실행하려면 톰캣이나 제티 또는 JBoss EAP와 같으 ㄴ서버 프로그램이 필요하다. 왜 사용하는가 ? CGI 처럼 사용되지만 자바 서블릿(Java Servlet) 서블릿이란 웹페이지를 동적으로 생성하기 위해 서버측 프로그램을 말한다. 이는 자바 언어를 기반으로 만들지며 웹 어플리케이션 서버 ( Web Application Sever ) 위에서 컴파일 되고 동작한다. JSP 와 서블릿 JSP 와 서블릿의 차이점은 결과..
URL
인터넷에서, 어느 사이트에 접속하기 위해서 입력해야 하는, 주소를 포함한 일련의 문자. 맨 앞에 `http://'를 입력하고 다음에 해당 사이트의 주소를 표시함. 프로토콜 : 웹브라우저가 서버와 내용을 주고 받을 때 사용할 규칙 이름 서버이름 : 웹페이지를 요청할 때 서버의 이름을 지정함, 도메인 이름이나 ip주소를 입력하면 됨. 경로 : 웹페이지의 상세 주소에 해당함. 웹페이지마다 다른 경로를 가짐 쿼리 문자열 : 추가로 서버에 보내는 데이터에 해당함 같은 경로라 하더라도 입력한 값에 따라 다른 결과를 보여줘야 할 대 쿼리 문자열을 사용한다.
자바 Object 클래스
기본적으로 아무런 상속을 받지 않으면 java.lang.Object 클래스를 확장한다. 자바에서 한번에 이중 상속을 받을 수 없지만, 여러 단계 상속을 받을 수 있다. 그러면 왜 Object 클래스의 상속을 받을까? 가장 큰 이유는 Object 클래스에 있는 메소드들을 통해서 클래스의 기본적인 행동을 정의할 수 있기 때문이다. 클래스는 이정도의 메소드는 정의되어 있어야 하고, 처리해줘야 한다. 는 것을 정의하는 작업이 필요하기 때문에 Object 클래스를 상속 받았다고 생각하면 된다. Object 클래스에서 제공하는 메소드들의 종류는? Object클래스에 선언되어 있는 메소드는 객체를 처리하기 위한 메소드와 쓰레드를 처리하기 위한 메소드로 나뉜다. 쓰레드는 프로그램이 실행되는 작은 단위 중 하나이다. 웹..
자바 상속
확장을 하면 부모 클래스에 선언되어 있는 public protected로 선언되어 있는 모든 변수와 메소드를 내가 갖고 있는 것처럼 사용할 수 있다. 즉 다른 패키지에 선언된 부모 클래스의 접근 제어자가 없거나 privat로 선언된 것들은 자식 클래스에서 사용할 수 없다. 하나를 제대로 만들어 놓고 그것에서 파생되는 것들을 조금씩 바꾸어 판매하면 사용자는 기호에 따라 여러 모델을 살 수 있을 것이다. 자바에서의 상속도 비슷한 개념이다. 상속과 생성자 부모 클래스에서는 기본 생성자를 만들어 놓는 것 이외에는 상속을 ㅜ이해서 아무런 작업을 할 필요는 없다 매개변수가 있는 생성자를 만들었을 때 기본 생성자는 자동으로 만들어지지 않는다. 부모 클래스에 매개변수가 없는 기본 생성자를 만든다. 자식 클래스에서 부모..
패키지와 접근 제어
자바 애플리케이션을 개발할 때 클래스들을 분류하지 않으면 이름이 중복되거나, 어떤 클래스가 어떤 일을 하는지 혼동되는일이 발생한다. 그래서 패키지가 존재한다. 패키지 이름은 모두 소문자로 지정, 약속이 되어 있고 99.9프로 자바 개발자들이 소문자로 선언하여 사용하고 있음 자바의 예약어를 절대 사용하면 안된다. import를 이용하여 다른 패키지에 접근하기 JDK5 부터는 import static이라는 것이 추가되었다. 이 import static은 static한 변수와 static 메소들를 사용하고자 할 때 용이하다. 만약 Package 클래스에 import한 동일한 이름의 static 변수나, static메소드가 자신의 클래스에 있으면, 자신의 클래스에 있는 static 변수나 메소드가 import ..
Serializable, NIO
생성한 객체를 파일로 저장할 일, 다른 서버에서 생성한 객체를 받을 일, 보낼일, 이럴 때 꼭필요한 것이 serializable 이다. 파일을 읽거나 쓰거나 보내거나 받도록 하려면 반드시 이 인터페이스를 구현해야한다. 이 인터페이스를 구현해야만 JVM 에서 해당 객체는 저장하거나 다른 서버로 전송할 수 있도록 해준다. ObjevctOutputStream 이라는 클래스를 사용하면 객체를 저장할 수 있다. ObjevcInputStream 은 객체를 읽을 수 있다. transient라는 예약어는 Serializable과 떨어질 수 없는 관계이다. 객체를 저장하거나 다른 JVM으로 보낼 때 , transient라는 예약어를 사용하여 선언한 변수는 Sereialiable의 대상에서 제외된다. 해당 객체를 생성한 ..
자바 참조 자료형
말그대로 나머지 다이다. 기본 자료형 8개를 제외한 나머지 타입은 모두 참조 자료형이다. 가장 큰 차이는 new를 사용해서 객체를 생성하는지 여부의 차이라고 보면 된다. (new없이 생성할 수 있는 유일한 참조자료형은 String 뿐) 기본 생성자는 이미 생성자가 선언되어있으면 생성되지 않는다. 자바에서 생성자는 왜 필요할까? 생성자는 자바 클래스의 객체를 생성하기 위해서 존쟇나다. 컴파일러가 생성자의 이름이 클래스와 동일해야 생성자로 인식하기 때문이다. DTO는 데이터 전송용 객체 VO 데이터 보관용 객체 VO가 DTO에 속하는 개념이라, DTO를 많이 사용한다. DTO를 만들어 두면, 메소드를 선언할 대 리턴타입은 한가지만 선언할 수 있다. 이와 같이 복합적인 데이터를 리턴하려면 String[]과 같..
자바 배열
한 변수에 여러 개의 값을 넣을 수 있는 것이 배열이다 배열의 기본값 기본 자료형 배열의 기본값은 각 자료형의 기본값과 동일하다. 지역변수의 경우에는 초기화를 하지 않으면 사용이 불가능하다고 얘기했다. 하지만 배열에서는 지역변수라고 할지라도 배열의 크기만 지정해주면 된다. 참고로 char 배열의 기본값은 \u0000 이며 화면에 출력할 대에는 한칸의 공백으로 보인다. boolean의 기본값은 false이다. 배열의 크기를 지정하여 배열 객체를 초기화만 하면 기본값이 지정되며, 참조 자료형 배열의 각각의 값은 각각의 값을 초기화 해줘야만 null이 되지 않음(String포함) static 배열은 클래스 객체를 생성할 때마다 배열을 새로 생성하지 않는다
지금한강은 iOS 첫 출시 회고
만드는데에는 얼마 걸리지 않았지만, 리젝받고 해결하는데 일주일 정도 소요 되었다. 안드로이드 출시하는 것에 비해 훨씬 까다로웠다. 현재 완전 MVP 형태라 다음 추가할 기능을 생각해 보았다. 카카오톡으로 공유하기 등 입소문을 빠르게 낼 수 있도록 해보는 것도 좋을것 같다. 광고를 추가해서 광고 수익을 얻어보는 것도 좋을것 같다. 카카오톡 오픈채팅방에서 홍보를 하였으나, 반응은 재각각이었다. 출시를 축하한다는 말도 있었고, 이렇게 간단한 앱을 만든것을 뭘 자랑이냐라는 반응도 있었다. (출시하고 일주일이 안되서 날씨 부분 29위를 달성했다 ㅎㅎ) +(수정 : 한달뒤에 8위를 달성했다. 생각보다 반응이 좋아 계속 업데이트를 해야하는데, 여력이 안되어 걱정이다.)
iOS 리젝 해결기 - 0
사이드 프로젝트를 진행하면서 1.0.0 최초 버전에서 총 리젝사유가 3개가 발생했다. 지침 2.1-필요한 정보 앱 검토를 완료하기를 기대하고 있지만 계속하려면 더 많은 정보가 필요합니다. 특히 앱에서 AppTrackingTransparency 프레임 워크를 사용하는 것으로 확인되었지만 관련 AppTrackingTransparency 권한 요청을 찾을 수 없습니다. 현재 AppTrackingTransparency를 구현할 필요는 없지만 앱에서 프레임 워크를 감지 할 때 구현이 가이드 라인을 준수하는지 확인합니다. 다음 단계 앱이 AppTrackingTransparency를 통합하는 경우 앱에서 AppTrackingTransparency 권한 요청을 찾을 수있는 위치를 지정하십시오. 앱이 AppTrackin..