본문 바로가기

개발공부

(19)
[ 사전스터디 ] 웹개발 종합반 2주차 JavaScript 정의. 브라우저가 알아들을 수 있는 프로그래밍 언어 타입. // 리스트 타입 list = [value1, value2, value3, ...] // 딕셔너리 타입 list = {key1:value1, key2:value2, key3:value3} // 혼합 list = {key1:[value1, value2], key2:[value3,value4]} 반복문. list.forEach((data)=>{ // logic } 조건문. if(condition) { // logic } else { // logic } JQuery 정의. HTML의 요소들을 편리하게 조작을 할 수 있도록 해주는 JavaScript 라이브러리 JQuery 기능. // 조작 대상 지정 $('#id이름') // 문자 대..
[ 사전스터디 ] 웹개발 종합반 1주차 내용 웹과 HTML, CSS, JavaScript에 대한 간단한 설명 했다. 개발을 위해 IDE(VS Code)와 확장 플러그인 설치를 했다. 그 기반으로 HTML, CSS를 사용해 정적 웹 페이지 만드는 법을 한 단계씩 알려줬다. 마지막으로 만들어진 정적 웹 페이지를 Git에 올려 배포했다. 좋았던 점 개발은 "복사 붙여넣기"라는 설명은 누구든 마음의 부담감을 내려놓고 접근할 수 있도록 해주는 것 같다. font, bootstrap 사용 방법과 사이트를 알 수 있었다. div 영역을 backgroud-color로 먼저 설정하고 코딩을 하는 등 실제 개발에도 도움이 될만한 팁들을 알 수 있었다. 마지막으로 간단한 숙제를 통해서 배운 것들을 직접 해볼 수 있었던 것이 좋았다. Font, Bootstrap ..
[ JAVA SPRING ] JavaSpring에서 STOMP 설정 SocketConfig 설정 STOMP를 사용하기 위해 WebSocketMessageBrokerConfigurer를 상속해 클래스를 생성했다. Java Spring Security에서 CORS 설정이 되어있을 때 setAllowedOrigins에 와일드카드(*)을 사용할 수 없어 필요한 Origins를 구체적으로 입력을 했다. @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimp..
[ JPA ] QueryDSL Select에 DTO 사용하는 경우 자동 조인 QueryDSL 자동 조인 QueryDSL를 사용할 때 조인 메서드를 사용하지 않았도 Eentity에 JoinColumn이 걸려있는 다른 객체의 필드를 사용할 때 자동 조인이 발생한다. 아래 예시의 경우는 ManitoMapping과 User(manito) Entity와 조인을 하지 않았음에도 자동 조인이 된다. 1. QueryDSL이 작성된 코드 public GroupMappingDTO findGroupMapping(Long groupId, Long userId) { return queryFactory .select(new QGroupMappingDTO( manitoMapping.user.id, manitoMapping.manito.id, // 자동 조인이 되는 부분 ... manitoMapping.ma..
[ Java ] Boxed Type 비교 Boxed Type 비교는 무엇으로? 사이드 프로젝트할 때 Boxed Type(Integer, Long) 비교에 대해 선배 개발자 분에게 질문을 했다. 현재 작업에서 == 과 equals 비교 모두 내가 원하는 결과값(True, False)을 주고 있는 상황이었지만 Boxed Type은 Object였기에 equals을 사용해야할 것 같았기 때문이다. == 비교가 True가 나왔던 이유 Boxed Type의 경우 Object이기에 == 비교는 주소값의 동일 유무를 따진다. 하지만 Integer 내부에서는 -128 ~ 127의 값은 Cache를 해뒀다가 해당 값이 들어올 경우 저장해둔 Integer 객체를 반환해준다. 그러기에 -128 ~ 127 사이의 값을 사용할 경우 같의 값의 경우 같은 객체를 가져 ..
[ Java Spring ] List 정렬하기 Comparable 인터페이스 Comparable은 compareTo 메서드 하나만 가지고 있는 인터페이스이다. 기본적으로 들어온 파라미터보다 작은 경우 음수, 같은 경우 0, 큰 경우 양수의 값을 리턴한다. 필요에 따라 인터페이스를 상속 후 재정의해서 사용할 수 있다. public interface Comparable { public int compareTo(T o); } 실제 예시 Story 클래스가 Comparable 인터페이스를 상속하고 compareTo를 멤버변수 view의 크기에 따라 정렬하도록 재정의 했다. Class Story implements Comparable { String content; int view; @Override public int compareTo(Story o) { ..
[ Java Spring ] CRUD Repository vs JPA Repository CRUD Repository CRUD Repository는 Repository 인터페이스를 확장하며, save(), saveAll(), findAll() 등 CRUD에 관련된 메서드를 제공한다. Paging과 Sorting 기능은 따로 제공하지 않는다. 상속 관계 Repository -> CrudRepository JPA Repository JPA Repository는 PagingAndSortingRepository 인터페이스를 확장하며, PagingAndSortingRepository는 CRUD Repository 인터페이스를 확장하는 형태를 띠고 있다. 기본적인 CRUD 관련된 기능뿐 아니라 Paging, Sorting 기능을 추가적으로 제공한다. 또한 saveAllAndFlush(), delet..
DB 외부 접속 포트 포워딩 문제 상황 윈도우 환경에서 MySQL 설치 및 환경 설정을 완료한 상태였다. 유저, 데이터베이스 생성과 아이피 유저 부여를 했다. 포트를 열어주기 위해 방화벽 규칙을 추가했다. 마지막으로 공유기 포트 포워딩 설정을 해줬지만 외부에서 DB에 접속이 안 되는 문제가 발생했다. 이유 외부 IP가 내가 설정한 공유기로 바로 연결이 되지 않는다는 것을 발견했다. 외부 IP와 공유기 사이에 모뎀이 존재했으며, 모뎀에서 공유기에게 새로운 로컬 IP를 부여하고 있었다. 외부IP(XXX.XXX.XXX) -> 모뎀(192.33.44.1) -> 공유기(192.33.44.25 | 192.33.55.1) -> 컴퓨터(192.33.55.12) 해결 방법 모뎀과 공유기를 Bridge 형식으로 변경하는 것과 포트 포워딩을 모뎀과 공유기..