HomeBrew를 이용하여 설치하였다. Homebrew 설치방법은 아래 링크를 참고한다. 

HomeBrew 설치방법


brew 업데이트 명령어를 이용하여 업데이트 한후 brew search 명령어를 이용하여 mysql 을 검색한다. 

brew install mysql 입력하면 설치가 된다. 나는 mysql@5.5 버전을 설치하였다. 이때 mysql이라고 입력하면 최신버전이 설치된다.


mysql 설치위치인 /usr/local/opt/mysql@5.5 폴더로 이동하여 /bin/mysql.server start 명령어를 실행한다.

mysql 보안설정을 위해서  ./bin/mysql_secure_installation 명령어를 실행한다. 이때 반드시 mysql 설치된 폴더 내부에서 명령을 실행 시켜야 한다.

Enter current password for root 명령어에서 설치시 root 패스워드를 지정하지 않았으므로 Enter 키를 입력한다.

root 패스워드를 지정시 Y를 입력하고 보안에 관련된 설정을 추가한다.  mysql 보안설정 참고

IntelliJ 를 이용하여 Mysql 서버정보를 설정하였다.  DataBase 항목에서 + 눌르고 Data Source -> MySQL을 선택한다. 



Name, User , password를 입력하고 Test Connection 버튼을 입력하여 테스트를 완료한다. MySQL 드라이버를 찾을 수 없다고 나오는 경우는 다운로드 버튼을 눌르면 아래와 같은 화면으로 변경되서 처리된다. 



블로그 이미지

클라인STR

,

.gitignore 이란?

.gitignore 파일이란 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일을 말한다. 

gitignore 파일에 지정해야되는 대상은 소스코드와 관련이 없는 임시디렉토리 또는 IDEA 설정파일 (인텔리제이 인경우 .idea폴더) 또는 빌드결과 폴더 등 원격저장소에 저장할 필요가 없는 대상이 된 파일이 주가된다. 




SpringMaven 이라는 프로젝트를 처음 생성한뒤 git status 로 상태를 확인하면 Untracked files 항목에  src/, pom.xml .idea/ tarter/ 폴더가 보인다.  ignore 파일을 생성하여  .idea, target 폴더를 제외 시켜보자. 


https://github.com/github/gitignore  접속하면  다양한 프로젝트의 ignore 파일을 받을 수 있다. 



touch 명령어로 .gitignore 파일을 생성한다음 vi 편집기를 열어 gitnore 파일 내용을 다음과같이 수정하였다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Compiled class file
*.class
 
# Log file
*.log
 
# BlueJ files
*.ctxt
 
# Mobile Tools for Java (J2ME)
.mtj.tmp/
 
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
 
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
 
.idea/
 
target/
cs



파일 수정후 git status 명령어를 통해 .idea, target 폴더가 사라진것을 확인 할 수 있다. 



블로그 이미지

클라인STR

,



블로그 이미지

클라인STR

,

Mac docker 설치하기

https://docs.docker.com/docker-for-mac/install


Download from Docker Hub 선택한다. 




Please Login To Download를 선택한다. 








회원가입이 안되어있어서 회원가입을 진행하였다. DockerID, Email, Password 입력하고 약관에 동의를 체크한다음 Sign Up 선택한다.



이메일 인증을 완료하면, 회원가입이 성공적으로 완료된다.




Get Docker 버튼을 클릭하여 Docker.dmg 파일을 다운로드 한다.



Docker 이미지를 Drag & Drop 하여설치한다. 




Docker 를 실행한다. 


Next 버튼을 선택한다. 



Desktop에 access 할 권한이필요하므로 OK 버튼을 선택한다. 



DockerID, Password 를 입력하고 로그인 한다. 



docker version 을 입력해서 설치된 버전을 확인한다. 

블로그 이미지

클라인STR

,

GitHub private 저장소가 무료로 풀렸다. 두둥







해당내용 원문참조

블로그 이미지

클라인STR

,

회사에서 테스트 자동화를 위해서 id부여를 위해서 Selenium을 처음으로 설치하여 사용해 보았다.

Selenium이란 어플리케이션을 위한 테스트 자동화 툴이다. 자세한건 구글링을 참조하시라..

https://github.com/seleniumhq/selenium



현재 사용중인 자바프로젝트에 설정을 추가하여 환경을 구성해보기로 하였음


1.pom.xml에 Selenium 관련 디펜던시를 추가한다.

https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java


<!-- Selenium -->
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-java</artifactId>
   <version>3.7.1</version>
</dependency>


2. WebDriver 다운로드 받는다.

  - FireFox, Internet Explorer, Safari, Chrome 다양한 브라우저를 지원한다.

  - http://docs.seleniumhq.org/download/ 접속하여 테스트 하고 싶은 브라우저의 드라이브를 다운로드 받는다.


3. Test 코드를 작성한다. Spring4 환경에서 테스트 하였으며, JUnit을 활용하였다.

  


4. 네이버가 실행되는걸 확인할수 있다.

블로그 이미지

클라인STR

,

1. Messages.properties 파일 생성하기

resources 폴더 밑에 messages.properties 파일을 생성한다. 
파일은 messages_언어.properties

2.Spring에 MessageSource 설정하기

Config.java

@Configuration
@EnableWebMvc
@ComponentScan(
basePackages="com.example.app"
)
public class Config extends WebMvcConfigurerAdapter{
@Bean
public MessageSource messageSource(){
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasenames("messages/messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor(){
LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
return localeChangeInterceptor;
}
@Bean(name = "localeResolver")
public LocaleResolver sessionLoacleResolver(){
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
localeResolver.setDefaultLocale(Locale.ENGLISH);
return localeResolver;
}
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(localeChangeInterceptor());
}
}

WebMvcConfigurerAdapter 상속받은 Config.java MessageSource 설정을 진행한다.

3. 사용하는 방법

@Autowired
private MessageSource messageSource;

MessageSource를 사용하기위해 DI(Dependency Injection) 하여 사용한다.

MessageSource Method 인자 설명

String getMessage(String code, Object[] args, String defaultMessage, Locale locale);

code : 프로퍼티에서 설정한 key 값 
args : key에 해당하는 value값에 {0}, {1} 등으로 매핑되는 값 
defaultMessage : key 값을 찾지 못할 경우 표출될 값 
locale : 지역코드 값

사용예

String message = messageSource.getMessage("com.button", null, locale);



블로그 이미지

클라인STR

,

Lombok이란?

개발이야기 2018. 10. 30. 17:56

Lombok이란?

Lombok(롬복) 은 자바에서 @Getter, @Setter 같은 annotation 기반으로, 기존 DTO, VO, Domain Class 작성할 때, 멤버 변수에 대한 Getter/Setter Method, Equals(), hashCode(), ToString()과 멤버 변수에 값을 설정하는 생성자 등등을 자동으로 생성해 주는 라이브러리이다. 추가로 일반적인 Class에서 Log와 같은 명령어를 간단하게 사용 할 수 있도록 도와준다.





기능

@어노테이션설명세부기능
@Getter @SetterGetter, Setter 메소드 자동생성– AccessLevel : 해당 접근 제한자를 설정
– lazy : 동기화를 이용하여 최초 1회만 호출
@ToStringToString 메소드 자동생성– exclude : 출력하지 않을 필드명 입력 
– includeFieldNames : 필등명 생략 여부 설정
– callSuper : 상위 클래스 toString호출 여부 설정
@EqualsAndHashCodeequals, hashcode 메소드 자동생성-
@Data@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 자동생성-
@valfinal 키워드 대신 사용하는 변수 선언 class-
@NonNull해당 값이 Null 일경우 NullPointerException을 발생-
@Cleanup자동 리소스 관리 : close() 메소드를 귀찮음 없게 안전하게 호출-
@EqualsAndHashCodehascode 와 equals 메소드를 생성– of : 포함 할 필드, – exclude : 제외 할 필드
@NoArgsConstructor인자 없는 생성자 생성-
@RequriedArgsConstructor필수 인자만 있는 생성자 생성(다른 생성자가 없을 때에만 만들어짐)-
@AllArgsConstructor모든 인자를 가진 생성자 생성-
@Value불편 클래스를 쉽게 생성-
@BuilderBuilder API 처럼 사용 할 수 있도록 지원-
@SneakyThrowsException 발생시 체크된 Throable로 감싸서 전달-
@Synchronized메소드에서 동기화 Lock을 설정-
@Log종류별 로그를 사용할 수 있도록 한다.– 기본 변수명 : Log
(Config 파일 만들어서 명칭 변경 가능)
– 로그 종류 : @Log, @Slf4j, @CommonLog, XSlf4j, JBossLog 등

Ex) Code

@Data
@ToString(exclude = {"name", "address"}, includeFieldNames = false, callSuper = true)
@EqualsAndHashCode(of = {"name", "address"}, exclude = {"gender", "phone"})
public class LombokGsonSampleInfo {
private String id;
@Getter(AccessLevel.PRIVATE) @Setter(AccessLevel.PUBLIC)
private String name;
@NonNull
private String email; // 메소드의 인자가 null일 경우 Exception을 출력 한다
// (java.lang.NullPointerException)
private String address;
private String gender;
private Phone phone;
}


IntelliJ 설치방법

Maven > pom.xml > dependency 추가

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
<scope>provided</scope>
</dependency>


plugins 에서 Lombok 플러그인을 설치한다.



Setting > Build, Execution, Deployment > Comipler > Annotation Processors > Enable annotation processing 체크해야 롬복이 정상적으로 동작한다. 

참고 : https://projectlombok.org/


블로그 이미지

클라인STR

,