분류 전체보기
-
[Spring] JPA 개념 잡기WEB/Spring 2020. 9. 14. 02:40
1. JPA는 Java Persistence API 이다. Persistence, 영속성은 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는다. 영속성은 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터 베이스 등을 활용하여 구현한다. JPA는 자바에 있는 데이터를 영구히 기록할 수 있는 환경(DBMS)에 저장하는 API 인터페이스를 통해 프로그래밍을 하고 이를 통해 프로그램을 만드는 것 즉 API란 프로그램을 만들기 위해서 제공하는 인터페이스를 의미한다. 홍길동이라는 사람이 장보고의 프로그램을 사용한다고 하면 장보고는 다음과 같이 약속을 정할 수 있다. 이때 약속은 상하관계가 존재하는 약속이다. 홍길동이 장보고의 프로그램을 사용하기 위해선 해당 인터페이스를 반드시 지켜야한다. 그러나 프로토..
-
[Spring] 스프링 개념 잡기WEB/Spring 2020. 9. 13. 23:02
1. 스프링은 프레임워크이다. 프레임워크란 틀 안에서 동작하는 것을 의미 "신입 개발자들아 요 틀 안에서만 작업하면 나처럼 고수가 될 수 있어!" 2. 스프링은 오픈소스다. 오픈소스란 소스코드가 공개 되어있다는 것을 의미 => 내부를 뜯어 고칠 수 있음! 3. 스프링은 IoC 컨테이너를 가진다. IoC(Inversion of Controller), '제어의 역전'이란 주도권이 스프링에 있음을 의미 위와 같이 make() 메소드와 use() 메소드의 의자는 다른 메모리 공간에서 실체화 된다. 의자를 공유하고 싶으면 make() 메소드에서 실체화 된 의자를 use() 메소드로 어떠한 로직을 통해 넘겨줘야한다. 그러나 이러한 로직을 짜기 굉장히 힘듬 그래서 스프링이 IoC를 통해 이러한 작업을 도와줌 스프링이..
-
[JAVA] 문자열 클래스프로그래밍/JAVA 2020. 9. 7. 21:54
String 클래스 java.lang 패키지에 포함된 클래스로 문자열을 나타냄 String을 선언하는 방법은 크게 다음과 같이 두가지가 존재 // 리터털 String str2 = "JAVA"; // new 연산자 char data[] = {'J', 'A', 'V', 'A'}; String str2 = new String(data); String str3 = new String("JAVA"); // str2, str3 모두 "JAVA" 문자열 여기서 String을 리터럴로 선언하는 것과 new 연산자를 이용해 선언하는 것과 굉장히 중요한 차이점이 존재! String str1 = "JAVA"; String str2 = "JAVA"; if(str==str2) { // 두 객체의 메모리 주소를 비교 System..
-
[JAVA] 추상 클래스와 인터페이스프로그래밍/JAVA 2020. 9. 7. 17:49
추상클래스 추상 클래스는 상속에서 슈퍼클래스로 사용 (계층 구조를 만들기에 좋음) 추상 클래스는 추상 메소드를 포함하는 경우, 포함하지 않는 경우가 있음 /* 추상 메소드를 포함하는 클래스 */ abstract class Shape { public Shape() { } public void paint() { draw(); } abstract public void draw(); // 추상 메소드 선언 } /* 추상 메소드가 없는 클래스 */ abstract class MyComponent { String name; public void load(String name) { this.name = name; } } 추상 메소드란 선언은 되어 있으나 코드 구현은 되어 있지 않은 메소드를 의미 추상 메소드의 구현은..
-
[JAVA] 배열 사용법프로그래밍/JAVA 2020. 9. 3. 00:37
/* 20200903 - 자바 배열의 개념, 사용법 스터디 */ import java.util.Arrays; import java.util.Scanner; import java.util.stream.IntStream; public class MainClass { public static void main(String[] args) { // 배열 선언 후 초기화 int[] arr1 = new int[5]; IntStream.range(0, arr1.length).forEach(i -> { arr1[i] = 100 * (i + 1); System.out.println("arr1[" + i + "] : " + arr1[i]); }); // 배열 선언과 동시에 초기화 int[] arr2 = {10, 20, 30..
-
[C/C++] map 자료구조를 이용한 문자열 문제 해결프로그래밍/C,C++ 2020. 9. 2. 14:35
/* 알파벳의 개수 구하기 */ #include #include // map 자료구조를 사용하기 위한 헤더파일 선언 using namespace std; int main(void) { ios_base::sync_with_stdio(false); freopen("input.txt","rt",stdin); map ch; // key-value 형태의 자료구조 map::iterator it; // map 접근자 char a[100]; cin>>a; for(int i=0;a[i]!='\0';i++) { ch[a[i]]++; // key로 접근하고 value값을 1 증가 } for(it=ch.begin();it!=ch.end();it++) { cout
-
[JAVA] final프로그래밍/JAVA 2020. 8. 10. 00:48
final 클래스 final이 클래스 앞에서 사용되면 클래스를 상속받을 수 없음을 지정 final class FinalClass { // 이 클래스는 상속 불가 .... } class SubClass extends FinalClass { // 컴파일 오류 발생, FinalClass 상속 불가 .... } final 메소드 final로 메소드를 선언하면 오버라이딩할 수 없는 메소드임을 선언 자식 클래스가 부모 클래스의 특정 메소드를 오버라이딩하지 못하게 하고 무조건 상속받아 사용하게끔 함 public class SuperClass { protected final int finalMethod() { .... } // finalMethod()는 자식이 오버라이딩 불가 } class SubClass extend..
-
[GIT] Github Repository와 GitBash 연결하기WEB/Git 2020. 8. 8. 19:58
Github Repository 생성 https://github.com/ Build software better, together GitHub is where people build software. More than 50 million people use GitHub to discover, fork, and contribute to over 100 million projects. github.com 깃헙 홈페이지에 접속하여 로그인을 한 후(계정이 없을 경우 회원가입을 먼저 진행) 다음과 같이 저장소를 생성해줍니다. GitBash 연결하기 연결을 원하는 소스 폴더를 찾아간 후 해당 폴더에서 다음과 같이 'Git Bash Here'를 눌러줍니다. 'git init' 명령어를 통해 로컬 저장소를 만들어 줍니..