
Gradle은 JAVA 개발에 엄청난 도움을 주는 강력한 Build Tool이지만 생소한 groovy 문법과 설정 파일, 사용방법 때문에 오히려 신입 개발자 들을 헷갈리게 하기도 합니다. 다행인 점은 gradle 을 사용하기 위한 학습 곡선이 높지 않고 대부분의 팀에서 gradle을 어렵게 사용하지 않는다는 점입니다. 이 포스트에서는 웹 개발에 필요한 최소한의 gradle 지식을 알아 보도록 하겠습니다. Build Tool Gradle 은 일종의 build tool(빌드 도구) 입니다. 여기서 말하는 빌드라는 개념은 단순히 프로그램을 컴파일하여 애플리케이션을 생성하는 작업만을 의미하지는 않습니다. 개발한 소프트웨어가 제품으로 만들어지는 일련의 과정, 즉, 컴파일, 테스트, 배포, 문서화 등의 작업을 포함..

이전에 서블릿 보안과 관련된 포스트(링크)를 작성했던 적이 있습니다. 서블릿 기반의 웹 애플리케이션에서 인증과 인가 과정을 간단하게 설명했습니다. 스프링에서는 마찬가지로 이런 인증과 권한등 보안에 관한 기능을 제공하는 프레임워크인 스프링 시큐리티(Spring Security)가 있습니다. 스프링 시큐리티는 보안과 관련되어 수행해야 하는 다양한 작업들을 지원해 줍니다. 하지만 저와 같은 신입 개발자들이 스프링 시큐리티와 같은 보안기술을 이해하는 것은 쉬운 일이 아닌 것 같습니다. 여전히 모르는 것이 더 많고 어렵게 느껴지는 부분이지만, 최근 진행한 팀 프로젝트에서 스프링 시큐리티와 관련된 기술을 쓰며 알게된 사실들과 코드를 포스팅해 보려고 합니다. 인증(Authentication)과 권한(Authoriza..
1. standard html/xml comments 표준 html/xml 주석( )은 thymeleaf templates 어디서나 사용가능하다. 이 주석 안에 어떤 것이 들어가더라도 백엔드에서나 프론트엔드에서 실제로 수행 되지 않는다. 단순히 결과에 그대로 복사될 뿐이다. 2. Thymeleaf parser-level comment blocks parser-level comment block들은 thymeleaf가 문서를 파싱할 때 템플릿에서 제거되는 코드를 의미한다. thymeleaf는 이 블록 안에 있는 모든 것들을 완전하게 제거한다. 3. Thymeleaf prototype-only comment blocks thymeleaf에는 템플릿이 static하게 보여질 때만 주석이 되는 특별한 주석 블록..
오늘의 미션, 만약 view 단에서 보여줘야 하는 데이터가 없으면(아마도 DB에서 삭제된 경우) 프론트단에 데이터를 보여주는 div 태그를 없애야 한다. 아 그야 식은 죽 먹기죠. data가 null인지 아닌지 판단해서 null이 아닐 때만 보여주면 되는거 아니겠습니까 아래 코드처럼요. ... 그런데 문제가 하나 더 있네요. 만약 null 값이 아니라 빈 문자열이 들어온다면 어떻게 해야 하죠? 그럼 코드가 이런식이 되어야 할 것 같은데... ... 데이터가 null 일수도 있고 빈 문자열일 수도 있을 때도 있다면 조건문을 두 개 써야 겠군요. 그런데 그냥 컨트롤러에서 처리해서 넘겨준다면 조금 더 편할 것 같습니다. if (examData.isEmpty()) { model.addAttribute("exam..
코드에 상수를 남기는 것은 좋지 않다. 그 상수가 무엇을 의미하는지 쉽게 이해하기 힘들 뿐더러 그 상수 값 하나를 바꾸기 위해 수천라인의 코드를 한 줄 한 줄 다 뒤져야 할 수도 있다. 이것은 HTML 안에서도 마찬가지이다. 아래와 같은 코드가 있다고 해 보자. make popup 버튼 태그 onclick 속성을 보면 클릭했을 때 makeNewPopup이라는 함수를 호출하고 있다. 그런데 파라미터로 전달되는 상수 1이 의미하는 것은 무엇일까? 이 코드만 봐서는 도무지 알 수가 없다. 이 상수를 생성되는 popup의 타입이라고 생각해보자. 이 상수를 조금 더 가독성 있게 표현할 수 있는 한 가지 방법은 자바스크립트의 전역변수로 선언을 해 놓고 사용하는 것이다. ... make popup 이렇게 하면 생성되..

스프링이 제공하는 거의 모든 기본 사상은 몇 가지 기초적인 개념으로 귀결되며, 이는 스프링의 기본 임무인 '자바개발 간소화'에 모든 초점을 맞춘다. 물론 특정 기능을 간소화 하는 프레임 워크는 많이 존재 한다. 하지만 스프링의 목적은 자 바개발을 폭넓게 간소화 하는 데 있다. 자바 복잡도 간소화를 위한 스프링의 네 가지 주요 전략 POJO를 이용한 가볍고(lightweight) 비침투적(non-invasive)인 개발* DI와 인터페이스 지향(interface orientation)을 통한 느슨한 결합도(loose coupling) 애스펙트와 공통 규약을 통한 선언적(declarative) 프로그래밍 애스펙트와 템플릿(template)을 통한 반복적인 코드 제거 * 비침투적 개발은 바탕이 되는 기술을 사..
그레이들(gradle) 이란? 그레이들(Gradle)은 그루비(Groovy)를 기반으로 하는 빌드 시스템 또는 빌드 도구이다. 지금은 앤트(Ant)나 메이븐(Maven)이 많이 사용되지만, 유연함과 더불어 스크립트 기반의 처리 구조로 빌드 시스템의 세계에서 강력함을 지니고 탄생한 그레이들은 2007년부터 오픈소스 소프트웨어로 시작하여 짧은 역사에도 주목받는 빌드 도구로 성장했다. 2013년 구글에서 안드로이드 애플리케이션 개발에 사용되는 공식 빌드 도구로 그레이들을 채택하는 등 앞으로 더욱 발전하여 강력한 빌드 도구가 될 것이다. 아직까지는 메이븐의 아성을 뛰어넘지 못하고 있지만 무서운 성장세를 고려해 봤을때 조만간 배우지 않으면 안될 빌드툴이 될 것이다. 오늘은 gradle로 기본적인 자바 프로젝트를 ..
- Total
- Today
- Yesterday
- Spring in Action
- 디자인패턴
- html
- 유지보수
- GROUP BY
- DP
- 자바스크립트개론
- 코딩의 기술
- CONVENTIONS
- 로그
- 마르코프
- Count
- 클린코드
- 전략패턴
- markov chain
- Markov
- 야근
- RESTful
- REST API
- 자바스크립트 개론
- 문장 생성기
- java
- Warning
- was
- 동적계획법
- 경고
- 크롬
- 몰라서망신
- 마르코프 연쇄
- restful api
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |