본문 바로가기

2017/0921

[Java] 개념은 제대로 알고가자 - 객체지향 무엇인가 [객체지향이란 무엇인가]- 궁금해졌다. 클래스에 대해서 공부를 막 시작하는 와중에 객체지향에 대해서 난 설명할 수 있을까에 대해서 생각했다. 결론은 할 수 없었다. 객체지향에 대해서 정확히 알지도 못하면서 객체지향언어로 프로그래밍을 한다? 누군가 개발해놓은 것 따라하는 것은 가능하나 스스로 못할 것이다. 중요한 패러다임 자체도 이해하지못하면서 그 언어로 개발한다는 것은 장점을 활용하지않겠다는 것 혹은 흉내만 내고 사고 확장은 못한다는 것 그래서 객체지향에 대해서 알아보기로 했다. 이후에 syntax 공부를 해도 늦지않다고 생각했다. 한번 할 때 제대로 하자 한번에 모두 다 파악하기에는 힘들 것이지만 앞으로의 공부에 많은 도움이 될 것이라 생각했다. 아래의 이야기는 객체지향의 사실과 오해 라는 책 + 구글.. 2017. 9. 16.
[자료구조, 알고리즘] 리스트#4 - DoublyLinkedList [연결리스트]- 노드 간의 연결된 형태 : 실제로는 각각 따로 떨어져있음, 이어서 붙여놓음 [양방향 연결리스트 객체의 타입 설계]- 추가해! : 연결리스트에 데이터 노드를 추가(연결), 길이에 따라 다르게(0인 경우 1이상인 경우), 데이터를 받아서 데이터 노드에 넣기 - 첫번째로 가 : 현재 노드를 가장 첫번쨰 노드(헤드노드)로 - 다음번째로 가 : 현재 노드를 기준으로 다음노드로 이동 - 이전번째로 가 : 현재 노드를 기준으로 전 노드로 이동 - 삭제해 : 현재 선택된 노드를 삭제하는데, 선택된게 헤드인지, 중간인지, 마지막인지, 다음은 있는지 없는지 잘 따져서 노드 연결 끊이지않게 하기 - 선택된 노드를 줘 : 현재 선택되어진 노드를 리턴 - 개수 : 현재 양방향 연결리스트에 저장된 데이터가 몇개 .. 2017. 9. 15.
[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.
[자료구조, 알고리즘] 리스트#3 - js로 CircularLinkedList 구현, 자바로 생각해보기 [연결리스트]- 메모리 상에서는 떨어져있는 데이터 : 각각 연결하여 1열의 개념의 데이터 저장공간을 만듦- 핵심(1) node : 현재 데이터와 현재와 연결된 다음 데이터를 가리키는 주소를 함께 저장 - node -> data, next(2) node 간 어떻게 연결할 것인가, 연결되어져있는 node 탐색방법 - 연결 형태에 따라 단순/원형/양방향 연결리스트 나뉨 [원형 연결리스트]- 단순 연결리스트와 마찬가지로 단방향 : 역방향까지 지원하는 양방향 연결리스트는 다음 포스팅!- 처음 추가된 node와 마지막 node가 연결되어 원형을 띔 - 단순 연결리스트는 head -> tail node로 가기위해 tail에서 next node로 순차탐색=> 위의 그림처럼 head를 둬도 되지만, 원형 연결리스트의 특.. 2017. 9. 6.
[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.
[자료구조, 알고리즘] 리스트#2 - LinkedList 구현, syntax + develop tip [연결리스트 특징 및 구현할 때 생각해야할 것]- ArrayList는 배열(array)로 구현된 List, 연결리스트는 메모리에 동적으로 할당되는 데이터들을 하나의 리스트로 만듬- Node 인스턴스(object)를 동적으로 할당하되 하나의 리스트로 엮음 : LinkedList- 구현하면서 가장 중요하게 생각해야하는 것 : node간 연결방법, node를 순차적으로 탐색하는 방법 [자바스크립트로 LinkedList 구현하기(feat. 자바스크립트 프로토타입 기반 객체지향)]- node를 head로만 추가함=> head 와 tail 추가하는 방법을 구현하면됨=> 중간 node를 제어하는 방법도 생각해봅시다 : setRuleList 추가 - LinkedList 객체 : 추상화, private / public .. 2017. 9. 1.