목록java (31)
CodeClover
Servlet / JSP 의 기본적인 흐름 Servlet : 컨트롤러의 역할이라고 생각하면 된다.JSP : view 페이지[ 흐름 ]1. 모든 요청은 컨트롤러에 필수적으로 요청되어야 함.2. 컨트롤러는 request 메소드의 값에 따라서 각각 다른 흐름을 갖는다. ● request 메소드값 - get : 비즈니스 로직 처리 후 view으로 forward ● request 메소드값 - post : 비즈니스 로직 처리 후 controller으로 redirect더보기* JSP 파일의 위치는 보통 /WEB-INF/views 폴더 아래에 위치하는 경우가 대부분이다.( why ? JSP 파일을 해당 위치에 위치하는 이유는 view 페이지를 직접 요청하지 못하게 해서 보안적 이점을 갖는다. )이때 해당 ..

객체 지향 프로그래밍이란 ? 프로그래밍에서 필요한 데이터를 추상화시켜서 상태와 행위를 가진 객체로 만들고 객체들간 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 객체 지향 프로그래밍의 특징으로는 크게 추상화, 캡슐화, 상속, 다형성 4가지로 나뉜다. ■ 추상화 ■ 상속: 상속이란, 기존의 클래스를 확장해서 새로운 클래스를 이끌어내는 것으로 기존 코드를 재사용해서 불필요한 코드를 재작성하는 번거로움 없이 새로운 클래스를 만드는 시간을 줄인다. JAVA에서 상속은 단일 상속만 가능하다. ( = 동시에 부모가 둘이 될 수 없다. ) 즉, 클래스가 다른 두 개 클래스를 동시에 상속 받을 수 없다.WHY ? 만약 단일 상속이 아니라 부모가 둘 이상인 경우 → 부모 모두 같은 이름의 메서드를 가지고 ..
배열배열은 데이터들의 순차적인 집합의 모음으로 변수를 여러개 선언해야 하는 불편함을 해소 할 수 있는 방법이다. 배열 선언 및 생성//배열 선언과 생성 따로 진행data_type[] arr; //배열 선언arr = new data_type[배열크기]; //배열 생성//배열의 선언과 생성 한번에 진행data_type[] arr = new data_type[배열크기];배열은 선언 → 생성을 진행 후 사용이 가능한데 배열의 선언과 생성은 위의 두가지 방식 선언과 생성을 따로 또는 함께 모두 가능하다. new : 생성 즉, 초기화 한다고 표현한다. ( 자바에서는 new 라는 메서드 키워드를 만나면 다른 작업 중단 후 초기화 및 생성부터 진행한다고 배열_데이터 추가 / 수정 / 삭제 / 삽입배열을 활용한 데이터..
자바 특징 1. 플랫폼 독립적 ( WORA = Write Once Run Anywhere ) 플랫폼 독립적이라는 말이 생소하고 어렵게 느껴질 수 있지만, 간단하게 표현하면 한번 작성한 코드 다양한 플랫폼과 운영 체제에서 실행 가능하다는 의미를 갖는다. ( → JVM이 설치되어 있으니까 가능한 특징이다. )2. 동적이다. 기억*클래스 파일 포멧 버전 오류 unsupported class file major version 64....이런식의 오류는 개발하고 있는 jdk 버전과 프로그램 jdk 버전이 맞지 않아서 발생하는 오류이다. jdk 혹은 java프로그램 툴 버전을 동일하게 맞춰서 재설치 후 실행하면 해결된다. ※ 인프런_기초부터 시작하는 자바 프로그래밍(자바전문자그룹) 강의 수강 후 정리한 내용..

조건문조건문은 프로그램의 흐름을 변경하기 위해서 필수적으로 필요한 구문이다. 대표적으로 ir문과 switch 구문이 있다.if문설정한 조건에 따라서 실행할 문장 선택해서 실행하는 대표적인 조건문 방식이다. 반드시 boolean형으로 true / fasle으로 결과값이 반환된다. if(조건식) { 실행할 내용}else if(조건식){ 실행할 내용}else{ 실행할 내용}기본적으로 위의 문법에 따라서 실행할 내용이 선택적으로 실행되며 Java에서는 else if 구문을 활용해서 다중 조건 처리 진행한다. ( python과 같은 언어에서는 elif 와 같은 문법 형식으로 다중 조건 처리가 가능하지만 Java에서는 반드시 else if 라고 작성해서 사용해야함 )■ 중첩 if문 : if - else 블록 안에 ..
DFS, BFS 문제 유형을 본격적으로 공부하기 전, 재귀 함수에 대한 구조적 이해를 먼저 정리해두고 싶어서 재귀함수 정리 글을 작성했습니다. 지난 글에서는 DFS 구조에서 재귀 함수가 어떻게 작동하는지를 스택 프레임을 통해 정리했다면, 이번에는 재귀함수를 직접 활용해볼 수 있는 대표적인 예제인 팩토리얼과 피보나치 수열을 비교해보며, 재귀 구조의 장점과 단점을 함께 정리해보려고 합니다.

https://www.acmicpc.net/problem/1268📌 문제 탐색하기각 학생이 다른 학생들 중 몇명과 같은 반을 한 적이 있는지 횟수를 구하는 문제이다. 📌 코드 설계하기 & 가능한 시간복잡도- 입력하기 ( 시간복잡도 : O(N) ) numberOfStudents 명을 입력받기 -> 각 학생별로 1학년 ~ 5학년 동안 어떤 반에 속했는지 classInfo 2차원 배열에 저장 - 비교 - count ++ ; ( 시간복잡도 : O(N^2) ) 각 학년별로 순회하면서 각 학년에 대해서 모든 학생의 쌍을 비교해서 같은반과 번호인 경우 true으로 저장 -> true인 학생의 수를 count하기 - 가장 친구수가 많은 학생을 찾아서 출력한다. ( 시간복잡도 : O(N) ) 따라서 가능한 최종 시..

https://www.acmicpc.net/problem/2810📌 문제 탐색하기혼자 앉는 일반좌석 S두 좌석이 하나의 팔걸이는 공유하는 LL 커플석커플석 LL의 경우 두 사람이 하나의 컵홀더를 공유하기 때문에 L 두개당 컵홀더 하나만 추가된다.좌석의 수, 정보의 입력값을 보고 해당 좌석들에서 이용 가능한 총 컵홀더의 개수를 출력하는 문제이다.📌 가능한 시간복잡도입력받은 좌석의 개수 N의 문자열 길이를 한번 순회하면서 일반좌석과 커플좌석을 구분하고 커프좌석이 나타나면 인덱스를 한번 더 넘기는 방식으로 진행한다. 각각 문자를 한번씩 확인하기 때문에 O(N) 이라고 생각함.따라서 가능한 시간복잡도는 O(N)입니다. 📌 코드 설계하기일반좌석은 좌우에 컵홀더가 하나씩 있고, 커플석은 두 좌석에 하나..