전체 글
-
@ConfigurationProperties 사용해보기Spring 2021. 5. 18. 15:10
Annotation Processor를 사용해서 Metadata 생성하기 Configuration Metadata Configuration metadata files are located inside jars under META-INF/spring-configuration-metadata.json. They use a JSON format with items categorized under either “groups” or “properties” and additional values hints categorized under "hints", as sh docs.spring.io Annotation Processor 구성 pom.xml org.springframework.boot spring-boot-c..
-
메서드 추출(Extract Method)JAVA 2021. 5. 18. 13:08
장황한 메서드에는 너무 많은 정보와 복잡한 로직으로 얽혀 있습니다. 어떤 코드를 그룹으로 묶어도 되겠다고 판단될 땐 그 코드를 빼내어 목적을 잘 나타내는 직관적 이름의 메서드로 만들자 메서드 추출을 해야할 때 메서드가 너무 길때 코드에 주석을 달아야만 의도를 이해할 수 있을때 한 클래스의 두메서드 안에 같은 코드가 들어 있는 경우 한 클래스의 두 하위클래스에 같은 코드가 들어 있는 경우 메서드 추출에서 가장 힘든 작업 지역변수를 처리하는 것 방법 기능을 나타내는 이름의 새 메서드 생성 기존 메서드에서 빼낸 코드를 새로 생성한 메서드로 복사 빼낸 코드에서 기존 메서드의 모든 지역변수 참조를 찾는다. 그것들을 새로 생성한 메서드의 지역변수나 매개변수로 사용하게 된다. 빼낸 코드 안에서만 사용되는 임시변수가 ..
-
의미있는 이름[의도를 분명하게 밝혀라]CleanCode 2021. 5. 13. 10:39
의도를 분명하게 밝혀라 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워집니다. Bad! int a; // 경과시간 위와 같이 a 만 보고는 무슨 의미인지 알 수 없습니다. 다행이도 친절히 주석을 써줬기 때문에 무슨 의미인지 알 수 있었지만 a를 사용하는 모든 코드 line에 a 가 경과시간이라는 주석을 단다는 것은 너무 과하다 생각 됩니다. 또한, 선언부를 찾아가면 되잖아요? 라고 한다면 그건 너무 비효율적인 일이 되지 않을까 싶습니다. Good! int elapsedTimeInDays; int daysSinceCreation; int daysSinceModification; int fileAgeInDays; 우선 저희가 미국 사람이라고 가정하겠습니다. 모르는 영어단어가 없다고 가정하는 것이지요..
-
[MariaDB]CREATE DATABASE/USER, GRANT, FLUSHDatabase 2021. 4. 27. 14:21
mysql root 계정 접속 mysql -u root -p 비밀번호입력 database 확인 show databases; mysql Database 사용(변경) use mysql; 계정(user) 확인 select Host, User, Password from user; database 생성 CREATE DATABASE Create a database. mariadb.com CREATE [OR REPLACE] {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collatio..
-
[Oracle] User Password 만료 기간을 무기한으로 변경하는 방법Database 2021. 4. 20. 10:03
1. PASSWORD 만료기한을 무기한으로 변경하고자 하는 USER의 PROFILE 확인 SELECT PROFILE FROM DBA_USERS WHERE USERNAME = '유저명' 기본적으로는 PROFILE은 DEFAULT 일 것이다. 2. PASSWORD 만료기한을 무기한으로 변경하고자 하는 USER의 암호화된 비밀번호 확인 SELECT SPARE4 FROM SYS.USER$ WHERE NAME = '유저명' ※ 이 경우는 SYS 로그인 해야 한다. SYS로 로그인하지 않고 하는 방법은 아래와 같다. SELECT DBMS_METADATA.GET_DDL ('USER', '유저명') FROM DUAL; 3. PROFILE의 PASSWORD_REUSE_TIME, PASSWORD_LIFE_TIME을 unl..
-
spring-boot-starter-parent 없이 maven 구성Maven 2021. 3. 16. 14:20
종종 maven을 multi module로 구성해야 하는 경우나 또는 Spring boot를 사용하지만 parent를 spring-boot-starter-parent 가 아닌 다른 모듈을 사용해야 하는 경우가 있습니다. 이런 경우를 대비해서 Spring은 spring-boot-dependencies 를 사용하여 spring-boot-starter-parent 를 parent로 지정한 것과 거의 동일한 기능을 사용할 수 있게끔 해줍니다. 먼저 사용법은 아주 간단합니다. 아래 부분을 주석처리 또는 삭제 하시고 spring-boot-dependencies를 에 추가하시면 됩니다. 여기서 혹시나 설정이 되어 있지 않다면 별도로 아래와 같이 추가해 주시면 됩니다. 여기까지가 spring-boot-starter-p..
-
maven-complier-plugin java version 설정Maven 2021. 3. 14. 20:56
개발도구 자체 Maven 세부정보(dependency, version, build....) 확인 방법 어떤 개발 도구이던지 자체적으로 플러그인이 설치되어 있습니다. 그걸 확인할 수 있는 방법은 Effective POM을 확인하는 방법입니다. (약간 다를 수 있습니다. 정확한 방법은 사용하시는 개발도구 intellij 나 eclipse 자체적으로 설치한 plugin들이 어떤 것이 있고 그 중 maven 플러그인은 어떤 버전을 설치했는지를 보시는게 정확하다 할 수 있습니다.) 저희가 pom.xml 파일에 빌드 및 플러그인 설정을 하나도 하지 않아도 Effective POM에 가서 확인해 보면 저희가 설정하지 않은 플러그인들이 개발도구에 의해 자동으로 설정되어진 것을 볼 수 있습니다. Maven 프로젝트를 볼..
-
Angular 시작하기Angular 2021. 2. 7. 21:39
Angular를 시작하기 위한 필수 설치 nodejs 설치(npm이 같이 설치됨) angular cli 설치 Node.js 설치 nodejs.org 홈페이지에 접속해서 다운로드 받아 설치합니다. nodejs 설치시 LTS란 Long Term Support 라 해서 장기 지원 버전이란 뜻입니다. 오류나 버그 발생 시 해당 버전에 대해 장기적으로 패치 및 지원 하겠다는 뜻입니다. 그래서 어떤 걸 설치해야 하냐면 단순한 예로 '나는 nodejs의 최신버전에 새롭게 도입된 기능을 사용해보고 싶어' 하면 최신버전(Current, Latest Features) 설치. '아니 나는 좀 더 안정적인 버전 중 최신버전을 쓸래' 라고 생각한다면 가장 높은 버전의 LTS 버전을 설치하시면 되겠습니다. 참고로 Download..