E-Commerce DEV DAY 참석 후기
금요일(12/7) 저녁 7시에 강남역 부근의 한국 과학 기술회관에서 GSEshop 개발팀이 진행한 E-Commerce DEV DAY에 참석했습니다. 웹개발자들의 노하우를 공유하는 좋은 기회인것 같아서 바쁜 업무에도 참가를 했습니다. 당근 좋은 기회였던 것 같습니다.
못 가신분들을 위해서 제가 요약한 부분을 공유합니다.
웹표준이냐 속도냐(UI개발자의 고뇌)
- UI개발자? - 개발과 디지안의 중간에서 필터링해주는 가교역할을 하는 직무자
- 속도 향상을 위한 방법
. id, class를 명확히 해 주석을 최소화해라
. 이미지 용량 보다는 개수를 줄여라
. 로딩시 부대적인 자바 스크립트는 뒤로 옮겨라(popup, onclick 등등)
. CSS, JS는 External File로 관리하여 캐싱되게 하라
. 템플릿(CSS)을 만들어서 재활용하라
- 웹 표준의 딜레마
. 개발 속도를 올리냐? 5%의 브라우져를 수용하느냐에 대한 기획과 개발의 합일이 있어야 하고 접근성과 속도의 딜레마는 고려되어야 함 <- 어디를 가나 직면하는 문제인데 개발자 독단적으로 판단하지 말고 기획자와 합의를 해서 대안을 선택하는게 중요할듯 보입니다.
GS이숍만의 RIA 개발활용팁과 노하우
- RIA(Rich Iternet Application) : 있어 보이는(화려한?) 클라이언트 기반의 인터페이스 <- 재밌는 표현이죠?
- GSeshop에서는 플래쉬나 Flex가 Ajax의 기반 도구도 사용을 했군요.
. Flash : 개발 생산성이 높고, 쉽고, 개발시간이 올라가고 파일 사이즈가 작음
. Flex : 개발 시간이 짧고, 기술의 교육이 필요하고 불필요한 콤포넌트가 있어 파일 용량이 큼
- Remote Data의 관리
. XML, JSON, FlashVar의 전송 데이터 포멧중 JSON, FlashVar을 혼용하여 최적화 함
- Ajax debug : outerHTML 사용(document.getElementByTagName("html")[0].outerHTML)
- javascript tips
. package형태로 자바스크립트 구성하여 Common.js의 비대화를 막고 가독성 높여 필요한 코드를 빨리 찾고 재사용성을 높이는게 가능
. Error발생해도 서비스에 영향이 없도록 자바 스크립트 테스트 적용
. OpenSource 기반의 javascript framework를 사용
. 성능을 위해서 Cache 적용(물론 Cache Release 전략도 같이 중요함)
Spring Framework 도입 사례
- 개발 생산성을 올리고 일관된 플랫폼을 통해 개발 품질 향상, 유지보수 비용 절감이라는 노력의 산물이 Spring Framework
- 프레임워크(프레임워크가 유저 코드를 호출하고 관리를 함) : 라이브러리(유저 코드가 라이브러리를 호출하고 관리함)
- GSechop에 적용 프레임워크 : SpringDAO(ORM은 사용안함), SpringMVC, Code Generator(XML생성 등의 개발 편의성을 위함), View Resolver(XML((Xstream)), RSS, Flash, JSON(Xstream)등 다양하게 사용함), 캐싱(Ehcache)라이브러리 사용
- 향후 ORM 등의 프레임워크 추가 예정
유지보수의 최적화를 위한 개발 및 관리 전략
- 기존 프로그램들의 문제점을 확인
. javascript와 JSP가 한몸이고 비즈니스 레이어와 프리젠테이션 레이어가 한몸이 되는 구조가 많음
. 테스트를 할 수 없는 구조(태스트를 할려면 따로 테스팅 코드를 만들어야함 <- 부가적 일이 늘어남 ^^)
. 프로젝트 환경이 언제나 그랬듯이 빠듯한 일정이 대부분임
- 해결 방안
. JSP와 Javascript의 분리(Javascript안에 JSP코드를 넣지 말고 파라미터등의 형태로 진입점에 삽입하도록 함)
. 비즈니스와 프리젠테이션을 기능별로 분리를 함
. 작은 개발 단위로 상세화 필요(변경 최소화, 영향 최소화, 가독성 향상을 위해)
. Lazy Loading기술 필요
웹 표준스펙 살펴보기 (명세서에 살고 명세서에 죽다)
- 우리가 프레임워크를 도입하고 성능을 향상하고 개발 생산성을 높이는 건 브라우져에 기능을 보여주기위한 일련의 과정임 <- 상당히 철학적인 냄새가 ^^
- HTTP1.1, Servlet 2.4, JSP2.0 등의 기본 스펙을 알 필요가 있음 <- 아마 대부분의 개발자는 스펙은 생각하지 않을 것 같네요
- 기본 스펙만 알면 Security요소라든가 APM툴의 기능 개발은 쉽게 응용이 가능함
쇼핑몰 컨설턴트가 바라본 쇼핑몰 트렌트
- 쇼핑 운영자들은 가난하다
- 대기업의 영역과 쇼호스트의 영역의 세분화가 필요함
- 궁극적인 목표는 고객에게 어필하는 가치를 만드는 것임
레거시 코드 관리 전략(남이 짠 코드 빨리 알아보기)
- Copy & Paste를 최소화 하자(이클립스 코드 네비게이션 활용, 상속 활용)
- Refactoring을 하자(중복 코드 삼진아웃제를 통해 중복성 제거 활동 - 깨진 창문 이론 부연 설명)
- 팀워크 기반의 업무환경을 만들자(코드 재사용을 위한 라이브러리화, SVN, CVS 활용, 코드 리뷰, 짝프로그래밍 도입)
웹개발자의 약한고리 SQL 뛰어넘기
- 수만개의 코드의 성능보다 1개의 SQL Query가 잘못되면 그 프로젝트는 실패를 불러온다는 중요한 격언(?)을 통해 중요성 강조
- 인덱스 활용성을 강조(인덱스를 타게하는 쿼리 필요)
- SQL 튜닝 방법 소개(Explan, Trace)
- 10g로 가면서 Cost-Based Optimiazer밖에 없어서 개발자의 쿼리 사용 중요성이 커짐
나름대로 Presentation Layer, Business Layer, Persistance Layer 그리고 백그라운드로 프로젝트 관리 분야까지 골고루 섹션으로 나누어 발표를 한 노력이 보입니다. 하나의 서비스를 만들기 위해서 꼭 필요한 파트들이죠.
좋은 세미나 고맙습니다.
그리고 또 한가지 중요한 사실은 자신의 지식을 가지고 있는 것보다 알려줌으로써 자신 뿐만아니라 제3자에게도 많은 도움이 된다는 것을 GSeshop분들은 아시는 것 같습니다.
GSeshop 홧팅!!!
못 가신분들을 위해서 제가 요약한 부분을 공유합니다.
웹표준이냐 속도냐(UI개발자의 고뇌)
- UI개발자? - 개발과 디지안의 중간에서 필터링해주는 가교역할을 하는 직무자
- 속도 향상을 위한 방법
. id, class를 명확히 해 주석을 최소화해라
. 이미지 용량 보다는 개수를 줄여라
. 로딩시 부대적인 자바 스크립트는 뒤로 옮겨라(popup, onclick 등등)
. CSS, JS는 External File로 관리하여 캐싱되게 하라
. 템플릿(CSS)을 만들어서 재활용하라
- 웹 표준의 딜레마
. 개발 속도를 올리냐? 5%의 브라우져를 수용하느냐에 대한 기획과 개발의 합일이 있어야 하고 접근성과 속도의 딜레마는 고려되어야 함 <- 어디를 가나 직면하는 문제인데 개발자 독단적으로 판단하지 말고 기획자와 합의를 해서 대안을 선택하는게 중요할듯 보입니다.
GS이숍만의 RIA 개발활용팁과 노하우
- RIA(Rich Iternet Application) : 있어 보이는(화려한?) 클라이언트 기반의 인터페이스 <- 재밌는 표현이죠?
- GSeshop에서는 플래쉬나 Flex가 Ajax의 기반 도구도 사용을 했군요.
. Flash : 개발 생산성이 높고, 쉽고, 개발시간이 올라가고 파일 사이즈가 작음
. Flex : 개발 시간이 짧고, 기술의 교육이 필요하고 불필요한 콤포넌트가 있어 파일 용량이 큼
- Remote Data의 관리
. XML, JSON, FlashVar의 전송 데이터 포멧중 JSON, FlashVar을 혼용하여 최적화 함
- Ajax debug : outerHTML 사용(document.getElementByTagName("html")[0].outerHTML)
- javascript tips
. package형태로 자바스크립트 구성하여 Common.js의 비대화를 막고 가독성 높여 필요한 코드를 빨리 찾고 재사용성을 높이는게 가능
. Error발생해도 서비스에 영향이 없도록 자바 스크립트 테스트 적용
. OpenSource 기반의 javascript framework를 사용
. 성능을 위해서 Cache 적용(물론 Cache Release 전략도 같이 중요함)
Spring Framework 도입 사례
- 개발 생산성을 올리고 일관된 플랫폼을 통해 개발 품질 향상, 유지보수 비용 절감이라는 노력의 산물이 Spring Framework
- 프레임워크(프레임워크가 유저 코드를 호출하고 관리를 함) : 라이브러리(유저 코드가 라이브러리를 호출하고 관리함)
- GSechop에 적용 프레임워크 : SpringDAO(ORM은 사용안함), SpringMVC, Code Generator(XML생성 등의 개발 편의성을 위함), View Resolver(XML((Xstream)), RSS, Flash, JSON(Xstream)등 다양하게 사용함), 캐싱(Ehcache)라이브러리 사용
- 향후 ORM 등의 프레임워크 추가 예정
유지보수의 최적화를 위한 개발 및 관리 전략
- 기존 프로그램들의 문제점을 확인
. javascript와 JSP가 한몸이고 비즈니스 레이어와 프리젠테이션 레이어가 한몸이 되는 구조가 많음
. 테스트를 할 수 없는 구조(태스트를 할려면 따로 테스팅 코드를 만들어야함 <- 부가적 일이 늘어남 ^^)
. 프로젝트 환경이 언제나 그랬듯이 빠듯한 일정이 대부분임
- 해결 방안
. JSP와 Javascript의 분리(Javascript안에 JSP코드를 넣지 말고 파라미터등의 형태로 진입점에 삽입하도록 함)
. 비즈니스와 프리젠테이션을 기능별로 분리를 함
. 작은 개발 단위로 상세화 필요(변경 최소화, 영향 최소화, 가독성 향상을 위해)
. Lazy Loading기술 필요
웹 표준스펙 살펴보기 (명세서에 살고 명세서에 죽다)
- 우리가 프레임워크를 도입하고 성능을 향상하고 개발 생산성을 높이는 건 브라우져에 기능을 보여주기위한 일련의 과정임 <- 상당히 철학적인 냄새가 ^^
- HTTP1.1, Servlet 2.4, JSP2.0 등의 기본 스펙을 알 필요가 있음 <- 아마 대부분의 개발자는 스펙은 생각하지 않을 것 같네요
- 기본 스펙만 알면 Security요소라든가 APM툴의 기능 개발은 쉽게 응용이 가능함
쇼핑몰 컨설턴트가 바라본 쇼핑몰 트렌트
- 쇼핑 운영자들은 가난하다
- 대기업의 영역과 쇼호스트의 영역의 세분화가 필요함
- 궁극적인 목표는 고객에게 어필하는 가치를 만드는 것임
레거시 코드 관리 전략(남이 짠 코드 빨리 알아보기)
- Copy & Paste를 최소화 하자(이클립스 코드 네비게이션 활용, 상속 활용)
- Refactoring을 하자(중복 코드 삼진아웃제를 통해 중복성 제거 활동 - 깨진 창문 이론 부연 설명)
- 팀워크 기반의 업무환경을 만들자(코드 재사용을 위한 라이브러리화, SVN, CVS 활용, 코드 리뷰, 짝프로그래밍 도입)
웹개발자의 약한고리 SQL 뛰어넘기
- 수만개의 코드의 성능보다 1개의 SQL Query가 잘못되면 그 프로젝트는 실패를 불러온다는 중요한 격언(?)을 통해 중요성 강조
- 인덱스 활용성을 강조(인덱스를 타게하는 쿼리 필요)
- SQL 튜닝 방법 소개(Explan, Trace)
- 10g로 가면서 Cost-Based Optimiazer밖에 없어서 개발자의 쿼리 사용 중요성이 커짐
나름대로 Presentation Layer, Business Layer, Persistance Layer 그리고 백그라운드로 프로젝트 관리 분야까지 골고루 섹션으로 나누어 발표를 한 노력이 보입니다. 하나의 서비스를 만들기 위해서 꼭 필요한 파트들이죠.
좋은 세미나 고맙습니다.
그리고 또 한가지 중요한 사실은 자신의 지식을 가지고 있는 것보다 알려줌으로써 자신 뿐만아니라 제3자에게도 많은 도움이 된다는 것을 GSeshop분들은 아시는 것 같습니다.
GSeshop 홧팅!!!








