디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

어떡해 일기 2-14 :: 방학 중간 기록, java 프로젝트 오답노트.

어떡해갤로그로 이동합니다. 2010.08.14 22:29:14
조회 663 추천 0 댓글 5



방학이 이제 3주 남아있는 시점에서 잠깐 그동안 했던 일과, 공부했던 것을 정리해볼까 한다.

먼저, 방학초에 준비해두었던, 계획해두었던 교재들은 3권을 제외한 나머지는 무사히 마쳤다.

자료구조의 경우 중복되었던 책도 있었고, 또 한번 거쳐갔던 책들이었기 때문에 소화하기에는 무리가 없었고

때때로 내용 실습을 하면서 배운 내용을 잊어먹지 않기 위해 애썼다.

뇌자알과 C++ 그리고 임베디드 리눅스는 책을 살펴보긴 했지만 실상 공부를 시작하진 못했다.

현재 AVR 128을 입문 준비하고 있고, 키트로 임베디드 실습을 조금씩 실시하고 있는 상태인데,

아마 늦어도 다음주 월요일 부터는 C++교재를 시작할 수 있을 것 같다.

더불어 현재 자바학습 프로젝트로 진행하고 있는 Html 추출기 (프갤 검색하고 비슷한 기능을 하는)는 방학초에는 깔짝 깔짝 진행하다가

2주전부터 광적으로 코딩을 실시하고 있다.

하지만, 역시 노하우 부족과, 학습 부족으로 여러가지 점에서 에로사항을 많이 겪었다.

그것을 조금 정리해보자면.

12610C0E4C6692148A570B

처음 시도 시, 파서는 아무런 문제없이 끝을 낼 수 있었다.
초반 정규표현식의 사용에 대한 에로사항이 있었는데, 초반에 프로젝트를 들어가기전에 관련 문서를 수집했을 때
정리해놓은 정규표현식 작성법이라는 문서에 php와 java의 regex의 정규표현식이 섞여있었다.
문서가 잘못된 것인지, 내가 잘 이해를 못한 것인지는 모르겠지만
대표적으로 ^의 경우 php에서는 최초로 시작되는 문자로 처리를 하는데에 반해, java regex에서는 ^를 제외해야할 문자로 인식하고 있었다.
후에 다시 정규표현식을 정리하면서 이 문제는 해결되었다.

1562D40E4C669213946887

TCP/IP 코딩이 주로 유닉스 계열을 중심으로 작성이 되어 있는 덕분에 Windows 상태에서는
코딩하고 테스트하기 다소 까다로웠던 점도 있고, 평소 리눅스를 한번 써보고 싶었었기에 우분투 10.4를 설치하고
거기에 개발환경을 만들어 java 코딩 및 기타 언어 코딩을 즐겨하게 되었다.
그런데 이번에 JAVA 프로젝트를 진행하다 리눅스 환경에서 작성한 코드를 읽어들인 소스들의 한글 주석이 전부
깨지는 현상이 일어났다.
이는 윈도우에서 텍스트 인코딩을 MS-949 방식으로 하고 리눅스의 경우 UTF-8 방식으로 하기 때문인데
자바 프로젝트의 속성창을 확인하면 위의 텍스트 코드를 재 인코딩하는 설정이 마련이 되어 있다.
수정하고 적용을 하면 정상 출력이 되는 것을 확인 할 수 있으나, 나는 중간에 저장을 해버려서 주석을 전부 새로 달아버리게 됐다 ㅜㅜ

126C830E4C6692166A6923
C언어에서 while(1)을 통해 항상 루프를 돌게 한뒤, if를 통해 함수를 빠져나오는 데에 return;을 즐겨 사용했는데
어째서인지 위의 간단한 코드에서 자바 컴파일러는 return을 실시할 수 없다고 에러를 뿜었다.
확인해보니, return 뿐만아니라 while 블럭 밖에 위치하는 필드의 인스턴스 변수에도 접근이 불가능했다.
여러가지 방법을 알아보고 테스트해본 결과, java 컴파일러는 while(i<4)와 같이 조건이 달려있는 반복문에서는
return이 가능하도록 하는 것 같지만, while(true)와 같은 강제적 루프에서는 break;를 명시하지 않으면
컴파일 자체를 못하게 막는 듯함.

1657FA0E4C669217C242B2
졸라크네;;

이 경우는 내가 벙찐 상태에서 코딩했다는 것을 증명하는 것.
특정 클래스에서 객체를 생산하고, 그 해당 객체를 어레이 리스트에 삽입해서 생산 순서에 따라 접근하고 데이터를 추출 할 수있도록
작성을 했다고 생각했는데, 어째서인지 의도한 값이 나오지 않았다.
디버그를 한 결과, 아뿔사 레퍼런스 변수만 잔뜩 넣어두고 해당 레퍼런스들은 모두 힙의 한가지 객체만을 가리키도록 해놓음
나의 우둔함을 탓하며 새벽에 담배피러 가다가, 근처 아파트 경비아저씨한테 여기에서 담배피지 말라고 많이 혼났다.

14695B0E4C669216679485




초반 추출과 파싱을 하는 클래스를 설계시 1)과 같이 설계함.
A클래스의 경우 통상 수집을 하는 클래스, B의 클래스의 경우 DC와 같이 비슷한 기능이나 다소 차이가 있는 특성화 클래스로 설계함.
하지만, 중간에 이런 후잡한 설계가 어딨냐는 자기학대와 함께 공통기능을 뽑고, 후에 문제가 생기더라도 클래스 추가만으로 해결할 수 있는
2)와 같은 형태로 교정. 그러나 이것도 나중에 문제가 일어나서 최종적으로는 3)과 같은 형태로 인터페이스를 이용해 해당 객체를 다형성으로
접근할 수 있도록 설계하고, 클래스의 기능과 인스턴스변수 분배도 좀 더 고민을 많이 해서 했다.
말은 3)이지만 실제로는 한 21)쯤 되는 것 같음.


결론적으로 >
이번 방학은 과거에 유래없이 다소 알차게 보낸 것 같으나, 자바와 기타 언어 프로젝트를 수행하면서 역시 많이 모자라고,
또 생각하기 귀찮아 대책없이 코딩하다가 나중에 갈아엎은 소스만 30회를 넘겨가니 점차 지쳐가는 자신을 발견.
이에 대해서 생각할 점은 다소 코딩을 늦게 시작하더라도, 설계 부분은 이것저것을 잘 따져봐야한 다는 것.
특히 객체지향은 오버라이딩이나 오버로드 같은 이런 부분도 중요하지만, 더 중요한 것은 클래스와 클래스 간의 관계 라는 것.
하지만 과연 삽질은 지식의 샘터라고, 삽질을 하면 할수록 스스로도 뭔가 이것저것 따지는 경우가 늘어나 실력이 부쩍 늘고 있다는 것이 느껴진다.


오늘의 어떡해 일기 끄 ㅌ

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 어떤 상황이 닥쳐도 지갑 절대 안 열 것 같은 스타는? 운영자 24/05/20 - -
209987 광고 클릭 하라는데 [8] elwlwlwk갤로그로 이동합니다. 10.09.30 132 0
209986 디시망한다고 광고 열심히 클릭해도 [5] monoless갤로그로 이동합니다. 10.09.30 154 0
209985 DYNA LINUX 2.0 새로운 부트 스플래쉬 [5] 분당살람갤로그로 이동합니다. 10.09.30 114 0
209984 흑흑흑 ㅠㅜ 디씨야 ㅠㅜ [4] 유리한갤로그로 이동합니다. 10.09.30 103 0
209982 P-Town이는 CIA 취업 작전 잘 되 가냐? [3] 분당살람갤로그로 이동합니다. 10.09.30 82 0
209980 회사에다가 클래스 명세서를 달라고 해야하나??? [6] 넉넉한터갤로그로 이동합니다. 10.09.30 419 0
209979 으헣헣헣헣 (211.255) 10.09.30 30 0
209975 2012년의 비밀 [2] 뻘글산책(121.182) 10.09.30 133 0
209974 자바로 코드 내용을 그대로 출력하는 프로그램 만들기......도움 좀 ㅠ [4] 디터갤로그로 이동합니다. 10.09.30 163 0
209973 자바 왜 하나여 ㅁㅁ(116.44) 10.09.30 118 0
209972 DAO SERVICE VO UI에 대해 확실히 정리해줄분 [1] 쿄스케갤로그로 이동합니다. 10.09.30 152 0
209971 결과값 다시 -_- 동영상 업로드를 안했네 ㅋㅋㅋㅋ [4] 햏햏했갤로그로 이동합니다. 10.09.30 126 0
209969 횽들 자바에 대해 돠줄수있어요? [3] P-Town(24.4) 10.09.30 111 0
209968 역시 자바가 짱인거같애 [3] 고칼로리갤로그로 이동합니다. 10.09.30 168 0
209964 개인적으로 최근 작업한거 중에 제일 뿌듯한거... [4] 햏햏했갤로그로 이동합니다. 10.09.30 163 0
209963 2012년에 지구 멸망이잖아. [5] Gromit갤로그로 이동합니다. 10.09.30 166 0
209962 방금 출근했음여... [6] 햏햏했갤로그로 이동합니다. 10.09.30 100 0
209961 vs에서 채팅하면서 분업못함? [2] (116.44) 10.09.30 79 0
209960 걍 이번껀 평균까지만 해서 내야겠다 ㅜㅜ; [17] ㅁㄴㅇㄹ(124.50) 10.09.30 151 0
209959 아래 석차 물어본 시발새끼는 봅니다 [7] 물속의다이아갤로그로 이동합니다. 10.09.30 138 0
209958 이 씨발 새끼는 시장에 가보고 이런 소리하나? [21] rntjr갤로그로 이동합니다. 10.09.30 562 0
209957 UNIX 관련 ..... [17] 설마먹튀(210.103) 10.09.30 176 0
209956 학교과제가 왜이리 쉽냐 [3] (116.44) 10.09.30 108 0
209955 여기에 누가좀 석차좀 넣어줘 ㅜㅜ;; 13시간째 이러고있어 [13] ㄴㅁㄹ(124.50) 10.09.30 134 0
209953 제이쿼리 소트테이블 이사함. [2] ㄹㅇ(168.131) 10.09.30 69 0
209952 횽들 제가 요즘 안드로이드랑 아이폰을 하고 있는데.. 이건 아니다 싶어. [12] 초밥술사갤로그로 이동합니다. 10.09.30 144 0
209949 프갤을 떠나며 [6] 땡칠도사갤로그로 이동합니다. 10.09.30 176 0
209948 3idiots를 봤어 [8] Vita500갤로그로 이동합니다. 10.09.30 275 0
209947 니들 디지털 치매 라는말 들어봤나? [1] rntjr갤로그로 이동합니다. 10.09.30 149 0
209946 우호호오옹 어떡해갤로그로 이동합니다. 10.09.30 67 0
209944 유튜브 좋나요? [13] fguy(173.164) 10.09.30 179 0
209942 c뉴비 안갔으면 이거 바라 ㅇㅇ(221.138) 10.09.30 89 0
209941 c뉴비감? ㅇㅇ(221.138) 10.09.30 42 0
209938 아씨발 자고싶은데 ㅋㅋ 석차 못구하겠어 ㅋㅋ [6] ㅇㄴ(124.50) 10.09.30 115 0
209935 이렇게 석차 구하니까 무슨 이상한 숫자들만 뜨는뎅;; [1] ㅇㄴ(124.50) 10.09.30 57 0
209934 아이폰 어플 개발해본 님 있어?? [1] 갇ㅂ(203.250) 10.09.30 85 0
209933 아 석차 어케구해야될지 모르겠넹;; [4] ㅇㄴㅁㄹ(124.50) 10.09.30 77 0
209932 취직은되었으나 의욕살실 [38] 파리대왕(134.134) 10.09.30 305 0
209929 이 평균점수로 석차 구할라믄 어케 해야됨?? [3] ㅇㄴㅁㄹ(124.50) 10.09.30 96 0
209928 디씨질을 끊어야겠다. [7] 땡칠도사갤로그로 이동합니다. 10.09.30 143 0
209927 오 드디어 평균 구했다 ㅅㅂ ㅋㅋ ㅇㄴㅁㄹ(124.50) 10.09.30 53 0
209926 근데 아까 소수 합 구하는 글 [3] 김늅늅(218.153) 10.09.30 97 0
209925 밑에 놈은 봄니다 [3] 햏햏했갤로그로 이동합니다. 10.09.30 64 0
209924 으...으잌 (116.44) 10.09.30 53 0
209923 우리 학과 에이스라는 놈의 코드를 봤다 [6] (116.44) 10.09.30 272 0
209920 개발자 신입 나이 Maximum이 몇살이라고 보십니까? [6] Raison(116.45) 10.09.30 220 0
209919 게임 뭐 재미난거 없을까 ? [5] 김늅늅(218.153) 10.09.30 147 0
209918 170을 입력하면 1.70이 나오게 하는 가장 간단한 방법은 무엇일까요? [11] 알멘더호프(211.210) 10.09.30 172 0
209917 하..처음으로 내힘으로 프로그램하나 짜봣다 [5] ㅇㅇ(121.169) 10.09.30 91 0
209915 비쥬얼베이직6.0다운로드 [5] 이주성(122.34) 10.09.30 1047 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2