목록분류 전체보기 (46)
초오오오오오짜개발자의낙서장

스프링에서 사용하는 JPA는 JPA를 이용하는 spring data jpa 프레임워크지 JPA가 아니다! JPA?- Java Persistence API 의 약자- 자바 진영에서 ORM (Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음 라이브러리가 아니다.- 실제적으로 구현된게 아닌 구현된 클래스와 매핑해주는 프레임 워크 ORM?- 어플리케이션의 Class와 RDB 의 테이블을 연결(맵핑) - 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 Hibernate?- JPA라는 명세의 구현체.- 인터페이스를 직접 구현한 라이브러리- JPA와 Hibernate는 자바의 interface와 해당 interface를 구현한 class와 같은 관계- JPA를 사용하기 위..
JAVA Interface- interface 키워드를 사용하여 정의- 상수와 추상 메소드로 구성- 모든 상수는 public static final 타입- 모든 추상 메소드는 abstract public 타입- 클래스에서 인터페이스 구현은 implements 키워드를 사용하여 구현할 인터페이스 지정 후 추상 메소드를 모두 오버라이드 하여 내용을 완성.//인터페이스interface JavaInterface { String call(); boolean test();}//인터페이스 상속 구현class InterfaceImpl implements JavaInterface { @Override public String call() { return "called"; } @Overr..

강의에서는 VS code 로 프로젝트를 제작하였으나 여기에서는 intelliJ 를 이용하여 프로젝트를 세팅 하고자 한다.intelliJ 에서는 Spring Boot 세팅을 하기 위해 Ultimate 버전이 필요하다.지원을 받아 Ultimate 버전 설치후 Spring Boot로 프로젝트를 생성한다.Ultimate 버전이 아니면 start spring.io를 이용하여 파일을 다운 받은후 열면 된다언어 - JAVA ,타입 - Gradle - Groovy,그룹 - com.example ( 프로젝트를 생성하는 조직의 이름) 아티팩트 - 프로젝트의 이름패키지 이름 - 그룹 + 아티팩트이름으로 생성JDK - 17 (spring 은 jdk 11부터 지원하기 떄문에 그 이상으로 설정한다.)패키지 생성 - Jar ( j..

monolithic architecture- 모든 업무 로직이 하나의 애플리케이션 형태로 패키징 되어 서비스- 대부분의 기본 프로젝트 형태- 서비스 초기에 빠른 개발이 가능 , 소규모에 적합- 개발, 빌드, 테스트, 배포등에 용이- 서비스가 거대해 질수록 코드 전체를 이해하는 사람이 적어짐.- 수정과 빌드 배포가 서비스가 커저감에 따라 어려워지고 일정도 길어짐. 위와 같은 문제를 해결하기위해 Devide and Conquer 처럼 하나의 큰 어플리케이션을 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 개념이 MSA(micro service architecture)- 각각의 서비스는 독립적으로 배포- 각각의 서비스는 다른 서비스에 대한 의존성이 최소화- 각 서비스는 개별 프로세스로 구동, RE..

JVM 은 OS 에서 할당받은 메모리 영역을 세 영역으로 구분한다.- 메소드 영역 (신규) - jvm 시작할때 생성 로딩된 클래스 바이트 코드 내용을 분석 후 저장 모든 스레드가 공유- 힙영역 heap - jvm 시작할때 생성 객체 배열 저장 사용되지 않은 객체는 GC가 제거- JVM 스택 stack - 스레드 별 생성 - 메소드 호출할 떄마다 Frame을 스택에 추가 종료하면 Frame 제거 객체 지향 프로그래밍OOP : object oriented programming부품 객체를 먼저 만들고 하나씩 조립해 완성된 프로그램을 만드는 방법하나의 클래스로 부터 여러개의 인스턴스를 만들수 있음. 클래스 구성 요소Field생성자메소드 new 연산자를 사용하여 메모리에 클래스를 객체로 ..

spring 특징IoC/DIAOP- 공통적으로 적용될 모듈을 만든 후 적용하고자 하는 부분의 코드 밖에서 삽입하는 방법- 사용 분야 - 메소드의 성능 테스트, 트랜잭션 처리, 예외 반환, 로깅인증 권한 처리등,- 관점 지향 프로그래밍 @Aspect 어노테이션 사용법 익히기ControllerAspect 발전된 프로그래밍 방식이다. 라고 알면 된다일일히 외워야 된다. controller 에 메소드가 2개가 있다.면? 실행될때 로그를 남기고 싶다 @Around 사용 예외처리할때 스스로 구현하는것 around 로 method 실행정 시간 측정 method 실행후 시간 측정single ton 으로 전역변수 사용 불가.@Slf4j@Aspect@Componentpublic class ControllerAspect..

같은 리터럴 값을 넣으면 힙에는 하나의 데이터로 저장되기 때문에 name1 과 name2 에 들어가는 데이터의 주소는 같다.String s1 = "자바"; String s2 = new String("자바"); 이런식 s2.equals(s1); 값을 비교할땐 이렇게 사용한다. s1 == s2 는 주소값을 비교하는 것이다. charAt(index) index의 char를 리턴indexOf(args) args 로 주어진 문자열이 시작되는 인덱스 반환. args 2에 index를 넣으면 다음 위치의 args1 의 위치를 리턴해 준다.lastIndexOf() 마지막 인덱스 없으면 -1 이 출력이 된다. String 리터럴 입력시 """ """ 3개로 하면 길게 입력 가능하다.replace() / replaceAl..
왜 SSAFY 여야 하는가 - 지원자는 이미 국비 교육도 듣고 있고 프로젝트도 진행 했고 전공과 대학원 까지 갔다 왔는데 왜 SAFFY에 들어오려고 하는거지? 모르겠다.- 다른 경험과 달리 왜 싸피를 들어야 하는지 이유가 들어가야 된다. 왜 개발자가 되고 싶은가 - 전공자들은 대학 진학부터 개발자로 진로가 맞춰져 있는 성향이니 이 부분이 크게 중요하지 않을 수도 있지만- 비전공자 분들의 경우는 말 그대로 내 전공이 따로 있고 그 분야고 진로가 정해질수도 있는데 왜 개발자인지에 대한 이유가 없다 이부분이 싸피에 지원하는 동기와 연결 되어야 한다.sw 역량 향상과 취업 지원 서비스 이 두가지가 나에게 왜 필요한지 SW 역량 향상 교육을 통해 내가 어떤 것을 얻고 어떤 개발자가 되고 싶은지 그리고 취업..