PROJECT/DocViewer_Web 9

ajax DOM 기본 개념, 동작 원리

ajax란? -> 웹 페이지의 일부분만을 갱신할 수 있도록 해주는 개발 기법 ajax를 이용한 프로그램은 자바스크립트 코드를 통해 웹서버와 통신을 하기 때문에 백그라운드에서 지속해서 서버와 통신이 가능하다. DOM 모델이란? -> 문서 객체 모델(Document Object Model) HTML 문서나 XML 문서에 접근하기 위한 일종의 인터페이스 Ajax는 DOM을 이용해서 웹페이지의 일부 요소만 변경할 수 있다. 노드 트리란? -> node tree, 노드들의 집합으로 노드 간의 관계를 보여준다. ajax의 핵심적인 구성 요소는 XMLHttpRequest 객체다. XMLHttpRequest 객체란? 웹 브라우저가 서버와 데이터를 교환할 때 백그라운드에서 계속 서버와 통신할 수 있는 것은 이 객체 덕이..

ID값을 넘겨받고 싶은데 null값으로 나온다면?

function goOpinionWrite() { location.href = '/event/opinion/write?Id='+'[[ ${id} ]]'; } 이 창은 의견 쓰는 창으로 넘어가는 코드! @GetMapping("/write") public String openOpinionWrite(@RequestParam(required = false) final Long eventId, Model model) { model.addAttribute("eventId", eventId); return "thymeleaf/event/opinion/write"; } OpinionController 부분에서 윗 부분에서 id를 받아서 model 안의 attribute에 담아줘요 그리고 나서 opinion\write...

POST 시 handleException SQLGrammarException 예외 처리

handleException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement 분명히 주소값을 잘 입력했고 RequestBody도 잘 넣어준 것 같은데 자꾸 SQL이 잘못됐다는 문구의 예외가 발생합니다. SQL문도 분명 잘 집어넣어줬는데 말이죠?? 안에 데이터 구조를 좀 바꿨더니 바로 반영이 안돼서 그러는것 같아서 테이블을 삭제했다가 다시 불러줬습니다. SET foreign_key_checks = 0; DROP TABLE board; DROP TABLE board_y; DROP TABLE EVENT; DROP TABL..

Lazy, Eager 사용시 JSON 오류

현재 문서 게시판 작업을 하고 있는데 자꾸 의견 리스트를 조회하려고 할때 이런 오류가 떠서 난감쓰.,., @GetMapping("/v1/opinions/{eventId}") public List findAllByEvent(@RequestParam final char deleteYn, @PathVariable Long eventId) throws Exception { return opinionService.findAllByEvent(deleteYn, eventId); } 각 이벤트에 해당하는 의견리스트를 가져오는 GetMapping이었는데 Dto쪽을 아무리 봐도 오타도 없고 왜 이런 오류가 나는지 의문이었다. 기존에 웹개발자분이 작성해둔 코드랑 비교해보니 다른 점은 @ManyToOne(fetch = Fet..

자바 웹용어 분석하기 - 22.09.05

@AuthenticationPrincipal 로그인한 사용자의 정보를 파라메터로 받고 싶을때 기존에는 Principal 객체로 받아서 사용하지만 @AuthenticationPrincipal 애노테이션을 사용하면 UserDetailsService에서 Return한 객체 를 파라메터로 직접 받아 사용할 수 있다. 하지만 이 객체는 SecurityContextHolder의 Principal과는 다른 객체이다. public Long save(@RequestBody final EventRequestDto params, @AuthenticationPrincipal PrincipalDetail principalDetail) throws Exception { return eventService.save(params, ..

자바 웹용어 분석하기 - 2022.09.02

@Transactional DB와 관련된, 트랜잭션이 필요한 서비스 클래스 혹은 메서드 앞에 달아준다. 데이터베이스를 다룰 때 트랜잭션을 적용하면 데이터 추가, 갱신, 삭제 등으로 이루어진 작업을 처리하던 중 오류가 발생했을 때 모든 작업들을 원상태로 되돌릴 수 있다. 모든 작업들이 성공해야만 최종적으로 데이터베이스에 반영하도록 한다. :: 콜론 두개 (:: – 이중 콜론 연산자)의 정식 명칭은 메소드 참조 표현식(method reference expression)이며, 결론부터 말하자면 람다식에서 파라미터를 중복해서 쓰기 싫을 때 사용합니다. // x를 건네고 받는 과정에서 x를 두 번 적게 된다. names.forEach(x -> System.out.println(x)); // 아예 x들을 빼버리고 ..

자바 어노테이션 정리해두기 -22.08.29

@Getter => 자동으로 Get 메소드 생성해줍니다. @NoArgsConstructor => 파라미터가 없는 기본 생성자를 생성해줍니다. @Entity => JPA에서 DB 테이블에 대응하는 하나의 클래스입니다. @Entity가 붙은 클래스는 JPA가 관리해주며, JPA를 사용해서 DB 테이블과 매핑할 클래스는 @Entity를 꼭 붙여야만 매핑이 가능합니다. @Id => 기본 키 직접 할당 @GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY) => 기본 키 생성을 데이터베이스에 위임 즉, id 값을 null로 하면 DB가 알아서 AUTO_INCREMENT 해준다. @Ma..

웹용어 분석중 -thymeleaf, dao, dto, jsp.....

-thymeleaf 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링하는 용도로 사용한다 http://www.thymeleaf.org"> 문서 최상단에 다음과 같은 코드를 넣어서 사용한다. - 의 주요 콘텐츠 문서의 핵심 주제나 앱의 핵심 기능에 직접적으로 연결됐거나 확장하는 콘텐츠로 이루어진다. hidden 속성 없이는 문서에 하나보다 많은 요소가 존재해선 안된다. -DAO, DTO DAO(Data Access Object) 는 데이터베이스의 data에 접근하기 위한 객체입니다. DataBase에 접근 하기 위한 로직 & 비지니스 로직을 분리하기 위해 사용합니다. DTO(Data Transfer Object) 는 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한..

onload, fetch, promise, ... 웹 용어 기본 개념 분석중..

C# 개발자 4년차이지만 요새 회사에서 웹 프로젝트를 시작해서 거기에 갑작스럽게 투여 웹에 대해서는 기초부터 차근차근 시작하고 있는 웹린이 개발자입니다. 웹 개발자 분이 팀에 한분 들어오셔서 그 분한테 많이 물어보고 도움을 받고 있어요 그 분이 짠 코드를 보면서 제가 모르는 기능들이나 용어를 정리해봤습니다. 혹시 틀린 내용이 있으면 댓글 남겨주세요. window.onload window.onload = () => {} => window.onload 메소드는 자바 스크립트가 나중에 실행되어야 하는데 코드를 앞에 쓰고 싶을때! 그럴 때 사용하는 코드입니다. 웹 브라우저의 모든 요소가 준비된 후에 실행된다고 하네요 { } 내에 코드를 작성해주시면 해당 메소드를 오버라이딩할 수 있습니다. fetch() fetc..