JAVA/자바 2019. 11. 6. 14:42

팀원들이랑 기존의 파리바게뜨 홈페이지를 MV2패턴으로 재설계해보았습니다.

 

미니 프로젝트1 - JSP를 이용하여 MVC2 패턴으로 홈페이지 재구성

제작 날짜 : 7월 1일 ~ 7월 8일

주제 선정 : 파리바게뜨 홈페이지 재구성해보기

 

주제 선정 이유

- 자바를 배운 지 별로 안되었을 때, 이것저것 해보고 싶어서 다양한 게시판이 있는 홈페이지를 골랐습니다.

 

프로젝트 명 : MVC2 파리바게뜨 홈페이지

 

문제점 : 팀원 모두 코딩을 배운 지 1개월도 안되었을 때라 역할분담이 제대로 나눠지지 않았습니다.

해결방법 : 시간을 갈아넣기..... (이 프로젝트 기간동안 새벽 2시 전에 집에 가본 적이 없었습니다.)

 

맡았던 역할

- 관리자 페이지(제품)

   - 제품 제거

   - 제품 추가

   - 제품 검색

   - 제품 분류

- 마이페이지 중 일부

   - 회원 탈퇴

 

시연 영상

https://youtu.be/GmAzvs6g3ns

 

posted by 스노(Snow)
:
JAVA/자바 2019. 6. 23. 10:57

이진 탐색이란 오름차순으로 정렬되어 있는 배열에서 특정한 값의 위치를 찾아내는 알고리즘이다.

배열의 중간에 있는 임의의 값을 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하여, 중간 값보다 작으면 좌측의 데이터들을 대상으로, 중간 값보다 크면 우측의 데이터를 대상으로 다시 탐색하여, 해당 값을 찾을 때까지 이 과정을 반복한다.

 

오름차순으로 정렬된 리스트에서만 사용 가능한 단점이 있지만, 속도가 빠르다는 장점이 있다.

 

오름차순으로 정렬하는 방법

https://sno-machinelearning.tistory.com/16

 

Arrays.binarySearch(배열 이름, 찾고자 하는 값);

 

[예제 결과]

 

[예제 코드]

import java.util.*;

public class Solution {
private static int[] arr = {5,7,6,1,3,9,0,12,100};

public static void main(String[] args) {
Arrays.sort(arr);
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
System.out.println();
int a = Arrays.binarySearch(arr, 6);
int b = Arrays.binarySearch(arr, 12);
System.out.print("배열에서의 6과 12의 위치 : ");
System.out.println(a +", "+ b);
}
}

posted by 스노(Snow)
:
JAVA/자바 2019. 6. 23. 09:53

Arrays.copyOfRange() 는 특정 배열의 원하는 범위만큼 복사하여 새로운 배열을 만드는 메소드함수입니다.

 

새로운 배열 = Arrays.copyOfRange(원본 배열,복사하려는 시작 요소의 인덱스,복사하려는 마지막 요소의 인덱스의 바로 다음 인덱스)

 

[예제 결과물]

 

[예제 코드]

import java.util.*;

public class Solution {
private static int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

public static void main(String[] args) {
int[] arr1 = Arrays.copyOfRange(arr, 2,6);

System.out.print("arr의 요소 중 인덱스2에서 5까지  불러오기 :  ");
for(int i=0;i<arr1.length;i++) {
System.out.print(arr1[i]+" ");
}
}
}

posted by 스노(Snow)
:
JAVA/자바 2019. 6. 23. 09:40

Arrays.copyOf()는 특정 배열의 원하는 길이만큼 새로운 배열로 복사하는 메소드 함수입니다.

 

새로운 배열 = Arrays.copyof(원본 배열, 원본 배열에서 복사하고 싶은 요소들의 길이); 식으로 사용됩니다.

 

[예제 결과물]

[예제 코드]

import java.util.*;

public class Solution {
private static int[] arr = {1, 2, 3, 4, 5};

public static void main(String[] args) {
int[] arr1 = Arrays.copyOf(arr, 2);
int[] arr2 = Arrays.copyOf(arr, 7);

System.out.print("arr의 요소중 2개 불러오기 :  ");
for(int i=0;i<arr1.length;i++) {
System.out.print(arr1[i]+" ");
}
System.out.println();
System.out.print("arr의 요소중 7개 불러오기 :  ");
for(int i=0;i<arr2.length;i++) {
System.out.print(arr2[i]+" ");
}
}
}

posted by 스노(Snow)
:
JAVA/자바 2019. 6. 20. 23:38

Arrays.sort() 함수를 사용하여 배열을 정렬해보았습니다.

1. Arrays.sort(배열명)을 하면 오름차순으로 정렬됩니다.

2. Arrays.sort(배열명,i,j)을 하면 i부터 j까지 오름차순으로 정렬합니다.

3. Arrays.sort()에서는 내림차순을 지원하지 않지만 for문을 이용하여 오름차순을 뒤집어서 내림차순으로 만들 수 있습니다.

[원본배열]

{4,2,1,3,5}

 

[결과]

 

[코드]

import java.util.Arrays;

public class C {
public static void main(String[] args) {

//오름차순 정렬
int[] arr = {4,2,1,3,5};
Arrays.sort(arr);
System.out.println("오름차순 정렬");
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
System.out.println();
System.out.println();

//0번째를 제외하고 오름차순 정렬
int[] arr2 = {4,2,1,3,5};
Arrays.sort(arr2,1,arr2.length);
System.out.println("0번째를 제외하고 오름차순 정렬");
for(int i=0;i<arr2.length;i++) {
System.out.print(arr2[i]+"\t");
}
System.out.println();
System.out.println();

//내림차순 정렬
int[] arr3 = {4,2,1,3,5};
Arrays.sort(arr3);
System.out.println("내림차순 정렬");
for(int i=(arr3.length)-1;i>=0;i--) {
System.out.print(arr3[i]+"\t");
}
}
}

'JAVA > 자바' 카테고리의 다른 글

[JAVA] 특정범위 배열복사 Arrays.copyOfRange()  (0) 2019.06.23
[JAVA] 배열복사 Arrays.copyOf() 함수  (0) 2019.06.23
객체 지향 프로그래밍  (0) 2019.06.20
[JAVA]대소문자 변환  (0) 2019.06.19
[JAVA] 이클립스 설치  (0) 2019.06.10
posted by 스노(Snow)
:
JAVA/자바 2019. 6. 20. 00:22

[객체 지향 프로그래밍의 정의]

소프트웨어를 개발할 때, 여러 객체들로 나눠 하나하나 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍이라고 합니다.

 

[객체의 정의]

객체란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말합니다. 예를 들자면 물리적으로 존재하는 모니터, 필통, 연필, 사람과 추상적인 강의, 수업 등이 모두 객체가 될 수 있습니다. 객체는 속성과 동작으로 구성되어 있습니다. 사람이라는 객체를 예로 들자면, 이름이나 성별 등이 속성이고 달린다, 잔다 등이 동작입니다. 자바에서는 속성과 동작들을 각각 필드와 메소드라고 부릅니다.

 

[객체 간의 관계]

관계의 종류에는 집합 관계, 사용 관계, 상속 관계가 있습니다.

집합 관계 : 부품과 완성품의 관계

ex) 자동차 - 엔진,타이어 등

사용 관계 : 객체 간의 상호작용

ex) 사람 - 자동차

상속 관계 : 상위 객체를 기반으로 하위 객체를 생성하는 관계

ex) 기계(상위) - 자동차(하위)

 

[객체 지향 프로그래밍의 장점]

객체 지향 프로그래밍은 절차 지향 프로그래밍보다 학습 난이도가 높지만, 협업이 필요한 대형 프로젝트에 적합하며 유지보수가 용이합니다.

posted by 스노(Snow)
:
JAVA/자바 2019. 6. 19. 23:35

대문자로 변환하는 함수 : toUpperCase()

소문자로 변환하는 함수 : toLowerCase()

[결과]

[코드]

public class B {
public static void main(String[] args) {
String s = "ABcdEFghiJKlMnOpQRstuVwXYz";
String s1 = s.toUpperCase(); //모두 대문자로 바꾸기
String s2 = s.toLowerCase(); //모두 소문자로 바꾸기

System.out.println("원본 자료 \t : "+s);
System.out.println("대문자로 변환 : "+ s1);
System.out.println("소문자로 변환 : "+ s2);
}
}

posted by 스노(Snow)
:
JAVA/자바 예제 2019. 6. 19. 23:16

1부터 45까지의 값을 7개 비복원 추출합니다. 

 

[결과]

[코드]

package lotto;

/*<<로또 정보>>
 * 1부터 45까지 7개의 값을 비복원 추출을 한다.
 * 마지막 값은 보너스를 준다.
 * 순서가 있다.
 * */

public class Lotto {
private int[] num;

public Lotto() {
num = new int[7];
}

public int getNum(int index) {
return num[index];
}


public void setNum(int index, int data) {
num[index] = data;
}

public int length() {
return num.length;
}

public static void main(String[] args) {
Lotto l = new Lotto();
for (int i=0;i<l.length();i++) {
l.setNum(i, (int)(Math.random()*45)+1); //무작위의 1-45 값 반환
for (int j=0;j<i;j++) {
if (l.getNum(j)!=l.getNum(i)) { 
} else {i--;} // 앞쪽에 중복된 값이 있으면 다시 실행 /중복제거
}

}
for (int i=0;i<(l.length())-1;i++) {
System.out.print(l.getNum(i)+ " "); // 0번부터 5번까지 출력
}
System.out.print("+ "+ l.getNum(6));  // 보너스 번호 출력

} //end main
}//end class

posted by 스노(Snow)
: