분류 전체보기 (39) 썸네일형 리스트형 디자인 패턴 - 생성패턴 -Factory Method 디자인 패턴은 자주 사용하는 설계패턴을 정형화하여서 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계알고리즘 및 솔루션(프로젝트의 상황에 따라 맞춰 적용.) 디자인패턴은 많이 존재하지만 다 알 수는 없으니 대표적인 디자인 패턴 (Gang of Four)23개의 패턴이 있음. 즉 객체지향적 개념에 따른 설계 중 재사용할 경우 유용한 설계를 디자인패턴으로 정리해둔 것이다. (Gang of Four)의 디자인패턴에서는 객체지향적 디자인 패턴의 분류를 생성 패턴(Creational Pattern), 구조 패턴(Structural Pattern), 행동 패턴(Behavioral Pattern) 3가지로 구분하였습니다. 디자인 패턴의 장점 -개발자 간의 원활하게 효율적으로 개발에 협업이 가능하게 도와.. Java Throw, Throws 예외처리 throw의 개념 throw란 ? 예외를 강제로 발생시키는 것이 바로 throw입니다. 예를 들어 프로그래머가 강제로 "어느 한부분을 예외를 강제적으로 발생을 시켜야겠다" 하고 코딩을 하는 경우입니다. 즉,throw는 Exception을 발생시킬 때 사용하는 키워드. throw의 기본적인 형태 throw new 발생시킬예외 간단한 예제를 들어서 봅니다. Calculator.java public class Calculator { public static int add(int x, int y) throws MyCustomException { int result = x + y; if (result > 100) { throw new MyCustomException(); } return result; } 위에 예.. 스프링 빈 생성 순환참조 이런 오류가 떴습니다. Description: The dependencies of some of the beans in the application context form a cycle: 잘 보아하니까 빈생성주기에 대해 문제점이 생겼다라는건데, 구글링을 뒤져보니, 아직 빈이 등록 되지않았는데 의존성을 주입을 할려고 하니까 오류가 뜨는거 아니면, 서로 양방향으로 의존을 하고 있다 이것이 문제라고 나왔다.. SecurityConfig라는 클래스와 OauthDetailSerive를 서로가 주입을 받고 있으니까 순환참조의 오류가 뜬다. 사실 주입을 안받고 new를 하여서 생성을 하면되지만, 그럼 스프링의 장점을 이용하지 못하는 거니까 다른 방법으로 해결을 해보았습니다. A->B ,B->A 이런식의 문제라는 건데.. JAVA 선형검색, 이진검색 자바의 검색 중에는 여러 가지 검색방식이 있지만, 선형 검색과 이진 검색에 대해 알아봅니다 1. 선형검색(LinearSearch)이란? "데이터가 무작위로 놓여있는 즉, 정렬이나 어떠한 기준 없이 데이터가 놓여있을 경우, 데이터의 처음부터 원하는 값에 대해 순차적으로 검색하는 방법" 배열을 예를 들면 처음 인덱스부터 마지막 인덱스까지 검색범위를 정한 뒤에 검색하고자 하는 값을 대입하여 찾는 방법이 다. 단순하게 처음부터 끝까지 아무런 조건 없이 찾기만 하면 되니까 구현하기에는 편리하다. 하지만 데이터양이 많아지고 처음부터 데이터를 검색한다는 게 무작정 검색을 단순하게 한다는게 좋지는 않은 방법이다. (index) 0 1 2 3 (value) 2 4 3 7 예를 들면 value=3이라는 값을 임의의 배열에.. for문, do-While문, 입출력, 배열 1. 입력값 중에 최댓값을 구하는 메서드 public class Yoon { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("숫자를 입력해주세요."); String[] str = br.readLine().split(" "); int[] arr = new int[str.length]; for(int i = 0; i < arr.length; i++){ arr[i] =Integer.parseInt(str[i]); } int max = arr[0]; for(int j = 1; j= b) .. Mysql DB생성 및 권한 mysql데이터베이스 생성 및 권한에 대해 알아보겠습니다. 1. root유저로 로그인을 해줍니다. 2. root권한으로 계정을 로그인한 다음에 두번째로는 유저를 만들어줍니다. 3. 만들어진 해당 유저(yoon123)에게 모든 권한을 부여한다. (자기 자신이 원하는 권한만 부여하고 싶으면 원하는 권한만 부여하면 됩니다.) 4. 데이터베이스를 만듭니다. 5. 다시 초기화면으로 나가서 MySQL Connections의 옆에 있는 +버튼을 누른 뒤 Connection Name에 자신의 원하는 별칭(?) 변수 같은것을 입력한 후에 아까 만든 유저의 이름(username)과 비밀번호(password)는 "store in Vault"를 클릭하여 유저 만들 때 비밀번호를 입력해주면 된다. 6. 한글설정 Mysql에는 .. JAVA 추상클래스 추상클래스 사전적인 의미로 추상(abstract)은 실체 간에 공통되는 특성을 추출한 것을 말한다..? 암튼 추상적이라고 하면 필자의 입장에서는 두리뭉실..? 완벽히 구현이 되지 않은 무언가..? 그렇게 생각이 든다. 하지만 찾아보니...공통되는 특성을 가지는 것을 추상적인 것이라고 볼 수 있습니다. 이렇게 클래스에도 추상클래스가 존재하는데, 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 정의하는데, 이러한 실체클래스들의 공통적인 특성을 추출하여서 선언한 클래스가 추상클래스입니다. 추상클래스는 실체클래스를 만들기 위해 부모클래스로만 사용이됩니다. 추상클래스는 추상적이고, 일반적인클래스처럼 완벽하게 만든 클래스가 아니기 때문에 객체를 생성할 수 없습니다. 이렇게 도대체 추상클래스를 이용하여서 상속을.. JAVA 상속, 오버라이딩, 다형성 Inheritance(상속)은 부모가 자식에게 물려주는 것 입니다. 클래스가 A클래스가 있고 B클래스가 있으면 B가 A의 기능을 물려받으면서 사용하고 싶으면 상속이라는 개념을 사용해서 가능합니다. 상속을 할 경우에는 extends와 implement가 있습니다. 크게 보았을때 둘의 차이점은 extends는 단일상속, 부모클래스의 기능을 그대로 사용할 수 있으며, 굳이 부모클래스의 기능을 구현하지 않아도 될 경우에는 안해도됩니다. 하지만 implement 구현은 override로 자식클래스(인터페이스)가 부모인터페이스의 기능을 재정의를 무조건해야하며, 다중상속이 가능하다고 일단 이렇게만 차이점을 알고 있으면 됩니다. class A{ int a; void A_calssMethod(){ } } class B .. 이전 1 2 3 4 5 다음