🌎 Web

    [Java] 객체 지향 프로그래밍

    Chapter 06 클래스 06-1 객체 지향 프로그래밍 06-2 필드 06-3 생성자 06-4 메소드 06-5 인스턴스 멤버와 정적 멤버 06-6 패키지와 접근 제한자 06 클래스 06-1 객체 지향 프로그래밍 시작하기 전에 객체(Object)란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 1) 자신의 속성을 가지고 있고 2) 식별 가능한 것을 말한다. ex) [사람] 속성: 이름, 나이 / 동작: 웃다, 걷다 ex) [자동차] 속성: 색깔, 모델명 / 동작: 달린다, 멈춘다 여기서 속성은 필드(filed), 동작은 메소드(method) 객체 모델링(Object Modeling)이란? 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 말한다. 객체의 상호작용 객체들은 각각 독립적으로 ..

    [Java] 정수 나눗셈 연산, 증감 연산자, while문과 조건식

    정수 나눗셈 연산 (혼자 공부하는 자바 p.80) 다음 코드를 실행하면 출력 결과로 5를 기대했는데 4가 출력되었다. 어디에서 잘못 작성된 것일까? int var1 = 5; int var2 = 2; double var3 = var1 / var2; int var4 = (int)(var3 * var2); System.out.println(var4); // 4 3번 라인의 결과값부터 잘못 되었다고 할 수 있다. 이유는 자바에서 정수 연산의 결과는 정수이기 때문이다. 디버깅 모드로 라인 하나하나를 살펴보자. 7번 라인에서 var1 / var2의 연산 결과는 2.5가 아니라 2가 되고, 2를 double 타입으로 변수 var3에 저장하므로 2.0이 된다. 8번 라인에서 var3 * var2의 연산 결과는 4.0이..

    [Spring] 스프링 웹 개발의 3가지 방법

    스프링 웹 개발의 3가지 방법 정적 컨텐츠 : like WELCOME pages MVC와 템플릿 엔진 : jsp, php → HTML을 서버에서 프로그래밍해서 동적으로 내려줌 API : json이라는 데이터 포맷으로 클라이언트한테 데이터 전달 정적 컨텐츠 resources/static/hello-static.html 인텔리제이 파일 생성 단축키 Ctrl + Alt + Insert 정적 컨텐츠 입니다. 실행해보자 run을 돌리고 http://localhost:8080/hello-static.html로 접속하여 확인 정적 컨텐츠는 어떻게 동작하는 걸까? 웹 브라우저에 localhost:8080/hello-static.html을 입력 내장 톰캣 서버가 요청을 받아서 스프링한테 전달 스프링은 먼저 컨트롤러에 있..

    [Spring] 스프링 프로젝트 환경설정

    스프링(Spring) 공부는 이렇게 해야 한다 스프링 프로젝트 생성 스프링 부트로 웹 서버 실행 회원 도메인 개발 웹 MVC 개발 DB 연동- JDBC, JPA, 스프링 데이터 JPA 테스트 케이스 작성 프로젝트 생성 윈도우(Windows)에서 인텔리제이(IntelliJ) 설치 JetBrains 계열의 IntelliJ는 이곳에서 무료인 Community 버전으로 설치한다. Spring에 체크가 되어 있지 않지만, Spring 라이브러리가 장착되어 있지 않다는 의미일 뿐 개발하는 데에는 문제없다. 스프링 이니셜라이즈(spring initializr)로 프로젝트 생성 스프링 부트 기반으로 프로젝트를 만들어주는 사이트(https://start.spring.io/) maven? gradle이란? 필요한 라이브러..

    [JavaScript] 자바스크립트의 클래스(Class)

    클래스란? 클래스(Class)란 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 일종의 틀로, 객체를 정의하기 위한 상태(멤버 변수)와 메서드(함수)로 구성된다. ES6에 도입되었으며, JavaScript 객체용 템플릿이라고 볼 수 있다. 클래스 생성 class ClassName { constructor() { ... } } class 키워드를 사용한다. 생성자 메서드 constructor()를 사용한다. name과 year 속성을 가진 'Car'라는 클래스를 만들어보자. class Car { constructor(name, year) { this.name = name; this.year = year; } } // 객체 생성 let myCar1 = new Car("Ford",..

    [JavaScript] try / catch로 예외 처리하기

    예외 처리란? 예외는 프로그램 실행 중에 발생하는 런타임 오류를 의미한다. 이러한 예외가 발생했을 때 프로세스는 더 이상 동작하지 않기 때문에 try / catch / finally를 사용한 예외처리를 통해 프로세스가 동작할 수 있게 해주어야 한다. try / catch / finally try { 예외를 처리하길 원하는 실행 코드; } catch (ex) { 예외가 발생할 경우에 실행될 코드; } finally { try 블록이 종료되면 무조건 실행될 코드; } try 블록 - 기본적으로 가장 먼저 실행되고, 에러 발생이 예상되는 코드를 작성한다. (기본) catch 블록 - try 블록에서 발생한 예외 코드나 Error 객체를 인수로 전달받아 처리한다. (옵션) finally 블록 - 예외처리와 관계..

    [JavaScript] 자바스크립트의 새로운 자료구조 Set, Map

    Set이란? Set이란 중복을 허용하지 않는 값을 모아놓은 특별한 컬렉션이다. 중복 값 여부는 배열에서도 find() 메서드를 이용하여 확인할 수 있지만, 배열 내 전체 요소를 순환하여 찾기 때문에 성능면에서 Set보다 효율적이지 않다. Set은 값의 유일무이함을 확인하는 데에 최적화되어있다. Set 메서드 or 프로퍼티 new Set() or new Set(iterable) - Set 객체 생성 및 초기화. iterable 객체를(주로 배열) 전달받으면 그 안의 값을 복사해서 넣어준다. // Set 객체 생성 const letters = new Set(["a","b","c"]); // Set 객체 생성 const letters = new Set(); // Set 객체에 add로 값 추가 letters...

    [JavaScript] 자바스크립트의 배열(Array)

    배열이란? 자바스크립트에서 배열(Array)은 이름과 인덱스로 참조되는 정렬된 값의 집합이다. 각각의 값인 요소(element)와 위치를 가리키는 인덱스(index)로 구성되어 있다. 배열의 특징 주로 const로 선언한다. 배열 이름은 보통 복수형으로 작성한다. 객체와는 다르게 index 번호로 구분되기 때문에 순서가 중요하다. 같은 배열에 있는 배열 요소끼리의 타입이 다를 수도 있다. 배열 요소의 인덱스가 연속적이지 않아도 되고, 따라서 특정 배열 요소가 비어 있을 수도 있다. (undefined) 자바스크립트에서 배열은 Array 객체로 다뤄진다. 하나의 이름으로 다양한 데이터를 다룰 수 있기 때문에 활용도가 높다. 배열의 마지막 인덱스는 배열.length - 1 이다. const fruits = ..