분류 전체보기: 2105개의 글
스프링에 대해 공부하면서 그리고 프로젝트를 진행해보고 여러 예제 코드들을 접해보면서 느낀 것은 관습적으로 브릿지 패턴을 이용한 추상화를 사용하고 있다는 점입니다. 관습적인 추상화 계층화된 아키텍처인 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 코딩 스타일 블록을 조건문 아래에 작성합니다. 블록이..
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 해서 전면에 있는 앱을 최소화하는 것입니다.
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. 적용완료 ..
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..
용어 Committed: 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미 Modified: 수정한 데이터를 아직 로컬 데이터베이스에 커밋하지 않은 것을 의미 Staged: 수정한 파일을 곧 커밋한 것이라고 표시한 상태를 의미 설정 설정 정보는 3가지 형태로 관리가 되며, 우선순위는 local > global > system 순입니다. system: /etc/gitconfig 파일에 저장되며 git config --system 명령으로 수정 가능 global: ~/.gitconfig, ~/.config/git/config 파일에 저장되며 git config --global 명령으로 수정 가능 local: 프로젝트 .git/config 파일에 저장되며 git config --local 명령으로 수..
들어가기 전 GitHub Pages : github를 활용하여 정적(jpg, html과 같은) 파일을 서비스하는 방법 repository 생성 루트 페이지로 생성시 repository 이름 : .github.io Root URL : http://.github.io 하위 프로젝트로 생성시 repository 이름 : Root URL : http://.github.io/ GitHub Pages 활성화 프로젝트 > Settings GitHub Pages > Source : 서비스할 브랜치를 지정하면 자동으로 활성화 서비스할 정적 파일 추가 프로젝트 루트에 index.html 파일 추가 Hello World 페이지 접속 및 확인 루트 페이지로 생성한 경우 : http://.github.io/index.html ..
백준허브는 Leetcode의 제출 코드를 자동 푸시해주는 LeetHub라는 프로젝트를 포크하여 만든 익스텐션으로, 백준, 프로그래머스, SWEA 문제를 해결하면 등록한 Github Repository에 자동으로 코드와 문제 요약을 푸시합니다. 백준허브는 내가 푼 문제가 정답일 경우 해당 코드뿐만 아니라 성능과 메모리, 구체적으로 어떤 문제였는지 까지 같이 커밋합니다. 1. 크롬 확장 프로그램 설치 크롬 웹스토어에서 백준허브 확장 프로그램을 설치합니다. https://chrome.google.com/webstore/detail/%EB%B0%B1%EC%A4%80%ED%97%88%EB%B8%8Cbaekjoonhub/ccammcjdkpgjmcpijpahlehmapgmphmk?hl=ko 2. 깃허브 연동 크롬 확..