1. MVC 패턴이란? - 정의애플리케이션을 개발할 때 사용하는 디자인 패턴애플리케이션의 개발 영역을 Model, View, Controller로 구분하여 각 역할에 맞게 코드를 작성하는 개발 방식 - 장점UI 영역과 도메인(비즈니스 로직) 영역으로 구분되어 서로에게 영향을 주지 않으면서 개발과 유지보수가 가능함 - 구조Model 모델애플리케이션의 정보(데이터)를 나타냄웹 애플리케이션이 클라이언트의 요청을 전달받으면 요청 사항을 처리하기 위한 작업을 하는데,이때 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터를 모델이라고 함View 뷰텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소모델을 이용하여 웹 브라우저와 같은 애플리케이션의 화면에 보이는 리소스를 제공스프링 MVC에 포함된 Vi..
전체 글
혜+개발+아기 혹은 혜+발아기. 응애 웹 개발자java.sql.ConnectionConnection 인터페이스는 데이터베이스와 네트워크 상의 연결을 의미함실제 구현 클래스는 JDBC 드라이버 파일 내부의 클래스Connection은 반드시 close() 해야 함: 연결이 종료되지 않으면 새로운 연결을 받을 수 없음try ~ catch ~ finally를 이용해서 종료하거나 try-with-resource 방식(자동으로 close()가 호출됨)을 이용함 java.sql.Statement/PreparedStatementJDBC에서 SQL을 데이터베이스로 보내기 위해 Statement/PrepareStatement 타입을 이용함Statement: SQL문 내부에 모든 데이터를 같이 전송PreparedStatement: SQL문을 미리 전달하고 나중에 데이터..
1. 살충제 패러독스의 개념에 관해서 서술하시오.더보기[정답]살충제 패러독스는 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못한다는 테스트 원리이다.[해설] 소프트웨어 테스트 원리원리설명테스팅은 결함이존재함을밝히는 것- 결함이 존재함을 밝히는 활동- 결함이 없다는 것을 증명할 수는 없음- 결함을 줄이는 활동완벽한 테스팅은불가능- 완벽하게 테스팅하려는 시도는 불필요한 시간과 자원 낭비- 무한 경로(한 프로그램 내의 내부조건은 무수히 많을 수 있음), 무한 입력값(입력이 가질 수 있는 모든 값의 조합이 무수히 많음)으로 인한 테스트 어려움개발 초기에테스팅 시작- 조기 테스트 설계 시 장점: 테스팅 결과를 단시간에 알 수 있고, 테스팅 기간 단축, 재작업을 줄여 개발 기간 단축 및 결함 예..
SQL이란? Structed Query Language 관계 데이터베이스에서 사용되는 대표적인 언어 SQL의 종류에는 정의어, 조작어, 제어어가 있다. 1. SQL 정의어(DDL) Data Definition Language 정의 : 관계 데이터베이스에서 사용될 테이블, 스키마, 도메인, 인덱스, 뷰 등을 정의(생성)하거나 수정, 제거하기 위해 사용되는 언어 종류 CREATE ALTER DROP - CREATE 1) 테이블 정의 CREATE TABLE 테이블_이름( 속성_이름 데이터_타입 [NOT NULL], PRIMARY KEY(속성_이름), UNIQUE(속성_이름), FOREIGN KEY(속성_이름) REFFERENCES 참조테이블_이름(속성_이름) ON DELETE CASCADE | SET NULL..
파이썬은 문제를 풀고 나니 심각성을 알게 되었다. 기존에 하던 자바와 다른 점이 너무 많다.. 1. 실행 결과 x = input() y = x.capitalize() y = x.split() print(y[0][::2], end = '*') print(y[1][3:6]) # 입력: Python programming 더보기 답: Pto*gra capitalize()는 문자열의 첫 글자는 대문자로, 나머지는 소문자로 변환한다. 따라서 y = x.capitalize()에서 y는 Python Programming이 된다. split()을 통해서는 공백 기준으로 y에 배열 형태로 저장한다. y[0]에는 Python이, y[1]에는 Programming이 저장된다. y[0][::2]는 Python이라는 문자열을 처..
1. 슬라이싱 변수[시작:끝:몇씩 건너 뛸 건지] 주의해야 할 점은 끝은 포함하지 않는다는 것이다. a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] a[:7:2] 위와 같이 구현된 프로그램의 실행 결과는 [0, 20, 40, 60]이다. 시작부분에 아무것도 적지 않으면 처음부터 잘라내기 시작한다는 뜻이고, 끝에 7이라고 되어 있으므로 7번째 수 전까지 잘라낸다는 뜻이다. 마지막에 있는 2는 두 칸씩 건너뛴다는 의미이다. a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] a[2:6] 배열은 시작이 0번째부터이다. 따라서 위의 실행결과는 2번째인 숫자 20부터 6번째인 숫자 60 전까지를 잘라낸다. 건너뛰는 부분이 생략되면 그냥 한 칸씩 뛰어 센다는..
1. JPA(Query Method) 쿼리 메소드 사용하려는 Repository에 JpaRepository만 상속해주면 스프링 AOP 기능을 사용해 구현까지 자동으로 해준다.간단한 문법으로 객체의 CRUD가 가능하다.형태: find + ("객체") + By + "변수"사용 예시Board findById(Integer Id)// -> id를 사용해서 해당하는 게시글을 가져온다.List findByTitle(String title)// -> title 변수명을 사용해서 해당하는 모든 게시글을 가져온다.장점개발자가 사용하기 쉽도록 자동으로 쿼리를 만들어줌기본(Hibernate)으로 쿼리를 자동 생성함단점쿼리 작성에 유연하지 않음복잡한 조건을 사용하려면 메소드의 길이가 증가함매핑하여 사용하므로 DB에 직접적으로..
1. 컴포넌트 스캔이란? 스프링이 스프링 Bean으로 등록될 준비가 된 클래스들을 스캔하여 Bean으로 등록해주는 과정 자바에서 스프링 빈을 등록하기 위해 @Bean을 사용해야 하지만, 하나하나 등록하는 게 번거로울 때 컴포넌트 스캔을 통해 스프링 빈을 등록함 @Component 어노테이션이 붙어있는 클래스들은 전부 컴포넌트 스캔의 대상이 됨 @Configuration, @Service, @Repository, @Controller 등의 어노테이션에도 전부 @Component가 포함되어 있어 자동으로 컴포넌트 스캔의 대상이 됨 2. 탐색 방법 및 기본 스캔 대상 - 탐색 방법 1) servlet-context.xml 해당 태그를 사용해 패키지 이름을 지정하면, 애플리케이션 실행 시 해당 패키지에서 어노테..
파이썬의 for문 구조가 자바 for문의 구조와 조금 달라서 정리를 해보려고 한다. 1. for문의 기본 구조 for 변수 in 리스트(또는 튜플, 문자열): 수행할_문장1 수행할_문장2 ... 자바의 향상된 for문과 비슷하다. 리스트나 튜플, 문자열의 첫 번째 요소부터 마지막 요소까지 차례대로 변수에 대입해 '수행할_문장1', '수행할_문장2' 등이 수행된다. 2. 예제 - 전형적인 for문 test_list = ['one', 'two', 'three'] for i in text_list: print(i) # 수행 결과 # one # two # three 리스트의 첫 요소인 one이 먼저 i 변수에 대입된 후 print(i) 문장을 수행한다. 다음에 두 번째 요소 two가 i 변수에 대입된 후 pri..
1회15번) 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)#include main() { struct insa { char name[10]; int age; }a[] = {"Kim", 28, "Lee", 38, "Park", 42, "Choi", 31}; struct insa* p; p = a; p++; printf("%s\n", p->name); printf("%d\n", p->age);}더보기답: Lee38 2회2회-16번) 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 출력하시오.)#include main() { int res = ..