목록분류 전체보기 (424)
코딩항해기
팀 프로젝트 한 내용을 Docker로 배포 시도한다는 팀원이 있어 관련된 지식을 미리 확보해두기 위해 Docker를 찾아보게 되었다. 생각보다 간단한 내용은 아니어서 기초 내용만 확보해두고 발표가 완료된 뒤 추가 지식을 보완하기로 해 기초 지식 부분만 정리했다. DockerGo언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다. libcontainer 컨테이너를 사용한다.Docker를 사용하면 개발환경에 구애받지 않고 내가 사용하던 개발환경을 손쉽게 구축할 수 있다. 또한 일반적인 Hypervisor 가상화 방식과는 다르게 경량 가상화로 실행이 빨라 한 개의 서버만 있으면 여러 가지 서비스 실행이 가능해 서버 확장을 필요로 하지 않는 장점이 있다. 배포도 쉽고 수정도 쉽다. 리눅스가장 ..
Gradle2012년 출시된 Groovy를 기반으로 한 오픈소스 빌드 도구로 거의 모든 타입의 소프트웨어를 빌드할 수 있는 빌드 자동화 시스템이다. 빌드소스코드를 컴파일, 테스트, 정적분석 등을 실행해 실행 가능한 애플리케이션으로 만들어주는 과정 다양한 라이브러리가 등장하며 라이브러리를 다운로드 및 추가해야하는 문제, 버전관리 문제, 다운로드 받은 jar파일의 보완 위험 문제점이 부각되었다. 이런 문제를 해결하기 위한 도구로 빌드 도구가 생겨났다. 빌드 도구계속해서 늘어나는 라이브러리를 자동 추가 및 관리해주며 버전을 쉽게 동기화해준다. Gradle은 이러한 빌드 도구 중 하나로 빌드 과정을 편하게 해준다. GroovyJVM 상에서 실행되는 스크립트 언어로 Java와 유사한 문법 구조를 가지며, 호환성..
태그 사용처검색 엔진 인덱싱구글, 네이버 등에 검색을 하면 인터넷에서 정보를 크롤링해서 인덱싱하고 검색 결과를 사용자에게 응답한다. 이 때 meta 태그 설정에 따라 검색결과를 노출할지, 하지 않을지를 결정할 수도 있다. (robot => User-aget:* Disallow:) name과 content 속성을 통해 해당 페이지 정보에 대한 분류를 기입해 검색 시 세이프 서치에 걸리게 하거나 걸리지 않게 할 수도 있다. name 속성에 desctiption을 작성하고 content에 자동완성 원하는 값을 작성하면 자동완성을 이용할 수도 있다. PWA 이름 설정크롬에서 설치 가능한 경우 url창에 설치 아이콘이 뜨며 앱 설치를 진행할 수 있게 되는데 이를 PWA라고 한다. 이 때 어플 이름을 meta 태그..
SweetAlert2스위트 알랏은 기본 alert()창 대신 사용할 수 있는 예쁜 알림창 라이브러리다. 다양한 스타일과 애니메이션을 제공하며 커스터마이징이 가능한 것이 특징이다. 또한 Promise 기반으로 동작해 사용자 응답에 따른 후속 처리가 용이하다. SweetAlert2SweetAlert2 - a beautiful, responsive, customizable and accessible (WAI-ARIA) replacement for JavaScript's popup boxessweetalert2.github.io 환경 구성CDN(* Jsdelivr CDN 서비스) CSS JS 분리버전 jsDelivr - A free, fast, and reliable CDN for JS and Open..
부트스트랩 Bootstrap프론트엔드 개발을 빠르고 쉽게 할 수 있는 프레임워크이다. HTML, CSS 기반의 템플릿 양식, 버튼, 네비게이션 및 기타 페이지를 구성하는 요소를 포함하며, 자바스크립트를 선택적으로 확장할 수 있다. Git-hub의 오픈 소스로 사용 가능하며 상업적 이용이 가능하다. 부트스트랩은 서로 다른 인터페이스를 사용한 여러 개발자들이 공동 작업을 하다보니 디자인이 불일치하고 관리가 어려워져 일관성을 유지하기 어려운 문제를 개선하기 위해 탄생했다. 부트스트랩은 글자, 인용문, 목록, 표, 아이콘 등 자잘한 것 뿐만 아니라 드롭다운, 버튼, 탭 등 웹 페이지에서 많이 쓰이는 요소를 대부분 내장하고 있어 재사용과 일관성을 유지하기 용이하다. 브라우저에 Bootstrap template 키..
이관, 파트 별, 연결작업 별 작업 파트 정리 (노란색이 작업 진행한 파트) [작업한 파트]이관작업Oracle -> MySQLStore, StoreWork DAO 쿼리문 변경(MySQL) 개인 : 테이블 이관 및 기존 데이터 이관 DAO 고도화 (JDBCTemplate)BoardCategory DAO Controller (JSP기반 -> Spring)게시글, 메인, 가게, 댓글, 상품, 관리자, 신고 Controller 이관 Util페이지네이션 Util 이관 파트분배 (MVC 중 C파트)Controller게시글, 메인, 가게, 댓글, 관리자, 신고, 이미지, 좋아요 Controller 공통기능 (횡단 관심사)Filter, AOP (전부) Util파일 Util 쿠키 Util 연결 작업Member : 로그인..
콜백 함수 Callback function콜백함 수는 다른 함수에 매개변수로 넘겨준 함수를 말한다. 함수를 명시적으로 호출하는 방식이 아니라 특정 이벤트가 발생했을 때 시스템에 의해 호출된다. 콜백 지옥 Callback Hell 콜백 지옥은 JavaScript를 이용한 비동기 프로그래밍시 발생하는 문제로서, 함수의 매개 변수로 넘겨지는 콜백 함수가 반복되어 코드의 중첩 깊이가 깊어지는 현상을 말한다. 이 경우 가독성이 떨어지고 유지보수에 어려움이 생기게 된다. 콜백 지옥 해결방법외부로 분리콜백 함수를 외부로 분리해 비동기 작업 결과를 처리하는 콜백 함수를 따로 정의해 사용하면 코드 가독성을 높일 수 있다. (피라미드가 생기지 않는다.) Promise 활용 [JS] PromisePromise Promis..
Promise Promise - JavaScript | MDNPromise 객체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냅니다.developer.mozilla.org 자바스크립트의 비동기 처리를 위한 하나의 패턴으로 콜백 함수를 사용한다. 하지만 전통적인 콜백 패턴은 콜백 헬로 인해 가독성이 좋지않다. 또한 발생한 에러의 처리가 곤란하며, 여러 개의 비동기를 한 번에 처리하는데도 어려움이 있다. 이러한 문제를 개선하기 위해 Promise가 도입됐으며, 단점을 보완하고 비동기처리 시점을 명확하게 표현한다. Promise 생성Promise는 생성자 함수를 통해 사용되며, 비동기 작업을 수행할 콜백 함수 resolve와 reject를 인자로 전달받느다.(resolve 성공 시 수행..
팀 프로젝트 git 관리 방식 최종 프로젝트에서는 git을 사용해 코드를 관리했는데, 크게 공개용(배포용) 브랜치와 개발 브랜치로 분리해 작업을 진행했다.개개인의 작업은 이슈를 생성해 해당 이슈 브랜치에서 작업을 하며, 작업 완료된 코드는 PR과 코드리뷰를 거쳐 개발 브랜치에 모두 모이게 된다. 개발 브랜치에 모인 코드는 검증을 통해 오류를 찾고, 연결 및 수정을 이슈 브랜치에서 진행해 다시 수정을 반영하며 진행된다. 개발이 모두 완료되면 최종 브랜치로 PR과 코드리뷰를 거치고 관리자 승인을 통해 코드가 업로드되면 최종 프로젝트가 완성된다. 해당 방식의 장점은 개발이 별도의 브랜치에서 이뤄지기 때문에 공개되는 브랜치까지 개발 중인 코드가 바로 전달되지 않아 (이미 서비스 제공 중인 프로젝트라면) 서비스 ..
이전 페이지로 이동하는 방법은 history를 사용하는 방법으로 간단하게 구현할 수 있지만 정말 순수하게 이전 페이지를 보여주는 것이기 때문에 데이터에 변동이 있을 경우 해당 내용이 반영되지 않는다. 이 때 Referer를 통해 Refererhtttp 헤더 중에 하나로 Referer 헤더는 사람들이 어디로부터 와서 방문 중인지를 인식할 수 있도록 해주며 해당 데이터는 예를 들어, 분석, 로깅, 혹은 캐싱 최적화에 사용될 수 있다. referer를 참조해 현재 표시하는 웹페이지가 어떤 웹페이지에서 요청되었는지 알 수 있다. Referer - HTTP | MDNReferer 요청 헤더는 현재 요청을 보낸 페이지의 절대 혹은 부분 주소를 포함합니다. 만약 링크를 타고 들어왔다면 해당 링크를 포함하고 있는 ..