전체 글

인생은 새옹지마
· DB/SQL
Count -> "case when 조건 then else end" 를 사용하면 조건인 것의 개수를 셀 수 있다. ANIMAL_TYPE 마다 개수가 몇 개인지 센다. IFNULL IFNULL() 을 사용하면 NAME의 값이 null 인 경우 표시 값을 설정할 수 있다. 리스트 JOIN https://zetawiki.com/wiki/MySQL_%ED%95%A9%EC%A7%91%ED%95%A9,_%EA%B5%90%EC%A7%91%ED%95%A9,_%EC%B0%A8%EC%A7%91%ED%95%A9,_%EB%8C%80%EC%B9%AD%EC%B0%A8 MySQL 합집합, 교집합, 차집합, 대칭차 - 제타위키 다음 문자열 포함... zetawiki.com 간략한 코드로 설명해놓은 페이지가 있어서 참고하면 좋을 것 ..
SOLID SRP : 단일 책임 원칙 (Single Responsibility Principle) OCP : 개방-폐쇄 원칙 (Open/Closed Principle) LSP : 리스코프 치환 원칙 (Liskov Substitution Principle) ISP : 인터페이스 분리 원칙 (Interface Segregation Principle) DIP : 의존관계 역전 원칙 (Dependency Inversion Principle) 단일 책임 원칙 (SRP) 한 클래스는 하나의 책임만 가져야 한다. -> 여기서 하나의 책임이라는 말이 애매한데, 문맥과 상황에 따라 클 수도 있고, 작을 수도 있다. 중요한 기준은 변경! 변경이 있을 때 파급 효과가 적으면 SRP를 잘 따른 것이라고 보면 된다. ex) U..
객체를 사용하는 두 가지 방법 첫 번째 그림은 A가 B와 C를 직접 생성해서 사용하는 것이므로 A가 갑이라고 할 수 있다. 두 번째 그림은 A가 B와 C에게 요청을 해서 받아온 것을 setter()나 construct()로 주입하기 때문에 A가 을, B와 C가 갑이라고 할 수 있다. A에서 B나 C, X, Y, Z 등의 클래스를 요청을 하면 IoC 컨테이너에서 이를 넘겨주는데 이때 IoC 컨테이너는 스프링이라고 할 수 있다. IoC는 Inversion of Control 인데, 갑과 을 관계 즉, 개발자와 프레임워크의 관계가 역전되었다는 의미이다. 개발자 입장에서는 객체의 제어권이 컨테이너에 넘어갔다고 할 수 있다. A가 B와 C를 생성하여 라이프사이클을 관리하게 되면 결합이 강해지기 때문에 관리하기가 ..
· BE/JSP
MySQL에 데이터 저장 이클립스로 만든 .jsp 파일로 "이름", "이메일" 정보를 입력할 수 있게 간단한 HTML 코드를 짠 뒤, "등록" 버튼으로 MySQL에 정보를 전송해 준다. 이벤트 등록 등록이름 : 주소 : # 등록 목록 입력된 항목들은 각각 username과 email 이라는 이름의 매개변수로 전달되고 request.getParameter()를 이용하여 값을 넘겨주면 된다. jdbctest.jsp 실행 화면 등록 버튼 클릭 후 MySQL select문 실행 후 잘 저장된 것을 확인할 수 있다. 이제 클라이언트 화면에 데이터를 출력해 보자. 등록 목록의 P 태그 이후에 삽입해주면 된다. 새로운 입력 후 등록 시 실행 화면 MySQL에 또한 잘 저장되었다. 요약 데이터 전송 1. jdbc_dr..
· BE/JSP
JDBC 데이터베이스의 종류가 매우 다양해서 개발에 어려움이 많지만, JDBC는 자바 애플리케이션에서 표준화된 방법으로 다양한 데이터베이스에 접속할 수 있도록 해주기 때문에 개발자는 JDBC 클래스 API만 알면 모든 데이터베이스에서 동작할 수 있는 애플리케이션을 개발할 수 있다. 이때 드라이버 관리자를 통해 드라이버만 교체해 주면 각기 다른 데이터베이스에 접속할 수 있다. JDBC API JDBC 프로그래밍은 자바에서 데이터베이스 연동 프로그램을 개발하는 것을 말한다. 기본적인 단계는 아래와 같다. 1단계 : JDBC 드라이버 로드 데이터베이스에 접속하려면 해당 데이터베이스의 JDBC 드라이버를 로드해야 한다. JDBC 드라이버를 로드하는 방법은 크게 두 가지가 있는데, jdbc.drivers 라는 시..
· BE/JSP
빈즈 (Beans) 빈즈는 특정한 일을 독립적으로 수행하는 컴포넌트를 의미한다. 컴포넌트란 다른 무언가를 만들기 위한 부품을 말한다. 컴포넌트는 각각 독립적인 기능이 있으며, 컴포넌트 조합을 통해 다양한 형태의 결과물을 만들 수 있다. 또한 각각의 모듈을 서로 조합하려면 규격화된 인터페이스가 있어야 한다. JSP 빈즈 JSP 빈즈는 JSP와 연동하려고 만들어진 컴포넌트 클래스를 말한다. JSP 빈즈는 컨테이너 위치하며, JSP에 데이터베이스 연동 등 프로그램적 요소를 모듈화할 수 있도록 도와준다. 데이터 처리와 공용화된 기능을 제공하기 때문에 빈즈를 잘 활용하면 프로그램의 중복을 줄이고 더욱 원활하게 유지, 보수할 수 있다. 엔터프라이즈 자바 빈즈 (EJB) EJB는 애플리케이션에서 비즈니스 로직을 구현..
· BE/JSP
서블릿(Servlet)이란? 서블릿은 자바 플랫폼에서 컴포넌트를 기반으로 하는 웹 애플리케이션을 개발할 때 사용하는 핵심 기술이다. JSP는 서블릿이라는 서버에 기반하는 웹 프로그래밍 기술로써, 내부적으로는 JSP가 서블릿 형태로 변환되어 실행된다. 서블릿을 모른다고 해서 JSP를 배울 수 없는 것은 아니지만 서블릿을 이용하면 웹 애플리케이션 확장이 용이해지고 독립적인 플랫폼으로 개발할 수 있다. 일반적인 장점 1. 자바를 기반으로 하므로 자바 API를 모두 이용할 수 있다. 2. 운영체제나 하드웨어에 영향을 받지 않으므로, 한 번 개발된 애플리케이션은 다양한 서버 환경에서도 실행할 수 있다. 3. 웹 애플리케이션에서 효율적인 자료 공유 방법을 제공한다. 4. 다양한 오픈소스 라이브러리와 개발도구를 활용..
· BE/JSP
JSP 전체 동작 과정 1. 웹 브라우저에서 URL을 입력한다. 2. DNS 서버로부터 입력한 URL을 변환한 IP 주소를 받는다. 3. 받은 IP 주소의 웹 서버 8080번 포트에 JSP 페이지를 요청한다. 4. 웹 서버가 요청 내용을 분석하고 서블릿 컨테이너에 요청을 넘겨 처리한다. 5. 화면에 보일 내용을 HTML 문서 형태로 웹 브라우저에 전송한다. JSP로 개발된 웹 프로그램이라 하더라도, 사용자에게 최종적으로 전달되는 컨텐츠는 HTML이어야 한다. 이와 같은 특징은 모든 웹 프로그램 기술에 동일하게 적용된다. 서블릿 컨테이너 내부 과정 JSP가 HTML과 같은 일반적인 텍스트 파일 구조인데 비해, 서블릿은 자바 소스로 작성된 클래스 파일 구조이다. 서블릿 컨테이너는 JSP 파일을 서블릿 소스로..
aodtns
맹의 코딩 기록장