| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- GIT
- spring boot
- 국비지원교육
- MVC
- Sts
- AWS
- Interface
- #패스트캠퍼스 #국비지원교육 #메가바이트스쿨 #MegabyteSchool #개발자취업부트캠프 #내일배움카드
- group study
- 게시판 만들기
- Java
- View
- 개발자취업부트캠프
- MegabyteSchool
- tomcat
- Algorism study
- 패스트캠퍼스
- 내일배움카드
- Entity
- side project
- MVC 패턴
- 클래스 class
- #javaStudy
- Spring
- 게시판 리뷰 만들기
- array
- 클래스 상속
- crud
- github
- 메가바이트스쿨
- Today
- Total
tuter77
2022.12.27 TIL 본문
<Java>
● 싱글톤 패턴
- 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인패턴
- static 변수, 메서드를 활용하여 구현할 수 있음.
▷ 예시
public class Company {
private static Company instance = new Company();
private Company() {
}
public static Company getInstance() { //일반메서드로 선언하면 이 메소드를 호출하기 위해 인스턴스를 새로 하나 만들어야 해서 static으로 선언.
if(instance == null) { //방어적인 코드
instance = new Company();
}
return instance;
}
}
위 예시처럼 회사와 같이 하나의 인스턴스만 존재해야하는 경우 활용하는 패턴이다.
public class CompanyTest {
public static void main(String[] args) {
Company company1 = Company.getInstance();
Company company2 = Company.getInstance();
System.out.println(company1);
System.out.println(company2);
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
}
이 처럼 테스트클래스 파일에서도, 새로 인스턴스를 생성하지 않고 getInstance 메서드를 호출하여 사용할 수 있다.
● 배열
▷ 배열의 정의
- 동일한 자료형의 순차적 자료구조로 인덱스 연산자[] 를 이용하여 빠른 참조가 가능하다.
- 물리적 위치와 논리적 위치가 동일하며, 순서는 0부터 시작한다.(끝은 n개의 배열에서 n-1)
- 자바에서는 객체 배열을 구현한 Arraylist를 많이 활용한다.
▷ 배열선언하기
int[] arr1 = new int [10];
int arr2[] = new int [10];
오늘은 spring 그룹스터디에 골머리를 싸매느라 공부가 잘 되지않았다.. 처음 해보는 무작정 게시판 만들기에서, delete 기능을 구현하는게 다였는데, 제대로 된건지 모르겠다.
<Spring>
아래는 직접 만든 게시판 기능구현 코드다.
▷ MainController
@GetMapping("/delete/{id}") //송영진
public ResponseEntity<Boolean> getDelete(@RequestParam Long id){
return ResponseEntity.ok(boardService.deleteBoard(id));
}
getmapping 메서드를 사용하여, Long으로 된 id 값을 파라미터로 받아, getdelete 메서드를 적용시켜주는 코드다.
boardservice의 deleteboard(id) 메서드에는 boolean 값이 반환된다고하는데.. 정확히 이해가 가지 않았다.
▷ BoardServicelmpl
@Override
public boolean deleteBoard(Long boardRequestDTO) {
boardRepository.deleteById(boardRequestDTO.longValue());
return false;
}
내가 이해하기로는 이 파일에서 deleteBoard 메서드가 정의되고, false값을 반환 하는 것으로 보아, id값이 사라지는 형태를하고 있는 것 처럼 보인다.
위 deleteById 메서드로 mainContoroller에서 입력받은 id값과 같은 값을 DB에서 찾아내고, false값을 반환해 해당 data를 사용하지 않겠다는 것으로 이해했다.
▷ BoardService
public boolean deleteBoard(Long boardRequestDTO);
//TODO: 영진
인텔리제이에서 springboot로 만들어 보았는데, 코드를 편이하게 변환시켜주는 롬복 부터 난관이었다.
JPA는 어찌저찌 대충 이해하고 넘어간다고 해도, 코드가 롬복으로 바뀌니 자바도 익숙지 않은 내가 구현하기에 힘든부분이 많았다.
(Jdql 이 코드를 더 보기 좋게 바꿔주는것이 오히려 독이되었다..)
이 구문으로 연동된 Swagger 테스트 API에 구동하자,

이와 같은 결과가 나왔다.
DB내에 해당 id값이 없어서 에러가 나는 건지는 내일 스터디 조원들에게 물어보며 알아봐야겠다.
'TIL' 카테고리의 다른 글
| 2022.12.29 TIL (0) | 2022.12.29 |
|---|---|
| 2022.12.28 TIL (0) | 2022.12.28 |
| 2022.12.26 TIL (0) | 2022.12.26 |
| 2022.12.23 TIL (0) | 2022.12.23 |
| 2022.12.22 TIL (0) | 2022.12.22 |