본문 바로가기

전체 글100

싱글톤(Singleton) 전체 프로그램에서 단 하나의 객체만 만들도록 보장해야하는 경우가 있다. 단 하나만 생성된다고 해서 이 객체를 싱글톤이라고 한다. 싱글톤을 만들려면 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다. 생성자를 외부에서 호출할 수 없도록 하려면 생성자 앞에 private 접근 제한자를 붙여주면 된다. 그리고 자신의 클래스 타입인 정적 필드를 하나 선언하고 자신의 객체를 생성해 초기화 한다. 정적필드도 private 접근 제한자를 붙여 외부에서 필드값을 변경하지 못하도록 막는다. 대신 외부에서 호출 할 수 있는 정적 메소드 getInstance()를 선언하고 정적필드에서 참조하고 있는 자신의 객체를 리턴해준다. 이것이 싱글톤을 만드는 코드이다. public class Singleton{ .. 2020. 3. 31.
객체와 클래스 클래스 메모리에서 사용하고 싶은 객체가 있다면 우선 설계도로 해당 객체를 만드는 작업이 필요하다. 객체를 만들기 위한 설계도가 클래스이다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다. 클래스를 통해 생성된 객체를 클래스의 인스턴스라고 한다. 하나의 클래스로부터 여러 개의 인스턴스를 만들 수 있는데, 이것은 동일한 설계도로부터 이러 대의 자동차를 만드는 것과 동일하다. main() 메소드가 없는 클래스는 객체 생성 과ㅏ정을 거쳐 사용해야 한다. 일반적으로 파일당 하나의 클래스를 선언하긴 하는데, 하나의 파일에 두 개의 클래스 선언도 가능하다. 주의할 점은 파일 이름과 동일한 이름의 클래스에만 public 접근 제한자를 붙일 수 있다. // Car.java public class Car .. 2020. 3. 30.
객체 지향 프로그래밍 객체 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것. 객체는 속성과 동작으로 구성되어 있다. 자동차로 예를 들면 색상, 모델명 등이 속성이고 달린다, 멈춘다 등이 동작이다. 자바에서는 속성을 필드(field), 동작을 메소드(method)라고 한다. 현실 시계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라고 한다. 즉, 현실 세계 객체의 속성과 동작을 소프트웨어의 필드와 메소드로 정의하는 과정이다. 객체 지향 프로그래밍의 특징 추상화 어떤 영역에서 필요로 하는 공통의 필드나 메소드를 추출하는 것이다. 공통된 추상적인 특징을 파악해서 이를 하나의 개념으로 다룬다는 것이다. 추상적인 공통점들을 클래스로 만들어 놓고, 상세한 부분을 .. 2020. 3. 29.
Virtual scroll ( 분석하기 위해 남김 ) 데이터가 많아도 실제 DOM에 있는 row(데이터)는 적어서 slide 시 버벅거리지 않는다. 2020. 3. 28.
SpringBoot - Vue project 3. Vue 프로젝트 구성 먼저 http Client를 초기화하기 위해 axios를 설치한다. 터미널에서 vue 폴더로 이동하고 npm install axios를 입력한다. 그리고 http-common.js 파일을 다음과 같이 만들어서 http Client를 초기화 한다. import axios from 'axios'; export default axios.create({ baseURL: 'http://localhost:8080/_api', headers: { 'Content-type': 'application/json', }, }); router router/index.js import Vue from 'vue' import VueRouter from 'vue-router' import UserList from "../compo.. 2020. 3. 27.
SpringBoot-Vue project 2. Rest API 만들기 spring boot server 구성 model model/User.java package com.example.springboot_vue_h2db.model; import lombok.Data; import javax.persistence.*; @Entity @Data @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private String name; private int age; private String ph; private boolean active; public User() { } public User(String name, int age, S.. 2020. 3. 26.