일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 포트 죽이는법
- 스프링부트
- java
- DFS
- BFS
- 카카오2023신입공채
- 프로그래머스
- 백엔드 스쿨3기
- 시소 짝꿍
- 리코쳇로봇
- 인텔리제이 에러
- 김영한
- 인프런
- 라이엇 API
- 최주호
- 알고리즘
- 더티체킹
- 멋쟁이사자차럼
- 전적 검색
- already use
- 스프링 입문을 위한 자바 객체 지향의 원리와 이해
- 영속성
- JPA
- 자바ORM표준JPA프로그래밍
- 조회수중복
- 자바
- 엔에첸
- 올리브영 고객센터
- 테크잇
- 백준
- Today
- Total
목록전체 글 (73)
My Blog
오름오름 프로젝트 중 게시글을 쓰는 기능이 있다. 여기서 팀원 중 한 명이 글쓰기에 에디터 기능을 넣는 게 어떻냐는 의견이 나왔고, 다들 좋다고 하였다. 그래서 이 검색 키워드가 딱히 생각이 나지 않았던 찰나 코칭 강사님께서 위지윅에 대해서 알려주셨고 위지윅은 What You See Is What You Get 이라는 약자 WYSIWYG이였다. 많은 위지윅이 있었지만 그중 ckeditor5를 선택하였다. 그래서 이슈 만들고 ckeditor5 를 적용해 보려고 했다. https://ckeditor.com/ 대충 구글링 해보니 요새 트렌드에 맞게 직접 다운받아서 폴더를 넣어서 쓸껀지, CDN방식으로 쓸건지 Node.js나 다른 프레임워크에서는 설치해서 쓸껀지 정할 수 있다. 나는 첨에 먼저 기능을 써보고 싶..
내 코드가 bindingResult가 @PostMapping("/{id}/comment") public String createComment(@PathVariable("id") Long id, @Valid CommentDto commentDto, String writer, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return "redirect:/recruitment/" + id; } } 이런 코드인데 if문 안에 출력문을 넣고 해도 출력이 되지 않았었다. 그러다가 몰랐던 사실을 발견하는데 BindingResult는 @Valid 어노테이션 바로 뒤에 있어야 동작한다는 사실이였다.
프록시객체는 JPA에서 지연로딩일 때 사용되는 것이다. 예를 들어보자 회원 엔티티에 @ManyToOne private Team team 이라는 필드가 있다. 만약 이 메소드에서 public void print(String memberId){ Member member = em.find(Member.class, memberId); Team team = member.getTeam(); System.out.println(member.getUsername()); System.out.println(team.getName()); } 여기서는 한 멤버를 조회하고 멤버와 연관된 팀을 조회한다. 반면에 이 메소드에서는 public void print(String memberId){ Member member = em.fin..
public class RecruitmentArticle { @Id @GeneratedValue(strategy = IDENTITY) private Long id; @ManyToOne private Member member; private int typeValue; private String articleName; @CreatedDate private LocalDateTime createDate; private String content; private LocalDateTime deadLineDate; private Long views; @OneToMany(mappedBy = "recruitmentArticle", fetch = FetchType.EAGER, cascade = CascadeType.REM..
Lombok으로 스프링에서 DI(의존성 주입)의 방법 중에 생성자 주입을 임의의 코드없이 자동으로 설정해주는 어노테이션이다. @RequiredArgsConstructor는 초기화 되지않은 final 필드나, @NonNull 이 붙은 필드에 대해 생성자를 생성해 줌 새로운 필드를 추가할 때 다시 생성자를 만들어서 관리해야하는 번거로움을 없애줌. @Autowired를 사용하지 않고 의존성 주입.
댓글 수정 기능을 구현하다가 처음에는 댓글을 수정하려는 Comment에 객체를 받아와서 다시 저장하는 방식을 했었다. public Comment update(Comment comment) { return commentRepository.save(comment); } 하지만 이렇게 하면 DB에 반영을 해줘야하기 때문에 영속성 컨텍스트, 더티 체킹을 제대로 활용하지 못하고 결국 비효율적이라는 판단이 된다. @Transactional public Comment update(Long id, String content) { Comment updateComment = findOne(id); updateComment.setContent(content); return updateComment; } 이 코드가 동작하는 ..
환자를 delete하는데 @OneToMany(mappedBy = "patient") private List wearableEquipment; 이렇게 착용하는장비와 연관되어 있어서 불일치가 나는 에러가 발생했다 그래서 @OneToMany(mappedBy = "patient", cascade = CascadeType.REMOVE) private List wearableEquipment; 이렇게 코드를 고쳐주니 해결되었다.