* 안드로이드 에러 종류 : Error:Execution failed for task ':app:preDebugAndroidTestBuild'. * 안드로이드 에러 내용 : Error:Execution failed for task ':app:preDebugAndroidTestBuild'. > Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (27.1.1) differ. See https://d.android.com/r/tools/texst-apk-dependency-conflicts.html for details. ..
* Spring과 DB 연결 - Spring을 쓰기전 Dynamic Web Project로 DB 연동을 할때 반드시 써야할 코드들이 있는데, Spring을 사용하면 코드의 중복을 최소한으로 줄여줘서 가독성이 좋고 사용하기 간단하다. - 핵심코드만 남긴채 중복코드를 줄이는 방법으로 많이 사용되는 것은 Template method 패턴이다. * Mybatis란? - 객체지향 언어인 자바의 관계형 데이터 베이스 프로그래밍을 좀더 쉽게 사용할 수 있도록 도와주는 개발 프레임 워크이다. 즉, JDBC보다 더 쉽게 사용할수 있도록 개발되었다. - JDBC에서 처리하는 코드와 파라미터 설정 및 결과 매핑을 대신 해준다. JDBC 코드와 수동으로 셋팅하는 파라미터 결과 매핑을 제거해줘서 사용하기 편리하다. - 데이터베..
* Spring 이란?에 대한 포스팅 : http://jerryjerryjerry.tistory.com/62 * Spring 설치 방법 1. 첫번째 설치방법으로는 이클립스 안에서 STS 플러그인을 설치하는 방법이 있다. 2. 두번째 설치방법으로는 이클립스 기반으로 된 STS를 Spring 프레임 워크 사이트에서 설치하는 방법이 있다. - 필자는 2번째 방법을 추천한다. - 실제 스프링 개발에서 그냥 이클립스로 개발해도 되지만, 따로 STS를 사용하면 편하기 때문에 STS를 설치하는 법을 추천한다. - STS는 이클립스를 기반으로 만들어진 툴이고, 메이븐을 따로 설치할 필요가 없어 STS를 깔면 메이븐도 자동으로 설치된다. - Spring 프로젝트를 만들 때 여러가지 설정을 따로 해줄 필요 없이 원클릭만으..
* Maven - Spring 프레임 워크 기반의 프로젝트를 진행하려 spring에 대해서 알아보던 중 maven을 프로젝트에 추가해야 할 필요성을 느꼈다. 그럼 메이븐이란 무엇인가? - 프로젝트를 진행하게 되면 단순히 자신이 작성한 코드만으로 개발하는 것이 아니라 많은 라이브러리들을 활용해서 개발을 한다. 이때 라이브러리들의 수가 수십개가 넘는 일이 발생하곤 하는데, 라이브러리들이 많아지면 관리가 힘들어지게 된다. 이때 필요한게 메이븐이다. - 메이븐은 내가 사용할 라이브러리뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다. - 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 네트워크를 통해서 라이브러리들을 자동으로 다..
* Spring 이란? - JAVA의 웹 프레임워크로 JAVA 언어를 기반으로 사용한다. JAVA로 다양한 어플리케이션을 만들기 위한 프로그래밍 틀이라 할 수 있다. - 옛날에 비교하면 지금은 JAVA의 활용도가 높아졌고 따라서 프로젝트 규모도 커졌다. JAVA를 이용한 기술은 JSP, MyBatis, JPA 등 여러가지가 있는데 즉, 이 기술들이 프로젝트에 많이 쓰인다고 할 수 있다. Spring은 이 기술들을 더 편하게 사용하기 위해 만들어진 것이다. - 프로젝트를 진행하다 보면 아무리 분업을 해도 분명 중복되는 코드가 있기 마련이다. Spring은 이런 중복코드의 사용률을 줄여주고, 비즈니스 로직을 더 간단하게 해줄 수 있다. - Spring을 사용하면 다른 사람의 코드를 참조하여 쓰기 편리한데 이..
* JavaScript 뒤로가기 막기 로그아웃 하면 로그인 페이지로 이동하는데 로그인 페이지에서 뒤로가기를 눌렀을 때 로그아웃하기 전 메인화면으로 다시 돌아가면 보안상이나 홈페이지 운영에 타격을 줄 수 있다. 이런 경우를 대비하여 뒤로가기 버튼을 비활성화 시켜보자. 뒤로가기 버튼을 막는 방법은 여러가지가 있는데 그 중 하나를 소개해본다. 1 2 3 4 window.history.forward(); function noBack(){window.history.forward();} Colored by Color Scripter cs 이 코드와 1 cs 이 코드를 뒤로가지 말아야할 페이지에 넣어주면 한번 뒤로갔다가 다시 뒤로가기를 눌렀을 때 페이지로 돌아오게 된다. 스크립트 코드는 코드 밑에 적어주고, 위 함수..
* 웹 크롤링(Web Crawling)이란? 웹 크롤링이란 내가 방문한 사이트의 구성을 알아보고 싶을때 웹사이트의 구조를 복사해서 정보를 수집하는 것이다. 즉, 웹 표면 복사라고 생각하면 쉬울 것이다. 웹 크롤링 또는 스파이더링(Spidering)이라고도 부른다. 웹 크롤링을 했을때 장점은 링크 체크나 HTML 코드 검색을 빠르게 하여 웹 사이트 유지 관리 작업을 쉽게 할 수 있다는 점이다. 우리가 코드를 짜거나 분석할때 IDE(통합 개발 환경)을 사용하는 것처럼, 웹 크롤링을 할 때에도 쉽게 환경을 제공해주는 툴들이 존재한다. 오늘 포스팅에선 웹 크롤링을 할때 주로 사용하는 HTTrack이란 툴을 이용해 볼 것이다. HTTracke은 한국어 지원을 하지 않아 설치할 때 당황할 수 있는데 이 포스팅을 보..
* 태그 - forEach 태그는 배열, Collection 또는 Map에 저장되어 있는 값들을 순차적으로 처리할 때 사용한다. - java의 do-while 등을 대신해서 사용할 수 있다. - DB에서 리스트등을 가져와 순차적으로 출력하는 등 기존의 forEach문과 동일한 역할을 수행한다. * forEach 태그의 기본 형태 1 2 3 4 5 6 번호 : ${status.count} 이름 : ${item.name} 나이 : ${item.age} 주소 : ${item.addr} Colored by Color Scripter cs * forEach 태그 항목 속성 설명 항목 속성 설명 비고 var 사용할 변수명 필수 항목 items Collection 객체 (List, ArrayList, Map 등) b..
* 홈페이지에서 회원가입과 로그인을 해보자 1. 첫 로그인 폼 화면 2. 홈페이지에 회원가입을 합니다. 3. 회원가입한 정보가 db에 저장됩니다. 이때 세션에 id가 등록됩니다 4. 회원가입 후 로그인을 합니다. 5. 로그인 정보가 올바르면 main 화면으로 이동하고, 정보가 틀리면 정보를 다시 입력하라고 경고창이 뜹니다. 6. main 창에서 내 정보를 보러 페이지 이동을 한 뒤 내 정보만 받아와서 볼 수 있습니다. 7. 관리자 id는 admin 입니다. admin 계정으로 접속 했을때 회원가입한 모든 사람들의 정보를 볼 수 있습니다. 8. 관리자 모드 일때 회원들을 삭제가 가능합니다. 삭제 했을때 DB에 있는 데이터도 삭제 됩니다. 9. 개인 사용자 모드 일때 각 개인의 정보를 수정할 수 있습니다. ..