일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- go
- MySQL
- thymeleaf
- 클린 코드
- Postman
- Git
- 롬복
- 티스토리챌린지
- 기초100제
- spring security
- Gradle
- GitHub
- JPA
- 객사오
- Spring Boot
- 오블완
- golang
- Python
- mariadb
- 코드업
- Vue.js
- H2 설치
- 클린코드
- 스프링
- springboot
- java
- 파이썬
- Codeup
- Spring
- Today
- Total
목록분류 전체보기 (85)
nyximos.log
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin 클래스 체계 추상화 단계가 순차적으로 내려간다. 변수 목록 : 정적 공개 상수 -> 정적 비공개 변수 -> 비공개 인스턴스 변수 함수 : 공개 함수 -> 비공개 함수 캡슐화 변수와 유틸리티 함수는 공개하지 않는 편이 낫지만 반드시 숨길 필요가 없다. 때로는 변수나 유틸리티 함수를 protected로 선언해 테스트 코드에 접근을 허용하기도 한다. 그러나 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다. 클래스는 작아야한다! 클래스의 크기가 중요하다. 작아야 한다. 클래스의 크기는 클래스가 맡은 책임을 센다. 단일 책임 원칙 Single Responsibility Principle 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는..
Spring Boot + Gradle + MySQL + JPA + Thymeleaf 환경에서 간단한 CRUD 예제를 만들어보자 이번 포스팅에서는 게시물 수정를 구현해보자. 주요 기능 회원가입 로그인 게시글 등록 게시글 수정 게시글 삭제 게시글 조회 (일반 회원 조회수와 운영자 회원 조회수 따로 구분) 게시글 추천 detail.html 수정페이지로 이동하기 위한 버튼에 로그인한 아이디가 같을 때만 수정페이지로 이동해준다. $('#update').click((event) => { if (localStorage.getItem('id') != memberId) { alert('권한이 없습니다'); } else { location.href = "http://localhost:8086/update/" + id; }..
클린코드, 애자일 소프트웨어 장인정신 Robert C. Martin TDD 법칙 세 가지 첫째 : 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 둘째 : 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 셋째 : 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 깨끗한 테스트 코드 유지하기 테스트 코드가 복잡할 수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸리기 쉽다. 테스트 코드는 실제 코드 못지 않게 중요하다. 테스트 코드는 사고와 설계와 주의가 필요하다. 실제 코드 못지 않게 깨끗하게 짜야한다. 테스트는 유연성, 유지보수성, 재사용성을 제공한다. 버팀목 = 단위 테스트 테스트 커버리지가 높을수록 공포는 줄어든다. 깨..
👩🚀 목표 자바의 예외 처리에 대해 학습하세요. 👩💻 학습할 것 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 🦹♀️ 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 예외처리 exception handling 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 프로그램의 비정상 종료를 막고 정상적인 실행 상태를 유지할 수 있도록 해준다. 예외를 처리하지 못하면 프로그램은 비정상적으로 종료되며 처리하지 못한 예외 uncaught exc..
Spring Boot + Gradle + MySQL + JPA + Thymeleaf 환경에서 간단한 CRUD 예제를 만들어보자 이번 포스팅에서는 게시물 삭제를 구현해보자. 주요 기능 회원가입 로그인 게시글 등록 게시글 수정 게시글 삭제 게시글 조회 (일반 회원 조회수와 운영자 회원 조회수 따로 구분) 게시글 추천 detail.html body 태그 하단에 아래와 같은 스크립트를 작성한다. CDATA character data를 의미 일반 문자 데이터를 의미한다. 타임리프 변수를 script 태그 내에 사용하려면 아래 코드 안에서 명시한다. 타임리프 변수는 /*[[${ }]]*/ 로 감싸준다. 이렇게 쓰면 안된다. 조심하자 현재 서버에서 memberId는 내려주지 않기 때문에 코드를 수정해보자. Detai..
👩🚀 목표 자바의 인터페이스에 대해 학습하세요. 👩💻 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 👩⚖️ 인터페이스 정의하는 방법 인터페이스 일종의 추상 클래스 추상 메서드의 집합 멤버로 추상 메서드와 상수만 가질 수 있다. 다른 클래스를 작성하는데 도움 줄 목적으로 작성된다 추상 클래스보다 추상화 정도가 높다. Java 8 이전 버전에서는 추상 클래스와 달리 몸통을 갖춘 일반 메서드, 멤버 변수를 구성원으로 가질 수 없다. 인터페이스는 클래스와 달리 Object 클..
Spring Boot + Gradle + MySQL + JPA + Thymeleaf 환경에서 간단한 CRUD 예제를 만들어보자 이번 포스팅에서는 게시물 조회를 구현해보자. 주요 기능 회원가입 로그인 게시글 등록 게시글 수정 게시글 삭제 게시글 조회 (일반 회원 조회수와 운영자 회원 조회수 따로 구분) 게시글 추천 목록 조회와 상세 조회, 페이지 2개가 필요하다. 일단 조회를 어떻게 구현할지 생각해보자. 여러가지 방법이 있을 수 있다. 일반 회원과 운영자 회원의 조회수를 구분해야 한다. 그리고 본인이 쓴 글의 조회수를 조회할 때는 조회수를 증가시키지 않는다. 리스트 화면 글번호, 제목, 등록일시, 일반회원조회수, 운영자 조회수, 작성자명 상세 화면 글번호, 제목, 등록일시, 수정일시, 작성자명, 일반회원조..
Spring Boot + Gradle + MySQL + JPA + Thymeleaf 환경에서 간단한 CRUD 예제를 만들어보자 이번 포스팅에서는 게시물 등록을 구현해보자. 주요 기능 회원가입 로그인 게시글 등록 게시글 수정 게시글 삭제 게시글 조회 (일반 회원 조회수와 운영자 회원 조회수 따로 구분) 게시글 추천 WebController.java @GetMapping("/new") public String newPost(){ return "new"; } new.html 새 글 작성 제목 내용 저장 서버를 켜서 아래와 같은 화면이 나오는지 확인해보자. BoardRepository import org.springframework.data.jpa.repository.JpaRepository; public in..