본문 바로가기

JAVA

(7)
[css] word-break 회사에서 제작하고 있는 사이트가 Safari 브라우저를 지원하는데 URL을 넣는 부분에서 줄바꿈이 되지 않거나 어색하게 줄바꿈이 되는 현상을 발견했습니다. 찾아보니 Safari 에서 word-break 관련 이슈가 있다는 것을 알 수 있었습니다. word-break: break-all; 여러 속성이 있는데 all르 적용하면 URL줄바꿈이 잘 되는 것을 알 수 있었습니다.. Safari.. 혼자 다른세상.. word-break 관련된 공식문서: https://developer.mozilla.org/ko/docs/Web/CSS/word-break word-break - CSS: Cascading Style Sheets | MDN CSS word-break 속성은 텍스트가 자신의 콘텐츠 박스 밖으로 오버플로 ..
[JPA] n+1 문제 회사에서 JPA를 사용하는 도중에 과정과 과제 entity가 따로 있는 상태에서 과정 하위의 과제를 가져올 때 queryDSL로 join해서 가져오는 방법을 사용하고 있었습니다. 후에 이 과제를 가져올 때 과정-과제 상세 entity를 따로 만들어 queryDSL을 사용하지 않고 JPA를 사용하여 한번에 정렬하여 가져오도록 고쳐야 했습니다. findBy[과정]OrderBy[과제 번호] 를 사용하여 구현하였는데 실제 동작과정을 살펴보니 과정-과제 상세 entity가 과정과 과제 entity를 포함하고 있어서 1번만 쿼리를 실행해야 할 것을 N+1번 실행하고 있었습니다. 이를 JPA에서 N+1 문제라고 한다길래 한번 찾아보았습니다. 여기서 발생한 원인은 과정-과제 상세를 전체 한번 보는 쿼리와 각각의 과정을..
[vue.js] 하위 컴포넌트 함수 호출, 새로고침 기능 게시판을 vue로 구현하면서 알림기능을 추가하였다. 알림기능을 추가하면서 DB의 값이 변경되는 부분을 실시간으로 불러올 방법은 찾지 못하였는데 (vuex를 몰라서 그런 것일수도..) 대신 화면이 새로고침 될 때마다 api를 호출하는 것으로 변경하였다. 방법 Home.vue 헤더에 Notification.vue를 하위 컴포넌트로 사용하였는데 이때 Notification의 api를 불러오기 위해서 상위 컴포넌트에서 하위 컴포넌트 함수를 부르는 기능이 필요하게 되었다. 구현 $refs 를 사용하였다. 레퍼런스? 이름을 설정하고 updated() { this.$refs.notification.getAlarmHistory(); this.$refs.notification.$on('reset', this.res..
[Javascript] validation 댓글 수정 부분을 개발할 때 수정을 할 때 특수문자가 제대로 나오지 않는 경우가 있다. 따라서 html의 escape를 처리해줘야한다. escape() 함수를 사용하고 escape로 바뀌지 않는 특수문자는 직접 replace를 사용하여 바꿔주었다. // ex) "" -> "" convertEscapeHtml = function (str) { str = escape(str); let map = { '*':'*', '+':'+', '-':'-', '.':'.', '/':'/', '@':'@', '_':'_' }; return str.replace(/[*+-./@_]/g, function(m) { return map[m]; }); } unescape의 경우도 만들어주었다. replaceAll을 사용하여 바..
[Spring] JPA 사용 시 간단한 처리과정 스프링의 이론을 정확하게 알지 못하는 상태라 이해한 과정만 기록용으로 끄적여봅니다. JPA (Java Persistence API) 자바 ORM 기술의 API 표준 명세 Hibernate JPA를 사용하기 위해서 JPA를 구현한 ORM 프레임워크 (JPA 명세의 구현체) 구현 시 생성할 클래스 Entity, DTO, Repository, Service, Controller(restController), (Mapper) 과정 Contoller에서 view를 띄운다. view 에서 요청이 발생하면 ajax로 요청을 전송한다 (DTO로 전송). RestController에서 요청을 받아 Service단으로 보낸다. DB처리를 위해서 mapstruct를 사용하여 DTO->Entity 로 변환하여 Reposito..
[JAVA] java.util 패키지 import java.util.*; public class Main { public static void main(String[] args) { // java.util.Arrays int[] scoreList = {87, 56, 79}; Arrays.sort(scoreList); for (int i=0; i
[JAVA] 자바 언어의 특징 자바 언어의 특징 단순 Simple C 언어와 C++ 언어의 복잡한 기능을 제외하여 코드를 단순하게 작성할 수 있음 C 와 C++ 언어에 비해 작고 간편 Garbage Collector 에 의한 자동 메모리 관리로 할당된 메모리 해제를 신경쓰지 않아도 됨 객체지향 Object-Oriented 객체지향 개념이 적용된 C++ 을 기초로 하여 만들어진 언어 프로그램 개발에 필요한 수많은 클래스 라이브러리들을 API로 제공함 재사용성이 높아짐 분산 처리 Distributed 분산 환경에서 TCP/IP 등의 프로토콜을 통해 효율적으로 실행할 수 있도록 설계된 언어 TCP/IP 네트워크 기능 내장 HTTP, FTP 등과 같은 프로토콜을 쉽게 사용할 수 있도록 라이브러리 제공 원격 메서드 호출과 관련된 RMI (Re..