본문 바로가기

분류 전체보기369

[JUnit4-5]JUnit 버전에 따른 어노테이션 사용법

테스트 결과 JUnit4버전으로 테스트한 결과입니다. 에러 정상 작동 테스트 소스에서 어노테이션 설정을 잘못해서 에러가 발생했습니다. 그 이유를 분석해보려고 합니다. 오류가 생긴 이유 첫번째. 공식 문서를 확인한 결과 JUnit버전에 따른 사용 방법의 문제였습니다. https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing Spring Boot Features Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and wi.. 2020. 7. 11.

[JUnit]MVC 테스트 어노테이션 알아보기

@SpringBootTest 설명 springboot에서 제공하는 어노테이션입니다. SpringApplication의 테스트를 할 때 사용합니다. @SpringBootTest Option 1. MOCK(Default) @AutoConfigureMockMvc나 @AutoConfigureWebTestClient와 함께 사용할 수 있다고 합니다. mock web 환경이 제공되며, springboot 내장 톰켓 서버를 실행하지 않고 테스트를 할 수 있게됩니다. 2. RANDOM_PORT WebServerApplicationContext를 다운받아 실제 웹 환경을 제공하는 옵션입니다. 내장 톰켓 서버가 8080이 아닌 랜덤포트로 시작됩니다. 3. DEFINED_PORT WebServerApplicationCont.. 2020. 7. 5.

[JPA] 자바 영속성 어노테이션 알아보기

강의를 들으면서, JPA @Entity를 선언해준 클래스에서 ProfileImg라는 객체에 다음과 같은 어노테이션을 사용하는 것을 처음 본 저는, 이 어노테이션들에 대해서 조사를 해 보았습니다. 참고 : https://www.baeldung.com/jpa-basic-annotation#basic-vs-column 1. @Lob Large OBject의 줄임말인 어노테이션입니다. 필드에 특정 문자열 길이를 지정하지 않는다면 Default로 varchar(255)까지 저장할 수 있지만, 사진을 저장하는 칼럼으로 사용할 경우에는 더많은 자리수를 사용하기 때문에, @Lob 어노테이션으로 Large Object를 데이터베이스에 적절하게 저장합니다. 사용 예로, 사진을 DB에 저장할 경우 byte array로 변환.. 2020. 7. 5.

[Java]extends와 implements

요즘 인프런에서 spring-boot 개념과 핵심 기능에 대한 강의를 듣고 있습니다. 한창 배우는데... extends와 implement는 쓰는데,,, 왜 쓰는 건지... 어떤 때에 써야 하는지 생각이 나지 않아서... 이번 기회에 정리를 해보려고 합니다. extends와 implements는 뭘까요? extends(상속) extends는 '상속'을 구현해 주는 키워드입니다. 부모 클래스가 가진 메소드나 변수를 자식 클래스가 물려 받아서 사용할 수 있게 합니다. extends는 부모클래스가 가진 메소드나 변수를 자식클래스에서도 그대로 물려받아 사용할 수 있게 하기위해서 사용하는 것이었습니다. 고로! extends는 자식 클래스에 써주면 되는 것입니다. 단, 자식클래스에는 부모클래스 1개만 상속받을 수 .. 2020. 7. 2.

[Linux]리눅스 환경의 값진 경험담

스케줄을 수행하는 배치파일(.sh)이 수행이 안되는 문제가 있었습니다. 명령어 앞에 sudo를 붙여야 하고,, 비밀번호를 입력해야 했습니다... 지금 생각해 보니,,, 파일 소유자가 search인데,,, admin계정으로 로그인해서 배치파일을 실행하려고 했으니 당연히 안되는 것이었네요... 헤매지는 않았는데,, 권한 문제인 것은 알고있었습니다. 그래도 혹시 몰라서, 친한 대리님께 물어봤더니... chown 명령어로 파일 소유자를 root로 변경하라는 조언을 받았습니다. chmod로 파일 실행권한은 알고 있었는데,,, chown은 생각도 안하고 있는 저였습니다. chown root:root totalMenu2.sh로 그룹과 소유자를 root로 변경하였습니다. 배치파일 totalMenu2.sh안에 또 배치파.. 2020. 6. 30.

[Javascript]var과 let 그리고 const를 알아보겠습니다.

안녕하세요. 이번에 배민 자바스크립트 코딩테스트를 준비하면서, 자바스크립트에 대해서 많이 공부하게 되었습니다. 자료구조인 Array, Queue, Priority Queue, Stack, 이진탐색 등을 공부하고 있습니다. 그런데 공부하면서 계속 햇갈리는 것이 있었습니다. 변수 선언할 때 사용하는 var, let 그리고 const였습니다. 이 세가지의 차이도 모르는 채로 계속 var를 사용하고 있었고, for문에서는 let으로 변수를 선언하니까, for문 정도에서만, let을 사용하였습니다. 그러다가 안되겠다 싶어서 처음으로 되돌아가는 마음으로 var, let 그리고 const의 정의와 사용법을 마음먹고 알아보게 되었습니다. 여러 블로그를 찾아보던 중... 정말 이해하기 좋은 글을 찾아내었습니다. http.. 2020. 5. 7.

[IntelliJ]깃허브에 소스를 올려보자

안녕하세요. 요즘 개발 공부를 하는데 인텔리제이를 사용하고 있습니다. 인텔리제이는 보기에도 개발자들이 좋아할 만한 UI와 색채? 그리고 개발을 편하게 해주는 자동완성기능, 간편한 Gradle 설정, 'DB Browser'(DB Browser는 감동했습니다.)와 같은 사용성이 좋은 기능들을 가지고 있어서, 공부하는데에 재미를 느끼고 있습니다. 아무래도 못생긴 이클립스나 sts같은 것을 쭉~~ 사용하다가 잘생긴 인텔리제이를 보니까 비교가 될 수 밖에 없는 것 같습니다. 이제 본론으로 넘어가서, 인텔리제이에서 개발한 프로젝트 소스를 깃허브에 올리는 방법을 알아보겠습니다. 준비물 IntelliJ-Community-v2 1. 인텔리제이에서 깃허브를 검색 MAC : [commad+shift+A], WINDOW : .. 2020. 5. 2.

[MySQL]you are using safe update mode and you tried to update

MySQL를 사용할 때 DB Tool에서 DELETE FROM 또는 UPDATE SQL을 사용할 때 다음 오류가 날 수 있습니다. 오류메시지 you are using safe update mode and you tried to update 해결방법 일시적인 해결 방법. 다음 쿼리를 DBTool에 쿼리를 치듯이 입력 후, 실행합니다. SET SQL_SAFE_UPDATES = 0; 이제 delete 또는 update 쿼리 실행하게 되면 정상적으로 쿼리가 작동합니다. 2020. 4. 27.

[springboot] Junit gradle 4버전으로 변경하기

안녕하세요. 이번 글에서는 테스트를 진행하는데 있어서 발생한 오류 해결 방법에 대해서 알아볼 거에요. 오류가 발생한 이유는 gradle 버전이 5버전인데, lombok에 대한 라이브러리 세팅이 안맞아서 발생한 오류였습니다. 해결하려면, 안정화 버전인 gradle4버전으로 내려서 사용하는 방법이 있습니다. =준비물= IntelliJ lombok =해결방법= IntelliJ에서 터미널을 엽니다. 다음 명령어를 입력합니다. ./gradlew wrapper --gradle-version 4.10.2 >> 명령어 입력 후 결과 정상적으로 gradle 버전이 내려간 것을 터미널 메시지를 통해 확인할 수있습니다. gradle 버전이 4버전일 때의 자료가 더 많고 안정화된 버전인 듯하다. 5버전을 쓰면 lombok을 .. 2020. 4. 23.

[Javascript]인터넷 익스플로러에서는 지원하지 않는 자바스크립트 함수가 있었다.

어느날. 말단사원답게 한가로이 프로젝트 테스트 시나리오를 열심히 작성하고 있을 때였습니다. 크롬에서는 오류없이 잘 되던 앱이 인터넷 익스플로러에서는 데이터가 불러와지지 않는 아주 심각한 현상을 발견했습니다.(익스플로러는 정말이지..) 알아보니, Internet Expolore에서 지원되지 않는 자바스크립트 내장 객체 기능(함수)가 있었습니다. 문자열_객체.includes('포함되어 있는지 확인할 문자'); 그건 바로 includes()함수였습니다. includes()함수는 문자를 파라미터로 입력받아, 파라미터의 문자열이 '문자열_객체'에 포함되어 있는지 확인하는 함수입니다. 저의 프로젝트의 웹 개발에서 화면단 소스(jsp)에 자바스크립트 includes()를 사용하면 크롬에서는 정상적으로 동작하지만, 인.. 2020. 4. 23.