BACK TO THE BASIC!현재 웹 개발을 하고 있는 사람으로써 기초가 부족하다는 생각을 많이 했습니다.그래서 회사 내에서 스터디를 진행하고 있습니다. 책은 바로 '최범균' 님의 JSP2.2 웹프로그래밍입니다. 오늘 스터디 중에서 별거 아닌데 궁금한 게 있어서 공유합니다.과연 웹 애플리케이션에서 application 객체의 범위는 어떻게 될까요? 책 163p 아래에서 두번째 줄에 "jsp나 서블릿에서 하나의 웹 어플리케이션은 하나의 디렉토리에 매핑된다"고 한것 처럼 서로 다른 jsp에 있는 애플리케이션 객체는 다를까요? 아니면 책 189p 아래에서 두번째 줄에 있는 “모든 jsp는 한개의 애플리케이션 객체를 공유한다”는 말처럼 모든 jsp의 애플리케이션 객체는 같을까요? 테스트 해보았습니다. 우선,..
CharSet이 EUC-KR인 서버가 있습니다. 클라이언트에서는 jQuery를 이용하여 Form을 다루려고 합니다. myForm이라는 데이터를 전송하는 폼이 있습니다.그 폼의 input 벨류들을 모두 jQuery의 .serialize()를 통해서 직렬화하고(문자열로 만들고) 보내면 좋을것 같습니다. 그래서 아래처럼 함수를 작성했습니다. var myForm = jQuery('#myForm'); jQuery.ajax({ type : myForm.attr('method'), url : '/reimaginer/FormManager.ym', data : myForm.serialize(), success : function (res) { if(res === 'SUCCESS') { alert('등록되었습니다.'); ..
이번에는 웹 프로젝트를 진행했습니다. 상품리스트를 가져와서 그려주면 되는 간단한 프로젝트였지만, 3가지 영역에 광고 상품이 있어서 신경쓸 필요가 있었죠.이번 프로젝트를 진행하면서도 실수가 있었고, 그 실수들을 정리해보고자 합니다. 1. 지운줄 알았던 코드광고는 보통 해당 광고가 없을 경우에 '대체로직' 이 있습니다. 이번 프로젝트에서 그 대체로직의 변경이 있었습니다. 기존의 로직 변경된 로직 - 해당 광고- 대체로직 1 : 수동 입력 광고- 대체로직 2 : 정렬 순서 상위 상품 - 해당 광고- 대체로직 1 : A 광고- 대체로직 2 : 정렬 순서 상위 상품 기존에는 대체로직이 도메인(DAO, Service) 쪽에 존재해서 저도 그 곳에 수정을 했습니다. 그런데 사정 상 그 로직을 Controller(Ac..
배포 후 문제가 발생했습니다. 문제 : 검색을 했는데 내가 보낸 키워드가 아닌 이상한 키워드로 검색이 된다. 원인 : Controller에서 자주 쓰이는 변수들을 클래스 변수(attribute)로 선언했는데 그게 critcal section이 되어서 여러 개의 쓰레드들이 그 변수들의 값을 변경하고 검색 작업의 무결성(동기화)이 깨졌다 . 해결책 : 검색 정보를 담은 value object를 새로 만들고 매소드 안에 지역변수로 선언하여 사용한다. 이번에 저는 검색 Controller의 500라인이나 되는 방대한 검색 메소드를 리펙토링 했습니다. 메소드를 추출해내고 자주 쓰이는 변수들은 클래스 변수로 만들었습니다. 그리고 메소드가 호출될 때마다 클래스 변수 초기화 메소드를 호출할 수 있도록 했습니다. 그런데..
오늘은 XPER 모임이 있는 날입니다. 그런데 프로젝트 때문에 참여하지 못했네요. 너무 아쉽습니다. 그래도 배포하기전 저의 문제에 대해서 정리를 좀 해보고 싶었습니다. 이번 프로젝트를 통해서 부족한 점이 많이 드러났기 때문입니다. 1. 기술적인 문제 - 인코딩 / 디코딩 지식 부족 - 앱 스킴 (app Scheme) ??? - 자바스크립트 인라인으로 onclick function 삽입과 addEventListener를 이용한 function 삽입에 대한 차이. - 자바스크립트 setTimeout의 의미 - Exception을 어디에서 Catch할지에 대한 결정 - 우리 배포 툴 사용법 - WEB VIEW 란 무엇인가 2. 태도의 문제 - 기획서를 자세하게 보지 않는다. (근데 너무 복잡해 ㅠㅠ) - 일의..
자꾸 안하면 까먹습니다. 예전에 작업을 하면서 자바스크립트 파일만 인코딩을 UTP-8로 바꾼적이 있습니다. 그렇게 설정해 해 놓고 javaScript 개발을 계속 했습니다. 그런데 이번에 다른 프로젝트를 진행하면서 체크 아웃 받은 자바스크립트 파일들은 이클립스(윈도우) 인코딩인 MS949였습니다. 그래서 한글이 계속 깨졌습니다. 왜 그럴까 하고 프로젝트 인코딩도 바꾸고 이클립스 전체 인코딩도 바꿨지만 계속 안보이는 겁니다. 결국에 선임 매니저님께 여쭤봤더니 각 파일별로 인코딩을 변경하는 법을 가르쳐 주셨습니다. 사실 처음에 자바스크립트 파일 인코딩 바꿀 때에도 알려주신 방법이었습니다. window > preference > General > Content Types 로 들어가 보면 각 Content(파일..
클린 코더스 강의 12. SOLID Foundation 정리 1. The Source Code is the Design소스 코드가 디자인이다. 질문 : 엔지니어가 생산하는 것은 무엇인가?대답 : 엔지니어는 프로덕트를 만들기 위한 문서를 만든다.(Engineers produce documents.) 질문 : 소프트웨어 공학의 결과물은 무엇인가?대답 : 소스코드이다.소스코드는 프로덕트를 만들기 위한 문서(documents)이며 소스 코드를 빌드해서 실행하는 바이너리 코드가 프로덕트이다. -> 즉 소스 코드는 설계(Design)이다. 기존의 산업(건물, 회로, 기계 등)에서는 설계 비용이 저렴하며 설계 이후 생산 중에는 수정이 거의 불가능하다. ex) 건물이 지어지고 나서 건물의 외관을 바꾸기 굉장히 어렵다...
클린 코더스 강의 7. TDD 정리 TDD 실습1. TDD 의 세가지 법칙- Failing test code 가 있을 때만 production code를 작성해라.- 실패를 나타낼 수 있는 충분한(적당한) 테스트만 작성해라.- 실패하는 테스트가 있으면 성공하는 만큼의 production code를 작성하라. 2. TDD 절차A. 실패 테스트 코드 작성 (RED)B. 테스트 코드를 패스하는 코드 작성 (GREEN)C. 리펙토링(중복제거) (BLUE)D. A, B, C 반복E. 실패를 나타낼 충분한 코드를 작성했다면 종료 3. 원칙 & 팁- 가장 간단하고 흥미롭고 수준이하의(degenerate) 쉬운거 부터 제일 먼저한다.- Little golf game : 최소한의 프로덕션 코드로 테스트를 통과해라.- 테..
회사에서 아침마다 모여서 백명석님의 클린 코더스 강의를 보기로 했습니다.오늘은 첫번째, 소개 및 OOP에 대한 강의 였습니다. 기억에 남는 것만 기록해 두려고 합니다. 나중에 더 찾아보려고요. 1. 객체(Object)는 역할(Role)을 가진다. 그리고 역할은 책임(Responsibility)의 집합이다.2. 다른 클래스가 가진 속성으로 판단하지 마라. (캡슐화) -> 내장을 보여주지 말아라.3. Command Vs Query4. 구현 상속 -> extends -> 복잡해 질 수 있다.5. 인터페이스 상속 -> interface -> 진짜 재사용6. Dependency Injection7. 구현 상세에 빠져서 상위 수준의 설계를 놓치지 말자! PS. 저희 팀의 선임 매니저님이 정말 강력추천해주신 책입니다..
저희 퍼실리테이터 10기가 준비하는 첫 모임이 다음 주 수요일에 진행됩니다. 그래서 준비차 27일 일요일 6시에 쿠팡에서 만났습니다.간단히 저녁을 먹고 여러가지 이슈들을 정리했습니다.첫번째로 참여 인원에 대한 이슈들을 정리했습니다. 인기가 너무 많아서 인원을 수용가능 최대 인원으로 추가 수정하였으며 입금하신 대기자 분들을 참여자로 변경했습니다.두번째로 회비를 어떻게 사용할지에 대해서 결정하였으며 기념품 제작에 대해서도 논의했습니다.세번째로 앞으로 모임의 주제에 대해서 선정하였습니다. 이전에 xper에서 진행했던 재미있었던 주제들도 재선정했으며 또 저희 퍼실리테이터 10기가 해보고 싶은 주제도 선정하였습니다. 저의 경우에는 클린코드, BDD, 코드 가독성 극대화 등의 개발적인 주제를 많이 제안했습니다. 나..
저는 5월 달 중순부터 인턴사원에서 정직원이 되었습니다. 그리고 이건 제가 인턴 시절에 정리해본 자료입니다. joinc.co.kr의 많은 도움을 받아 작성했습니다. 거의 따라 치면서 이해를 했다고 해야할까요... 마지막에는 웹 서비스의 흐름에 대해서도 그림으로 표현해 보았습니다. 조금 이상하다 싶으시면 댓글을 달아주세요. 감사합니다. [참조] http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Network_Programing/AdvancedComm/HTTPhttp://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/cookie ● HTTP 정리 1. HTTP란HTTP(Hypertext Transfer Protocol)는..
[위 사진은 아래의 글과 전혀 상관이 없습니다.] 지난번 d2fest에 제 아이디어가 선정되어 네이버 본사에 가서 d2fest와 요비에 관한 설명을 들으러 간 적이 있습니다. 그 때는 제가 채수원님의 TDD 책을 조금 맛을 보던 시절이었습니다. 발표자에 낯익은 이름이 있길래 봤더니 채수원님이셨습니다. 모든 행사가 끝나고 쫓아가 반가운 마음에 책을 잘 (맛)보고 있으며 혹시 TDD에 대해서 같이 연구하는 커뮤니티가 있냐고 여쭤보았습니다. 그래서 저는 Xper에 대해서 알게 되었습니다. 가입하고 한 동안 눈팅만 하다가 드디어 어제 xper 정기모임에 참석하게 되었습니다. 도착하니 때마침 채수원님께서 발표중이셨습니다. 애자일 팀과 리더에 대한 말씀을 들어보니, 인간적으로 가까운 팀이 되는 것도 굉장히 중요하다..
- Total
- Today
- Yesterday
- Docker
- rest
- 컨테이너
- spring
- ChatGPT
- ES6
- spring boot
- AWS
- 개발자
- hands-on
- 사누르
- 발리
- 객체지향
- sanur
- ecma6
- AWSKRUG
- 한달살기
- 독후감
- 도커
- 웹을 지탱하는 기술
- Clean code
- springboot
- Bali
- html
- 실수노트
- S68
- 웹
- javascript
- container
- 회고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |