일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 | 31 |
- Codeup
- Git
- Vue.js
- 롬복
- 객사오
- 클린코드
- Python
- springboot
- spring security
- 클린 코드
- GitHub
- Postman
- 알고리즘
- Spring Boot
- 스프링
- java
- go
- 기초100제
- JPA
- 코드업
- 파이썬
- Gradle
- H2 설치
- mariadb
- golang
- 티스토리챌린지
- MySQL
- 오블완
- thymeleaf
- Spring
- Today
- Total
목록분류 전체보기 (85)
nyximos.log
Branch 커밋 사이를 가볍게 이동할 수 있는 어떤 포인터 같은 것이다. 독립적으로 어떤 작업을 진행하기 위한 개념 다른 branch의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다. 기본적으로 Git은 master branch를 만든다. checkout 하지 않는 이상, 모든 작업은 master branch에서 이루어진다. 처음 커밋하면 이 master branch가 생성된 커밋을 가리킨다. 이후 커밋을 만들면 master branch는 자동으로 가장 마지막 커밋을 가리킨다. master branch는 다른 브랜치와 다른 것이 없다. git init 명령으로 초기화 할때 자동으로 만들어진 이름을 변경하지 않기 모든 저장소에는 master branch가 존재한다. Head 단순히 rep..
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 왜 많은 프로그래머가 조회get 함수와 설정set 함수를 당연하게 공개해 비공개 변수를 외부에 노출할까? 자료 추상화 구현을 감추려면 추상화가 필요하다. 추상 인터페이스를 제공해 사용자가 구현을 모른 채 핵심을 조작할 수 있어야 진정한 의미의 클래스다. 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다. 구체적인 Point 클래스 직교좌표계 사용 계별적으로 좌표값을 읽고 설정하게 강제 구현을 노출한다. 변수를 private로 설정해도 각 값마다 get/set 함수를 제공한다면 구현을 외부로 노출하는 셈 public class Point{ publi..
자바 ORM 표준 JPA 프로그래밍 김영한 👩🌾 persistence.xml 설정 JPA는 persistence.xml을 사용해서 필요한 설정 정보를 관리한다. META-INF/persistence.xml 클래스 패스 정보에 있으면 별도의 설정 없이 JPA가 인식할 수 있다. META-INF/persistence.xml 일반적으로 연결할 데이터베이스당 하나의 영속성 유닛 persistence-unit 을 지정한다. javax.persistence로 시작하는 속성은 JPA 표준 속성으로 특정 구현체에 종속되지 않는다. 버전 지정 :
H2 데이터베이스 Java로 작성된 오픈소스 RDBMS이다. 용량이 1.7M이라 가볍다. H2 데이터베이스는 자바가 설치되어 있어야 동작한다. H2 데이터베이스는 JVM 메모리 안에서 실행되는 임베디드 모드와 실제 데이터베이스처럼 별도의 서버를 띄워서 동작하는 서버 모드가 있다. 로컬 환경, 테스트 환경에서 많이 사용된다. H2 데이터베이스 설치 H2 Database Engine Windows Installer 또는 All Platforms을 내려받아서 압축을 푼다. 윈도우 기준 h2.bat 또는 h2w.bat을 실행한다. H2 데이터베이스를 서버 모드로 실행한다. 웹 브라우저에서 http://localhost:8082를 입력 사진과 같이 입력후 연결버튼을 누르면 test 데이터베이스에 서버모드로 접근한..
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다. 형식을 맞추는 목적 코드 형식은 중요하다! 코드 형식은 의사소통의 일환이다. 의사소통은 전문 개발자의 일차적인 의무다. 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 맨 처음 잡아놓은 구현 스타일과 가독성 수준 → 유지보수 용이성, 확장성에 영향 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 적절한 행 길이를 유지하라 대다수 자바 소스 파일은 크기가 어느 정도일까? 500줄을 넘지않고 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 ..
Git 데이터를 Change Set이나 변경사항(Diff)으로 기록하지 않고 일련 일련의 스냅샷으로 기록한다. 커밋하면 현 Staging Area에 있는 데이터의 스냅샷에 대한 포인터, 저자나 커밋 메시지 같은 메타 데이터, 이전 커밋에 대한 포인터 등을 포함하는 커밋 개체(커밋 Object)를 저장한다. 이전 커밋 포인터가 있어서 현재 커밋이 무엇을 기준으로 바뀌었는지를 알 수 있다. 최초 커밋을 제외한 나머지 커밋은 이전 커밋 포인터가 적어도 하나씩 있고 브랜치를 합친 Merge 커밋 같은 경우에는 이전 커밋 포인터가 여러개 있다. 파일이 3개있는 디렉토리가 하나있고 파일을 Staging Area에 저장하고 커밋하는 예제 파일을 Stage Git repository에 파일을 저장(Blob) Stagi..
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 들어가며 나쁜 코드에 주석을 달지 마라. 새로 짜라. - Brian Wilson Kernighan, Phillip James Plauger 주석이 필요한 상황에 처하면 곰곰이 생각하기 바란다. 상황을 역전해 코드로 의도를 표현할 방법은 없을까? 코드로 의도를 표현할 때마다 스스로를 칭찬해준다. 주석을 달 때마다 자신에게 표현력이 없다는 사실을 푸념해야 마땅하다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 코드만이 자기가 원하는 일을 진실되게 말한다. 그러므로 우리는 (간혹 필요할지라도) 주석을 가능한 줄이도록 꾸준히 노력해야 한다. 주석은 나쁜 코드를 보완하지 못한다 표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가 복잡하고..
프론트 컨트롤러 패턴 소개 프론트 컨트롤러 도입 전 프론트 컨트롤러 도입 후 FrontController 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 입구를 하나로 만들어 공통 처리 가능 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다. 스프링 웹 MVC와 프론트 컨트롤러 스프링 웹 MVC의 DispatchServlet이 FrontController 패턴으로 구현되어 있음 프론트 컨트롤러 도입 v1 기존 코드를 최대한 유지하면서 프론트 컨트롤러를 도입한다. 서블릿과 비슷한 모양의 컨트롤러 인터페이스 도입 각 컨트롤러는 이 인터페이스를 구현하면 된다. 프론트 컨트롤러는 이 인터페이스를 호출해서 구현과 관계없..