- Maven이란 무엇인가? Java 기반 프로젝트의 라이프사이클 관리를 위한 빌드 관리 도구. 아파치 재단에서 제작. > 컴파일과 빌드를 동시에 수행 > 서버 측 Deploy 자원을 관리할 수 있는 환경 제공 > 라이브러리 관리가 용이: 라이브러리를 사용할 때 jar 파일을 다운로드받아서 특정 폴더에 넣는 식이 아니라, 설정 파일에 라이브러리 이름/주소를 써주면 알아서 그걸 가져오는 기능이 있다. 전에도 얼핏 들어본 적은 있고 특히 3번째 특징을 보면 생각나는게 안드로이드 스튜디오의 Gradle이다. 안드로이드 스튜디오에서도 라이브러리를 쓰고 싶으면 build.gradle 파일에다가 dependency 어쩌구를 추가해주면 그걸 Gradle이 인식해서 import해주는 기능이 있었다. 실제로 Gradle..

최근에 포스트잇에 매일 그날 할 일들의 리스트를 적어서 벽에 붙여두면 뭔가 목표의식이 좀 더 뚜렷해지고 동기부여가 되지 않을까, 라는 생각을 해서 그렇게 하고 있긴 한데 아무래도 직접 글씨를 쓰는 건 귀찮기도 하고 그냥 해야할 일의 리스트를 적어둔 것 뿐이라 동기부여는 별로 되지 않더라. 시작한지 3일만에 써놓은 일을 미루게 되었다. 그래서 생각난게 이걸 대신할 앱을 만들자는 것이다. 물론 to-do list 관리할 수 있는 앱이야 앱스토어 가면 널려있겠지만, 동기부여를 위해서 '게임 같은' 기능을 좀 넣어보면 어떨까라는 생각을 했다. 운동을 하려고 해도 그냥 운동에는 아무래도 흥미가 안붙어서 펌프 같은 게임으로 대체하는게 나다. - to-do list에 일을 추가하면 거기에 경험치가 일정량 붙고, 그 ..
SQL은 이미 어느정도 아는 내용이기도 하고 얼마 전에 정처기 공부하면서 리뷰하기도 했었으니 대충 슥 보고 넘어가면 될 것 같다. 2-7. MySQL 설치 및 세팅 - 내 컴퓨터에는 이미 WAMP 스택이 깔려있었기 때문에 그거 깔면서 같이 설치됐을 MySQL을 그대로 써먹으면 될거라 생각 - wampstack/mysql/bin 폴더를 환경변수에 추가 - MySQL 로그인: 콘솔창에서 'mysql -u root -p' > -u는 아이디를 주는 부분이고 -p는 패스워드를 입력하겠다는 뜻. 패스워드는 WAMP 깔때 세팅했던 그거 > 아이디를 지정해주지 않고 그냥 mysql이라고만 치면 접근 거부 오류가 뜬다 2-8. SQL - 사용자 계정 생성 및 권한 주기 grant all privileges on (DB명..
1) EL: Expression Language - 값을 표현하는데 사용되는 스크립트 언어로 JSP의 기본 문법을 보완하는 역할을 함 > JSP에는 HTML도 들어가고, 자바 코드도 들어가고 막 섞여있음. 프론트 개발자와 백엔드 개발자 모두가 읽기 편하게 할 수는 없을까? 라는 고민에서 출발. - EL의 기능 > JSP의 스코프에 맞는 속성 사용 > 집합 객체에 대한 접근법 제공 > 수치연산, 관계연산, 논리연산자 제공 > 자바 메소드를 호출할 수 있는 기능 제공 > EL만의 기본 객체 제공: pageContext, pageScope, requestScope, param, header, cookie, ... - 기본 문법: ${exp} ex) ${member.id}님이 로그인하셨습니다. ex) ${par..

Page Scope -> Request Scope -> Session Scope -> Application Scope 뒤로 갈수록 범위가 넓어짐. 1) Page Scope: 한 페이지에서만 유지, 지역변수처럼 사용 - PageContext라는 추상 클래스 사용 - PageContext라는 JSP 내장 객체가 있음 - 한 페이지 내에서만 유지되는 것이므로 forward로 다른 페이지로 넘어가면 소멸됨 - 지역변수처럼 사용하지만 지역변수와 완전히 같은 것은 아님 (나중에 EL, JSTL을 배우면 안다?) - pageContext.setAttribute() / getAttribute() 로 저장했다가 뺐다가 하면 됨 (다른 scope들도 다 비슷함) 2) Request Scope: 하나의 Request를 받아..
1) redirect - 서버가 클라이언트로 요청을 받은 후, 클라이언트에게 특정 URL로 이동하라고 요청할 수 있음 - 서버 -> 클라이언트: HTTP 상태코드 302, 이동할 URL을 헤더에 담아 전송 - 클라이언트: 서버로부터 받은 상태값이 302이면, 헤더값을 보고 해당 Location으로 이동 (즉 해당 페이지를 자동 요청) - response 객체의 sendRedirect() 메서드를 이용하면 됨 - 크롬 개발자 도구의 Network 탭으로 가보면 302 응답코드를 확인할 수 있다 - 리다이렉트 대상 페이지를 다시 요청할 때는 또 새로운 request, response 객체가 생성된다 2) forward Client ->(request) -> Servlet 1 -> (forward) -> Se..

1) JSP 기초 - MS에서 만든 ASP의 대항마로 1999년에 썬에서 발표 - WebContent 폴더 안에 넣으면 됨 - 기본적으로 HTML 안에 (스크립트릿) 라는 영역으로 JSP 코드임을 표시함 > _jspService() 라는 메서드 안에 JSP 파일의 내용이 자바 코드로 변환되어 들어가있는걸 볼 수 있음 > HTML 코드는 out.write, 표현식은 out.print, 스크립트릿 영역은 그냥 들어가있음 - JSP 실행순서 (1) 브라우저가 웹서버에 JSP에 대한 요청 정보를 전달 (2) 브라우저가 요청한 JSP가 최초로 요청되었을 경우, > 서블릿으로 코드가 변환됨 (.java 파일 생성) > 서블릿 코드를 컴파일해서 실행가능한 바이트코드로 변환함 (.class 파일 생성) > 서블릿 클래..
1) 자바스크립트 기초 - 자바스크립트 버전은 ECMAScript (이크마스크립트라고 읽음) 버전에 따라 결정되며 2018년 기준 표준은 ES6 - 변수 선언: var, let, const (let랑 const는 ES6에 와서 추가됐다) > const는 한번 할당한 값에 재할당할 수 없음 - 연산자: if문 사용을 줄일 수 있는 테크닉들 const name = "aaa"; const myname = name || "default"; // 참고: JS에서 false인 것 = null, undefined, 공백문자 등 const data = 123; const result = (data > 100) ? "ok" : "fail"; > JS에서는 비교연산자 == 대신 ===를 많이 사용함. 그냥 ==는 타입을 ..

1-4. 개발환경 세팅 및 준비 - 환경 세팅 > JRE/JDK 설치 (이미 설치되어 있었음) > Eclipse for Java EE 설치: 자바 웹개발을 위한 플러그인들이 같이 들어있음 > Preference에서 에디터, HTML/CSS/JSP 파일들에 대한 인코딩을 UTF-8로 세팅 > Apache Tomcat 설치. JAVA_HOME 환경변수 세팅 제대로 되어있는지 확인 - 테스트 > 자바 프로젝트 생성 > Package Explorer에는 src라는 폴더밖에 안보이지만 실제로는 .project, bin 등 여러 폴더가 더 만들어진다. src에 파일을 만들고 컴파일하면 bin 폴더 안에 .class 파일이 생성됨 > 자바 웹 프로그래밍을 위해 Java EE Perspective로 넘어가서 Dynam..

1) CSS 선언방법 - CSS의 구성 > 선택자 (Selector) > 속성 (Property) > 값 (Value) ex) span { color: red; } 선택자: span, 속성: color, 값: red - CSS를 HTML에 적용하는 3가지 방법 > inline: HTML 태그 안에 직접 넣는 방법. > internal: head 부분에 로 CSS 영역을 선언하고 그 안에 쓰는 방법. 별도의 CSS 파일을 서버에서 받아올 필요가 없다 > external: 별도의 CSS파일을 만들어서 link로 연결해주는 방법. CSS코드가 짧지 않은 경우 일반적으로 가장 많이 쓰임 2) 상속과 우선순위 - CSS의 상속: 상위 태그에 적용된 스타일은 그 안에 있는 하위 태그에도 같이 적용됨 - 단 배치 관..