본문 바로가기

java40

[Java] 개념은 제대로 알고가자 - 객체지향 무엇인가 [객체지향이란 무엇인가]- 궁금해졌다. 클래스에 대해서 공부를 막 시작하는 와중에 객체지향에 대해서 난 설명할 수 있을까에 대해서 생각했다. 결론은 할 수 없었다. 객체지향에 대해서 정확히 알지도 못하면서 객체지향언어로 프로그래밍을 한다? 누군가 개발해놓은 것 따라하는 것은 가능하나 스스로 못할 것이다. 중요한 패러다임 자체도 이해하지못하면서 그 언어로 개발한다는 것은 장점을 활용하지않겠다는 것 혹은 흉내만 내고 사고 확장은 못한다는 것 그래서 객체지향에 대해서 알아보기로 했다. 이후에 syntax 공부를 해도 늦지않다고 생각했다. 한번 할 때 제대로 하자 한번에 모두 다 파악하기에는 힘들 것이지만 앞으로의 공부에 많은 도움이 될 것이라 생각했다. 아래의 이야기는 객체지향의 사실과 오해 라는 책 + 구글.. 2017. 9. 16.
[Java] 개념은 제대로 알고가자 - CGI, 서블릿 컨테이너(WAS) [CGI, 서블릿 컨테이너(WAS)](1) 웹어플리케이션 서버(WAS)- 웹서버 : 요청에 대한 정적인 리소스를 응답하는 목적으로 만들어진 서버(프로그램)- 웹어플리케이션 서버 : 동적인 처리를 하고 데이터를 웹서버로 리턴하는 목적으로 만든 서버- 동적인 처리가 필요할 떄 웹서버가 웹어플리케이션을 실행시켜 처리 후 결과를 리턴받아 정적인 문서에 붙여서 응답함=> 그런데! 웹서버와 웹어플리케이션이 서로 다른 언어, 체계로 만들어졌기때문에 데이터 주고 받기가 원활하지않음=> 그래서 나온게 CGI : 아래로 갑시다! (2) CGI(Common GateWay Interface)와 CGI 프로그램 그리고 서블릿컨테이너(WAS)- 웹서버와 웹어플리케이션서버 데이터를 주고받는 규칙 : 구현된 언어와 체계가 각각 다르.. 2017. 9. 14.
[Java] 서버 프로그래밍 - 특강으로 맛보기, 배운것과 앞으로 배워야할 것 #2 [미리 정리하기]- jsp 개념, 사용방법- jsp가 servlet 변환 -> .java- jsp / servlet 로딩타임- web.xml 존재- 쿠키, 세션- redirect 와 forward의 차이- jdbc를 사용하는 이유, mysql 외부 서버에 접속하기위해 필요한 것 [강의내용](1) 이클립스 다이나믹 웹어플리케이션 생성부터 - test 폴더 추가하기 : 패키지 생성까지- web.xml 생성 추가=> 웹 컨테이너에게 클라이언트가 요청한 URL 주소가 서블릿 요청임을 인식하고, 서블릿 클래스 위치를 알려주기위한 정보가 있는 파일=> URL과 매핑된 서블릿 클래스를 동적로딩 : 다음 포스팅에서 동적로딩부터 쓰레드 생성, 사이클까지 다룰 예정, 이번엔 jsp부터 살펴봄=> DD(Deployment .. 2017. 9. 14.
[Java] 서버 프로그래밍 - 특강으로 맛보기, 배운것과 앞으로 배워야할 것 #1 [나의 이야기부터](1) 참여 계기 : express보다 역할이 세세하게 쪼개져있고 개념, 구조만 익히기위해서 참여하게됨(2) 다 끝나고 난 뒤 : 개념, 구조 뿐만 아니라 팁, 더 넓은 범위의 개념, 추상적이던 것을 구체적으로 배우게 된 시간(3) 포스팅 구성3일 차 내용을 3번에 걸쳐 포스팅 할 예정, 그리고 개념, 구조 내용을 정리한 포스팅도 할 예정 : 하루 8시간 3일 동안 배우고 만들고 했음!서버 개념, 자바 프로그램 실행 기초, 프로토콜, 톰캣, 서블릿, jsp, 모델1, 모델2, 모델2 프론트 컨트롤러 패턴, 객체지향 개발 등 객체지향 : 자바 기본 공부하다가 객체지향 패러다임을 확실하게 알고싶어 객체지향의 사실과 오해라는 책을 읽고 있는 와중에 특강에서 듣게되면서 더욱 이해하게됨 앞으로 .. 2017. 9. 14.
[Java] 레퍼런스 타입, jvm 메모리 운영, 프로그램-프로세스-쓰레드 등 [들어가기에 앞서]- 기본적으로 필요한 개념까지 살펴봄 : JVM 메모리 구조, 프로그램 - 프로세스 - 쓰레드 - 이번 파트는 제대로 몰랐다는 생각이 강해서 구체적으로 내용 정리해봄 [자바의 데이터타입]- 프로그램 : 데이터를 처리함 - 데이터의 타입 (1) primitive type : 정수, 실수, 논리리터럴을 저장하는 타입(+ 관련 연산) => 변수에 실제 값을 저장 => 메모리 구조에서 스택 영역에 생성 (2) refrerence type : 객체의 주소값을 참조하는 타입(array, enum, class, interface) => 변수에 참조하는 객체의 주소값(메모리)을 저장 => 객체 주소값을 가지고 객체를 참조한다는 뜻 => 메모리 구조에서 힙 영역에 생성 : 아래 참고! => 변수 자체는.. 2017. 9. 7.
[Java] 제어문 - 조건, 반복 [제어문]- main() 함수의 흐름을 제어할 수 있는 수단 : 다양한 작업을 할 수 있지! - 종류 (1) 조건문 : if ~ else if ~ else , switch => switch: 상황(조건)이 4가지 이상일 때, 변수의 값에 따라 제어를 할 때 사용, break 필히 사용(안쓰면 다른 case로) => switch: char 타입도 처리할 수 있음, 영어 대소문자에 관계없이 똑같은 알파벳이라면 동일 처리 => switch: 정수타입(byte, short, char, int, long) + 정수값 산출 연산식 + String(java 1.7 추가) (2) 반복문 : for, while, do-while => for: 초기화 둘 이상, 증감식 둘 이상 있어도 됨( 쉼표(,)로 구분 ) => fo.. 2017. 9. 3.
[Java] 변수, 연산자 : 기본이지만 잘 모르면 에러의 근원 [앞으로 포스팅하는 내용] - 자바 기본 systax를 공부하고 중요한 부분만 포스팅할 것 : 알아둬야할 규칙, 자바 프로그래밍에 있어 꼭 알아둬야할 점 등 [Hello World 그리고 syntax] - 프로그래밍 언어 첫번째 실행 단계인 Hello World 띄우기 public class Hello{ public static void main(String[] args){ System.out.println("Hello World!"); }} => 클래스와 메서드 : 메서드는 단독으로 작성될 수 없고, 클래스 내부에 존재해야함 => 클래스명의 첫번째는 항상 대문자, 클래스명과 파일명은 일치해야함 => JVM이 기계어로 번역 후 실행시킬 때 main()을 찾아 실행함 : 이를 엔트리(Entry) 포인트라 .. 2017. 9. 2.
[Java] 자바 시작! - 왜? 자바 특징, JRE, JDK, JVM 살펴보기 [자바를 다시 하는 이유]- 일단 재밌다 : 내가 재밌어하고 하고 싶어하니깐 더 잘할 수 있을 것 같았음 - 처음 접한 언어가 자바- 다시 해보고 싶은 마음이 들었음 - 범용성 : 안드로이드 개발 뿐만 아니라 웹 등 여러 곳에서 사용할 수 있음 - 국내 다수의 기업에서 자바를 사용 - 이식성 : 동일한 코드 다른 곳에서 사용! - 자바스크립트에 대한 약간의 불만 : 디버깅, 지금은 컨텍스트, 변수객체, 스코프 등등 알고있어서 실수없이 잘하지만 그래도 찝찝함이… 똑 부러지는 언어를.. - 더 빠져보고 싶은 생각 - 그래서 시작! [자바의 특징]- 언어의 특징을 아는 것은 매우 굉장히 엄청 중요하다! (1) 오크(Oak) 라는 언어에서 부터 시작 : 가전제품에서 사용될 목적 (2) 이식성이 뛰어남 : 서로 .. 2017. 9. 1.
[Java] Stream - 이진데이터 파일 스트림 [FileOutputStream] - 바이트데이터 입력스트림(데이터입력 / 바이트(배열)스트림)- char형이 아닌 바이트데이터를 취급함- 1byte == 8bit, 1bit는 2진수(바이너리코드) : on/off, int 변수 1개 == 4byte, File데이터스트림 형태 == 바이너리코드- 데이터 형태만 다를 뿐 파일에 대한 데이터스트림 과정은 크게 같다. - 데이터 형태가 문자형태가 아니기때문에 텍스트에디터로 켜도 확인할 수 없다. 확인할 수 있는 방법은 FileInputStream을 활용하는 것 [메소드]- write(int) : int를 파라미터로 넘기면 바이너리로 데이터입력하는 메소드(1byte씩 스트림을 하기때문에 4byte인 int를 바이너리코드로 변환해서 넘김) - write(byte .. 2017. 1. 24.
[Java] Stream - 텍스트데이터 파일 스트림 [FileReader] - 텍스트파일의 텍스트(char형)읽기(데이터출력 / 문자스트림) [메소드] - read() :파일에 있는 문자 데이터를 한 자씩 읽어서 반환하는 메소드, 반환타입은 char가 아니라 int인데 char의 표현범위를 벗어난 다른정보도 리턴해서더이상 리턴 할 것이 없을 때에는 -1을 리턴하기 때문에 조건문에 명시해두면 무한반복을 멈출 수 있게할 것이다. - read(char[] arr) : 위의 메소드와는 다르게 스트림 데이터를 바로 반환하는 것이 아니라 파라미터로 받은 문자 배열에 저장함. 앞의 메소드와 똑같이 문자를 다읽었을 때에는 -1을 반환한다. 이 메소드를 사용하기위해서는 문자 배열을 미리 만들어둬야함 앞서 말했다시피 한 자 한 자씩 읽는 것은 매우 효율적이지 못한 것이다... 2017. 1. 24.