관계형 데이터베이스 (Oracle, MySQL, MSSQL 등)와 객체지향 프로그래밍 언어의 패러다임 불일치 관계형 데이터베이스 : 어떻게 데이터 저장할지에 초점 맞춰짐 객체지향 프로그래밍 언어 : 기능과 속성을 한 곳에서 관리하는 기술 JPA 사용시 중간에서 패러다임 일치시켜줌 개발자는 객체지향적으로 프로그래밍함, JPA가 SQL 대신 생성해서 실행함 SQL 종속적인 개발 안해도 됨 Spring Data JPA 구현체들을 쉽게 사용하기 위해 추상화시킨 Spring Data JPA 모듈을 이용해 JPA를 다룸 JPA
프로젝트의 메인 클래스 package com.springAWS; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args){ SpringApplication.run(Application.class, args); } } @SpringBootApplication 스프링 부트 자동 설정, 스프링 Bean 읽기/생성 자동으로 설정함 이 애노테이션이 있는 위치부터 설정 읽어가서 항상 프로젝트의 최상단에 ..
intellij로 새 프로젝트 생성 후 github에 올리려다가 새로운 레보에 이전에 add한 것들이 남아있는 상태에서 push를 해버림 이전 log로 되돌리려다가 그냥 초기화 하기로 함 git init git add . git push -u --force origin master master로 push해버려서 master 브랜치 생성하고 push 해버림.. 한 레포에서 main에는 이전 프로젝트가, master 지금 프로젝트가 있는 상황 master 브랜치를 main에 덮어쓰기로 함 git checkout main 일단 main으로 옮겨서 진행해야 해서 checkout하려고 했더니 안됨; error: Your local changes to the following files would be overwr..
스프링 이니셜라이저로 간단히 생성 가능 https://start.spring.io/ 프로젝트의 플러그인 의존성 관리 위한 설정 buildscript{ ext{ springBootVersion = '2.1.7.RELEASE' } repositories{ mavenCentral(); jcenter(); } dependencies{ classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } ext build.gradle 에서 사용하는 전역변수 설정하겠다는 의미 repository 각종 프로그램들 저장되는 위치인 저장소 Gradle에 프로그램으로 필요한 라이브러리 자동 다운,통합하는 기능이 있어서 중요함 mave..
주석은 나쁜 코드를 보완하지 못함 표현력 풍부, 깔끔, 주석 거의 없는 코드 >>>>> 복잡, 어수선, 주석 많이 달린 코드 코드로 의도 표현하기 코드만으로 의도 설명하기 어려운 경우 존재함 != 코드는 훌륭한 수단이 아님 //직원에게 복지 혜택 받을 자격 있는지 검사 if((employee.flags & HOURLY_FLAG) && (employee.age>65) if(employee.isEligibleForFullBenefits()) 주석으로 달려는 설명을 함수로 만들어 표현하기 좋은 주석 법적인 주석 ex) 각 소스 파일 첫머리에 주석으로 들어가는 저작권 정보, 소유권 정보는 필요함 모든 조항, 조건 열거하는 대신 표준 라이센스나 외부 문서 참조해도 됨 정보 제공하는 주석 때로는 기본적인 정보를 주..
1. 네트워크 연결 구분 대부분의 기술이 이더넷으로 통합되면서 관리 범위 기준으로 LAN, MAN, WAN을 구분함 LAN (Local Area Network) 사용자 내부 네트워크 소규모의 네트워크 대부분 이더넷 기반 전송 기술 사용함 복잡하거나 대규모 네트워크라도 직접 구축한 네트워크 범위면 LAN이라고 부름 WAN (Wide Area Network) 먼 거리에 있는 네트워크 연결하기 위해 사용함 멀리 떨어진 LAN 연결하기 위한 네트워크 인터넷에 접속하기 위한 네트워크 대부분 통신사업자(KT, LGU+, SKB)로부터 회선 임대해 사용함 자신이 소유한 땅/건물 아닌 곳 지나 원격지로 통신해야 할 때 사용 MAN (Metro Area Network) 수~수십km 범위의 한 도시를 네트워크로 연결하는 ..
참조형 변수 어떤 값이 저장되어 있는 주소를 값으로 가짐 (기본형은 실제 값(data)을 저장함) 기본형 (boolean, char, byte, short, int, long, float, double) 제외한 나머지 타입 객체의 주소 저장 C언어와 달리 참조형 변수 간의 연산 할 수 없음 선언 시 변수 타입으로 클래스의 이름을 사용 - 클래스의 이름이 참조변수의 타입이 됨 상수와 리터럴 (constant & literal) 상수 constant 값을 저장할 수 있는 공간 한 번 값 저장하면 다른 값으로 변경할 수 없음 변수 타입 앞에 'final' 붙여주면 됨 선언과 동시에 초기화해야함 리터럴 literal 값을 의미 상수가 저장공간으로 정의되어서 구분하기 위해 부르는 다른 이름 변수 : 하나의 값 저..
소스파일의 이름은 public class 이름과 일치해야 함 public class가 없으면 소스파일의 이름은 소스파일 내의 어떤 클래스 이름으로 해도 상관 없음 하나의 소스파일에 둘 이상의 public class가 존재하면 안됨 자주 발생하는 에러 cannot find symbol cannot resolve symbol 저장된 변수, 메서드 찾을 수 없음 선언되지 않은 변수/메서드 사용할 경우 변수, 메서드 이름 잘못 사용한 경우 발생함 Exception in thread "main" java.lang.NoSuchMethodError: main 클래스 내에 main 메서드가 존재하지 않을 경우 메서드 선언부 'public static void main(String[] args)'에 오타 존재하는 경우 ..