목록Programing Language (27)
초오오오오오짜개발자의낙서장
inteli j 에서 import 가 5개 이상되면 자동적으로 와일드 카드 import로 바꾸어준다 이는 지양해야하는 요소이다. import racingcar.domain.* -> 와일드 카드 import 이다. 이거 편리하다 생각했는데 지양해야 되는구나를 알았다.왜? -> 보안에 취약해 진다다 풀어서 쓴다. Spring Boot 에서 @Column 어노테이션을 써서 일일히 네이밍을 지정해준다. JPA는 자동으로 테이블 명이나 칼럼명을 스네이크케이스로 바꾸어준다. 이것의 주체가 JPA인지 하이버네이트인지 알아보자 하이버 네이트는 자바 언어를 위한 ORM oriented relational Mapping 프레임 워크다 jpa의 구현체로 jpa 인터페이스를 구현하며 내부적으로 jDBC api를 사용한다. j..
const arr = [1,3,2,4,5];const filter1 = arr.filters(thisIsOver => thisIsOver >= 3);// filter 1 : [3,4,5]자바 스크립트 공부중 특이한(?) 메소드를 찾았다. filter 함수인데, 배열의 각 요소를 돌며 callback 함수를 실행해서 조건에 맞는 요소만을 리턴해 준다. c 에서는 for문 돌려서 새로운 배열에 추가하는 방식으로 생각을 했는데, 이런 함수가 있다니 놀랍다. js로 코드를 짜면서 느끼는 생각인데, 나의 사고 방식이 C, C++에 갖혀있고 그 마저도 엄청 좁아서 생각의 확장이 필요해 보인다.

스프링에서 사용하는 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..

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..