잡다하지만 필요한 개발지식 13
Spring framework에 대해설명 1. oop란? 데이터를 객체로 취급하여, 프로그램에 반영한다. 순차적으로 프로그램이 동작하는 것과 다르게 객체의 상호작용을 통해, 프로그램이 동작한다. 객체를 사용함으로써 코드 재사용을 증가시키고, 유지보수를 감소시켜준다. 2. 자바의 메모리 영역에 대해서 설명 - 메서드 영역 : static변수, 전역 변수, 코드에서 사용되는 클래스 정보들이 올라간다. 코드에서 사용되는 클래스들을 로더가 읽고, 클래스 별로 분류해서 저장한다. 처음에 로드 될때, 필요한 것들이 메모리에 저장된다. 이때 클래스 정보가 없거나, 전역 변수에대한 오류가있으면 기동시에, 오류가 난다. -스택 : 지역변수, 메서드 등이 할당되는 LIFO 방식의 메모리이다. -힙 : new 연산자를 통해..
[JPA] 연관관계 매핑
RDB에서는 테이블 별로, 외래키를 매핑하며, 일대 다 혹은 다대다 의 형태를 가진다. 객체의 참조와, 외래키 매핑 관련되서 공부를 해보자 우선 간단한 예로, 팀과, 멤버에 대한 예제를 공부해보자 여러 사람이 한팀에 소속될 수 있다는 1:n관계라고 생각을 해보자 Member 에서는 Team에대한 관계와 조인 컬럼을 설정해준다. Team은 사실 별건없다. Lombok 을 사용해서 Getter,Setter도 직접 달아주었는데, 이건, 너무 불편해서 그냥 쓰기로했다 ㅋㅋ (매번 메소드 귀찮다) 이렇게 만 하면, 자동으로 PK,FK를 매핑해주는 테이블을 생성해준다. 예제 코드를 이렇게 작성해서 한번 테스트 해보자 뭐 잘들어간다. 추가로 위의소스에서 약간 수정한 내용은 PK가 id 자동생성 값일때는 String ..
5. 알고리즘 정리 [그리디]
그리디 알고리즘, 흔히 말해 탐욕기법이다. 우선 해당 알고리즘의 동작 형태 및 구현 방법에 대해서 익혀보자 그리디 탐욕기법은, 경우의 수가 존재할 경우, 매순간 최선의 경우를 선택하는 알고리즘이다. 현재 상황에서 가장 좋다고 생각되는 것을 선택해 나가는 것이기 떄문에, 항상 가장 좋은 결과를 만드는 것은 아니다. 그럼, 그냥 문제를 바로 풀어보자 * 동전 0 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) w..
필요한 잡다한 개발지식 10
1. 자바 캡슐화 - 자바 캡슐화는 변수와 함수를 하나의 클래스로 묶고, 외부에서 쉽게 접근하지 못하도록 은닉하는것이 핵심이다. 객체의 직접적인 접근을 막고, 객체가 제공하는 필드, 메소드를 통해서만 접근이 가능하도록 하는것이다. (getter,setter) 장점으로는 객체내 정보손상, 오용을 방지하고, 데이터가 변경되어도 다른 객체에 영향을 주지 않기 떄문에 독립성이 좋다. 또한 처리된 결과 사용으로 이식성이 좋고, 객체를 모듈화 할수 있어, 하나의 모듈 처럼 사용가능하다. ex. private 변수, public getter,setter 2. map과 set의 차이 - set은 순서를 보장하지 않는다. 또한 key와 value의 중복을 허용하지 않는다. - map 또한 순서를 보장하지 않지만, key..
[JPA] Entity Mapping, Table Managing
1. 객체, 테이블 매핑 @Entity @Entity,가 붙으면, JPA에서 관리를 하는 클래스, 객체가 된다. 대부분 디폴트로, 객체이름과 테이블이름은 동일하게 따라가지만, 이런식으로 Table name을 붙이면, 해당 테이블이름으로 생성 및 관리가 된다. 밑에는 재부팅 후에, 확인된 내용이다. 현재는 테이블이 없어서, 한번 create ddl이 나갔고, 그 이후에는 재 기동 에도 create ddl이 나가지 않는다. 이렇게, 되는이유는 바로 이렇게 설정을 했기 떄문이다. update, create 등등이 있는데, create 는 재기동 될때마다, 새롭게 생성된다. 기존에 테이블이 있으면 drop , create를 하고 update로 설정하게 되면 없는 대상들만, 혹은 신규 컬럼만 새롭게 update한..