분류 전체보기: 2108개의 글
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/eCOZ65/btsFYsBeLep/2DKcR3JOL5NGFmmtM1WoY1/img.jpg)
집, 회사, 노트북 인텔리J가 설치가 되어 있지만 모두 세팅이 조금씩 다르다. 세팅을 Export 해보기도 했지만 폰트가 설정이 안되거나 플러그인도 조금씩 에러가 있어서 블로그에 세팅 관련 글을 적어야 겠다고 생각했다. ▣ IntelliJ 프로젝트 SDK 설정 | 필자는 openJDK를 사용하고 있으며 openJDK는 하단의 링크에서 다운로드 받을 수 있다. ▶ File - Project Structure - Project Settings의 Project에서 Project SDK란을 설정하면 된다. JDK home path가 설정이 안되어서 인텔리j가 JDK 위치를 모르면 Platform Settings에서 추가하면 된다. ▣ 개발자 폰트 추천 - D2 Codi..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/bd2jVe/btsFU7S6qMa/wJZ8SDQv3iKUqPEUezqlP1/img.png)
IntelliJ 에서 사진처럼 한줄로 보여주는 기능이 있다. 개인적으로 가독성이 떨어져서 별로인데 설정에서 off 할수있다. Setting > Editor > General > Code Folding > One-line methods 체크 해제
# 프로젝트명 변경 1. [File] > [Project Structure] > [Project] > (Project name) 이름을 변경한다. 2. IntelliJ 를 종료한다. 3. 프로젝트 root 디렉토리로 이동하여 아래 파일을 열어 프로젝트명을 동일하게 수정한다. /settings.gradle rootProject.name = 'api-project' /.idea/.name ( 파일 내용에 프로젝트명과 다르게 저장되어 있다면 수정 ) api-project 4. IntelliJ 를 다시 실행하고 Gradle 프로젝트를 Refresh 한다.
스프링에 대해 공부하면서 그리고 프로젝트를 진행해보고 여러 예제 코드들을 접해보면서 느낀 것은 관습적으로 브릿지 패턴을 이용한 추상화를 사용하고 있다는 점입니다. 관습적인 추상화 계층화된 아키텍처인 MVC 패턴을 적용한 대부분의 프로젝트에서는 그 중에서도 Service 계층에서는 MemberService 와 같이 서비스를 인터페이스로 생성하고 MemberServiceImpl 이라는 구현체를 생성해서 사용하는 방식으로 대부분의 설계가 이루어집니다. 토비의 스프링이나 여러 객체지향과 스프링 관련 책들을 보면 이와 같은 패턴으로 설계를 해야하는 이유에 대해서 잘 설명하고 있습니다. 인터페이스와 구현체의 분리를 통해 특정 기술이나 외부환경에 독립적으로 보다 자유로운 확장이 가능해진다는 OCP 원칙에 입각한 분명..
BSD, K&R 코딩 스타일 bsd와 k&r의 가장큰 차이는 중괄호( {} )의 위치입니다. 1. K&R 코딩 스타일 여는 블록을 조건에 한 줄로 같은 행에 배치합니다. 코드 줄 수를 절약하여 한눈에 많은 코드를 작성할 수 있습니다. BSD 스타일로 작성한 코드를 K&R 스타일로 동일하게 작성해 보겠습니다. if(조건){ 처리 로직 } 예시) if(d == 1){ if(b == 1){ 처리로직 }else{ 처리로직 } } 2. BSD 스타일 BSD는 줄간격이 한눈에 들어오지만 단점은 코드가 길어진다는 단점이 있습니다. if(조건) { 처리로직 } 예시) if(d == 1) { if(b == 1) { 처리로직 } else { 처리로직 } } 3. GNU 코딩 스타일 블록을 조건문 아래에 작성합니다. 블록이..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/bZTrLI/btsCuP1X1ZO/nsiSlbdwec8GBok93X3wI0/img.png)
1. atom-beautify (19.1.8 수정 deprecated 되었습니다) 아톰 필수 플러그인중 하나인 atom-beautify 저기 다운로드 수 보이시죠?? 5백만이 넘는 사람이 다운한걸보면 확실히 필수가 맞는것 같아요. atom-beautify 플러그인은 이름 그대로 이쁘게 만들어주는 플러그인입니다 인덴테이션(indentation)을 예쁘게 만들어줘서 보기좋게 합니다 코딩할때 indentation 깔끔하게 하는건 필수인거 아시죠??? 2. auto close-html 3. code-peek code-peek 플러그인은 함수를 구현하다가 보면 다른 파일에서 함수를 따로 구현할 경우가 있는데요 그럴 경우 함수가 정의되어있는 파일을 자동으로 열어서 보게해줍니다. 4. color-picker ht..
Command + Option + H, M 윈도우를 사용할 때는 아주 오래전부터 [윈도우 키 + M]으로 모든 창 최소화를 하여 열려있는 모든 윈도우를 숨겼습니다. 바탕화면에 있는 아이콘을 클릭하기 위해서나 알트탭(Alt + Tab)보다 극단적으로 모든 창을 내리기 위한 수단이었는데 당연히 익숙한 동작이였기에 맥에서도 이러한 기능이 필요했습니다. 그래서 방법을 찾았습니다. Command + Option 누른 채로 H 누르고 다시 M 정확하게는, cmd+option+h가 전면에 있는 앱을 제외한 나머지 앱을 모두 가리고, 여기에 cmd+m 해서 전면에 있는 앱을 최소화하는 것입니다.
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/bq8pWP/btsCof1Atbz/bK1jd8BNMfdprlUSAqxHJk/img.png)
1. Code Style(Google Style) 다운로드 https://github.com/google/styleguide 에서 intellij-java-google-style.xml를 다운로드 2. File > Settings(mac : command + , / Windows : Ctrl + Alt + S) Editor > Code Style > Scheme 편집 > Import Scheme > IntelliJ IDEA code style XML을 선택 3. 다운로드 받은 intellij-java-google-style.xml를 선택 4. Apply 클릭 5. Edittor > Code Style > Java 에서 Tab Size와 Indent를 4로 수정한 후 Apply 버튼을 클릭 5. 적용완료 ..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/ccih1p/btsBGFsuhy1/cOdWDDP84hBkH4DPkFcYQ0/img.png)
mac 사용자들은 대부분 homebrew를 통해 jdk를 설치하지만 직접 다운로드하여 설정하는 방법을 알아 보겠습니다. https://jdk.java.net/archive/ 에서 원하는 버전의 jdk를 os에 맞게 다운로드 다운로드 받은 파일의 압축 해제 /Library/Java/JavaVirtualMachines/ 아래에 디렉토리 이동 sudo mv jdk-17.0.2.jdk /Library/Java/JavaVirtualMachines 터미널에서 java -version 명령어를 통해 설치 확인 아래와 같이 출력되면 설치 성공 openjdk version "17.0.2" 2022-01-18 OpenJDK Runtime Environment (build 17.0.2+8-86) OpenJDK 64-Bit ..
1. 빌더 패턴(Builder Pattern)을 사용해야 하는 이유 빌더 패턴 장점 필요한 데이터만 설정할 수 있음 유연성을 확보할 수 있음 가독성을 높일 수 있음 불변성을 확보할 수 있음 1. 필요한 데이터만 설정할 수 있음 예를 들어 User 객체를 생성하는데 age라는 parameter가 필요 없는 상황이라고 가정. 생성자나 정적 메소드를 이용하는 경우라면 우리는 age에 더미 값을 넣어주거나 age가 없는 생성자를 새로 만들어주어야 한다. // 1. 더미 값 User user = new User("테스트", 0, 181, 121); // 2. 생성자 또는 정적 메소드를 추가하는 방법 @NoArgsConstructor @AllArgsConstrctor public class User{ private..