본문 바로가기

전체 글93

인터페이스를 레퍼런스 변수로 사용할 수 있을까? ktko.tistory.com/entry/Effective-Java-52-%EA%B0%9D%EC%B2%B4%EB%A5%BC-%EC%B0%B8%EC%A1%B0%ED%95%A0-%EB%95%8C%EB%8A%94-%EA%B7%B8-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%9D%BC Effective Java #52 객체를 참조할 때는 그 인터페이스를 사용하라 적당한 인터페이스 자료형이 있다면 인자나 반환값, 변수 그리고 필드의 자료형은 클래스 대신 인터페이스로 선언하자. 객체의 실제 클래스를 참조할 필요가 있는 순간은 생성자를 생성할 때다 ktko.tistory.com 과제를 복습하다가 교수님이 주.. 2020. 12. 4.
명품 JAVA 프로그래밍: 7장 제네릭과 컬렉션 컬렉션이란? 컬렉션은 배열이 가진 고정 크기의 단점을 극복하기 위해 객체들을 쉽게 삽입, 삭제, 검색할 수 있는 가변 크기의 컨테이너이다. 컬렉션 클래스는 개발자가 바로 사용할 수 있는 것들로서, Vector와 ArrayList는 가변 크기의 배열을 구현하며, LinkedList는 노드들이 링크로 연결되는 리스트를 구현한다. Stack는 스택을 구현하며 HashSet는 집합을 구현한다. 이들은 모두 Collection를 상속받고, 단일 클래스의 객체만을 요소로 다루는 공통점이 있다. HashMap는 키(K)와 값(V)의 쌍으로 이루어지는 데이터를 저장하고, 키로 쉽게 검색하도록 만든 컬렉션이다. 컬렉션의 특징 첫째, 컬렉션은 제네릭 이라는 기법으로 만들어져있다. 컬렉션 클래스의 이름에는 ,,등이 항상 포.. 2020. 12. 3.
이클립스에 JAR파일 추가하는 법. hamait.tistory.com/351 이클립스에 JAR 파일 추가하기 보통 JAR 파일을 프로젝트에 넣을때, 이렇게 사용합니다. 방법 1 : - 프로젝트 안에 lib 라는 새 폴더 만들기 (이름은 아무거나) - 그 안에 jar 파일 넣기 - 이클립스에서 refresh 하면 폴더가 보여짐 - ja hamait.tistory.com 1번 방법으로 lib 라이브러리를 만들어서 거기에 split JRL파일을 넣고 add build path해줬다. 그러면 자동으로 레퍼런스 라이브러리에 추가 한 jrl이 뜬다. 이클립스에서 sqlite 사용법 we-always-fight-with-code.tistory.com/m/4?category=873592 [ SQLite / SQLite3 ] 이클립스 자바 연동 & 코드에.. 2020. 11. 29.
이클립스 프로젝트에 느낌표가 떠 있을 때. gyrfalcon.tistory.com/entry/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90-%EB%B9%A8%EA%B0%84-%EB%8A%90%EB%82%8C%ED%91%9C 이클립스 프로젝트에 빨간 느낌표가 있다?? - 프로젝트명에 x 표시 외에 !표시는 import 시킨 jar 파일의 경로가 잘못되었거나 유효하지 않은 파일이나 디렉토리를 참조하고 있는 경우이다. 이 !표시가 있으면 소스파일을 수정해도 컴파일이 gyrfalcon.tistory.com 여기 참조해서 해결했다. 저 블로그에 있는 말 대로 프로젝트에 느낌표가 떠 있을때에는 코드를 수정해도 결과에 변화가 나타나지 않게된다.. 그냥 무시하.. 2020. 11. 28.
Template Method Pattern : 템플릿 메소드 패턴 상속받은 클래스에서 달라지는 부분을 자식에게 위임시킨다. 스트레티지 패턴이랑 비슷하며 알고리즘의 뼈대를 정의하고, 일부를 서브 클래스로 위임한다. 템플릿 메소드는 알고리즘의 구조를 변경하지 않고 알고리즘의 일부 내용을 서브 클래스에서 재정의 할 수 있도록 한다. 즉 알고리즘 과정의 일부를 정의하고 일부를 서브클래스로 위임하는 것이다. 틀의 일부를 타 사용자들이 고쳐쓸 수 있도록 하며 Framework 에서 많이 쓰는 패턴이다. 기존의 문제점은 알고리즘들을 캡슐화 시키면서 중복되는 코드가 여러 클래스에 존재한다는 것이었다. (같은 알고리즘 코드가 여러군데에 있을 때) 해결방안은 알고리즘의 중복되는 부분을 부모 클래스에 추상화 시키고 달라지는 부분만 서브 클래스에서 구현하는 것이다. 부모를 추상화 하고 , .. 2020. 11. 25.
04:Observer Pattern 1. 목적 객체간 1:다 의존 관계를 정의한다. 한 객체 상태가 변경 될 때, 그 객체와 의존 관계에 있는 모든 객체들이 자동으로 알림을 받고 상태를 갱신한다. 마치 ecampus 객체의 상태가 변경 되었을 때 cosmos 앱에서 자동 알림이 오는 것처럼. 옵저버 패턴은 일종의 푸쉬(push)서비스를 구현한다. (서버가 클라이언트에게 데이터를 주는 형태) 이벤트가 발생하면 프로그램에 이벤트 발생 정보를 전달하고, 처리하도록 하는 것(push)이 효율적이다. 푸쉬를 사용하는 절차는 1 푸쉬를 받고자 하는 사용자가 등록을 하고 2 특정 상황이 발생하면, 등록된 사용자에게 모두 알리고 자동으로 데이터가 갱신 된다. 발행자는 Subject(Publisher)라고 부르고 구독자는Observer(Subscriber.. 2020. 11. 11.
MySQL: primary key, foreign key 추가 및 삭제, constraint추가 방법. 1. key의 정의. pk는 DB 디자이너에 의해 선택 된 candidate key를 뜻한다. 그럼 candidate key는 뭘까? key는 하나의 tuple을 다른 tuple로부터 구별하는 방법이다. 예를 들어 학생의 학번이나 이메일 주소는 고유한 값이기 때문에 key라고 볼 수 있다. 그러나 학생의 이름은 중복값이 있을 수 있기 때문에 key라고 볼 수 없다. 그럴때 (학번, 학생의 이름) 이렇게 두개를 함께 key로 사용한다면 중복값이 있을 수 없으니까 key라고 볼 수 있다. 키 중에는 superkey, candidate key, primary key, foreign key가 있으며 하나씩 살펴보도록 하겠다. super key란 relaion 안에 고유한 값을 가진 유니크한 속성의 집합이다. 위.. 2020. 10. 16.
07.Singleton Pattern 1. 싱글턴 패턴의 목적 클래스가 한 개의 인스턴스만을 만들 수 있도록 하고, 다른 곳에서 그 생성된 한개의 인스턴스에 접근할 수 있도록 한다. 2. 고전적 싱글턴 패턴의 구현 방법 private 디폴트 생성자 구현 싱글턴 인스턴스를 저장하는 정적 멤버 변수(static 변수) 생성 싱글턴 인스턴스를 반환하는 정적 팩토리 메소드(static 메소드) 구현 (그러나 멀티 스레드를 사용하는 프로그램에서는 이게 문제가 될 수 있다.) 즉 A a = new A(); 같은 형식으로 객체를 생성하지 않게 할 것이라는 뜻이다. 여기서는 한개의 인스턴스만을 만드는 것이 목적이기 때문이다. 그러므로 private 디폴트 생성자를 막아둔다. 정적 메소드(static 메소드)에는 객체를 생성하지 않아도 사용할 수 있는 메소.. 2020. 10. 14.
안드로이드: Fragment , NullSafety,Resource button.setOnClickListener{ //프라그먼트를 동적으로 작동하는 방법 //Fragment 붙이는 방법 replace/add val fragmentManager: FragmentManager = supportFragmentManager //Transaction //작업의 단위 -> 시작과 끝이 있다. val fragmentTransaction = fragmentManager.beginTransaction() //시작 //할일 fragmentTransaction.replace(R.id.container, fragmentOne) // 할일 fragmentTransaction.commit() //보통 commit은 끝을 뜻함. //끝을 내는 방법 //commit -> 시간 될 때 해 (좀 더 .. 2020. 8. 16.