전체 글
-
자바 추상클래스와 인터페이스의 차이점Java 2019. 6. 18. 01:15
이것은 전적으로 내 경험에 기반한 생각이지만 java를 통해 코딩을 배우는 학생과 현업에서 실무를 하는 직장인 모두 추상클래스와 인터페이스를 많이 사용하진 않는 것 같다. 학생 때 사용한 경험은 자바 기본 문법에서 인터페이스와 추상클래스를 배울 때 정도였던 것 같고 실무에서는 Spring의 DI를 위해 Service 레이어를 만들 때 ~Service를 인터페이스로 의무적으로 만들고 이를 구현하는 방식이었던것 같다. 서론이 길었지만 먼저 제목은 차이점이지만 공통점부터 알아보자. > 추상클래스 또는 인터페이스의 추상메소드를 구현체가 구현 한다. 결국은 추상 메소드를 구현하는 건데 왜 이것에 대한 구분이 필요한 것일까? 인터페이스와 추상클래스는 존재의 목적이 다르다. 누구는 인터페이스를 다중 상속을 위해서 만..
-
Git 커밋 가이드Git 2019. 6. 13. 15:34
커밋은 반드시 테스트를 통과한 후 해야한다. 테스트 중에 발견된 문제가 다 수정된 후에 커밋이 되어야한다는 것 예를 들어 "이전 커밋 후 테스트에서 발견된 문제 수정" 이라는 별도의 커밋이 있어서는 안된다. 커밋은 보통 최소 단위별로 이루어져야한다. 규모가 큰 리팩토링은 기능 수정과는 별도로 이루어져야한다. (기능 수정과 대규모 리펙토링을 동시에 진행하는 것은 피해야한다.) 서로 다른 리팩토링 2개를 진행한다면 리펙토링을 각각 커밋해야한다. 반드시 너무 작은 단위로 커밋을 하지 않아도 되는 경우도 있다. 완전히 새로운 기능을 개발하는 중이라면 꼭 모든 기능 별로 커밋을 할 필요는 없다. 새로운 서비스라면 초기 버전이 나올 때 한번에 커밋을 해도 된다. 그래도 한번에 커밋된 양이 2000 라인이 넘는다면 ..
-
webpack Template execution failed 오류Webpack 2019. 4. 11. 10:14
vue에서 webpack을 통해 npm start를 할 경우 아래와 같은 오류가 발생하였다. "Template execution failed: ReferenceError: testValue is not defined" spring 서버에서 thymeleaf를 통해 모델 데이터를 아래와 같이 전달해주었는데 /* var message = /*[[${testValue}]]*/ 'default'; console.log(message); alert(message); /*]]>*/ webpack에서 위 소스를 컴파일하면서 ${ 와같은 특수문자를 인식하지 못하는 것 같았다. 해결방법은 먼저 html-loader 플러그인이 없다면 npm install --save html-loader 로 플러그인 설치 npm star..
-
Mysql Workbench 블랙 테마 적용 방법MYSQL 2019. 3. 14. 18:26
워크벤치에 Black theme를 입히는 방법을 소개합니다. mysql workbecnh 를 windows 환경에서 사용 할 경우보통 C:\Program Files\MySQL\MySQL Workbench 6.3 CE\data 이 경로에 code_editor.xml 이라는 파일이 있습니다. 메모장이나 본인이 쓰는 에디터를 관리자 권한으로 실행한 후 위 경로의 code_editor.xml 을 실행한 후아래와 같이 태그 안의 가장 마지막 부분에 아래의 소스를 추가해줍니다. 위 소스를 추가하여 저장을 하고 워크벤치를 새로 실행시켜보면 아래와 같이 블랙테마가 적용됩니다. * 참고1. https://stackoverflow.com/questions/17325408/mysql-workbench-dark-theme *..