본문 바로가기

반응형

spring

82일차 코딩학원 ● 공부내용 정리 1. 댓글이 세로로 나옴. 어떻게 해결하지? 2. @Transaction 어노테이션이 붙어있으면, 메서드 내에서 실행되는 모든 데이터베이스 작업은 하나의 트랜잭션으로 처리된다. 만약 중간에 예외가 발생하면 롤백이 수행되어 이전 상태가 된다. 3. DAO(데이터 접근 객체) : DB에 접근하기 위한 객체다. 4. DTO(데이터 전송 객체) : 데이터 전송을 위해 사용되는 객체다. 유저가 자신의 브라우저에서 데이터를 입력하여 form에 있는 데이터를 DTO에 넣어서 전송한다. 해당 DTO를 받은 서버가 DAO를 이용하여 데이터베이스로 데이터를 집어 넣는다. 5. mapper : 매퍼 파일에는 데이터베이스와 상호작용하기 위한 SQL 쿼리들이 정의되어 있다. MyBatis는 이러한 매퍼 파일을.. 더보기
81일차 코딩학원 1. 결국 게시판 만들기는 고객의 CRUD를 처리하기 위한 과정이다. 도대체 mapper가 뭐길래? 2. https://io.google/2023/intl/ko/ → AI 조사 3. POSTMAN 사용해서 댓글 삭제되는지 확인. DB데이터와 일치하지 않으면 에러가 나니 주의. 4. RESTFUL API를 계속 사용하네. 5. http에서는 문자열로 변환해서 전달해야 한다. 그래서 stringify()를 사용한다네. 직렬화라는 어려운 단어가 나오는데 쉽게 말하면 문자열로 변환해서 전달한다는 뜻이다. 더보기
79일차 코딩학원 (게시판 만들기 발표) 댕댕커뮤 게시판 구성 파일 컨트롤러 (ComuController.java) 모델 (ComuDTO.java, CommentDTO.java, PageResolver.java, SearchItem.java) 매퍼(ComuMapper.java) 서비스(ComuService.java, ComuServiceImpl.java) 리소스(ComuMapper.xml, mybatis-cofing.java) 뷰(dangcomu.jsp, edit.jsp, view.jsp, write.jsp) 1. 게시글 목록 댕댕커뮤 버튼을 누르면 나오는 초기화면입니다. 게시글마다 고유 번호, 제목, 유저 닉네임, 작성일, 조회수 확인이 가능합니다. 글 제목을 누르면 게시글로 이동합니다. 게시글 하단에는 페이지네이션을 구현했습니다. 게시글 1.. 더보기
78일차 코딩학원 ● 다시 처음부터 1. 오류가 나오면 실마리를 찾아내기 위해 두려워말고 접근하라. 2. BoardDaoImpl을 왜 만들지? 일단 인터페이스가 있어서 만들기는 해야겠고... 본래 역할이 무엇이지? 3. 여기서 parameterType과 resultType을 써주는 이유가 무엇일까? Mybatis는 SQL문장을 작성하고 실행할 때 파라미터와 결과 타입을 지정해줘야 한다. 규칙이다. 4. int와 integer의 차이는 무엇일까? 사용하는 값(data)의 종류(type)는 크게 문자와 숫자로 나눌 수 있다. 숫자는 다시 정수와 실수로 나눈다. int는 기본 자료형이다. 정수형 타입이다. integer는 5. 이 오류를 해결하지 못하고 있다. nested exception is org.apache.ibatis.. 더보기
75일차 코딩학원 ● 코딩학원 공부내용 정리 1. 매핑을 통해 Controller가 특정 View를 사용자에게 반환하도록 만든다. 2. 게시판 세부 CSS 설정. LogOut 버튼을 Id 표시로 변환. 3. Id 표시로 변환하는 코드들을 못 따라감. 고민할 문제가 아니다. 코드 복붙해라. 4. 수정, 삭제 버튼이 나타나지 않음. 로그인된 Id가 다르기 때문에 읽기 전용으로 보이는 것. 수정 삭제 5. id : earth로 다시 설정해줬음. 6. 작업물들은 루시드차트, figma를 이용해서 도식화하는 것이 프로젝트 이해에 도움이 된다. 7. 삭제하기 기능을 만들어보자. 삭제하기 버튼을 눌렀을 때 바로 삭제되면 안 된다. 물어봐야함. 그리고 삭제되면 삭제됐다고 알려줘야 된다. 8. 모달? 창이 뜨고 선택해야지 동작이 실행됨... 더보기
좋은 객체 지향 설계의 5가지 원칙 (SOLID) ● 좋은 객체 지향 설계의 5가지 원칙(SOLID) 좋은 객체 지향 설계의 5가지 원칙 (SOLID) 1. SRP: 단일 책임 원칙 - 한 클래스는 하나의 책임만 가져야 한다. - 하나의 책임이라는 것은 모호하다. ( 상대적임, 문맥과 상황에 따라 다르다) - 중요한 기준은 변경이다. 변경이 있을 때 파급효과가 적으면 단일 책임 원칙을 잘 따른 것 2. OCP: 개방-폐쇄 원칙 - 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야 한다. - 다형성을 활용해야한다. - 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 - 역할과 구현의 분리. 문제점 : 다형성을 사용했지만 OCP 원칙을 지킬 수 없다. 이 문제점을 해결해주는 것이 SPRING. 3. LSP 리스코프 치환 원칙 .. 더보기
69일차 코딩학원 ● 69일차 코딩학원 공부 내용 정리 1. 오늘부터 게시판 만들기에 들어간다. mybatis를 쓴다고 한다. 2. 퍼시스턴스 프레임워크, ORM이라는 단어가 나왔다. 퍼시스턴스 프레임워크에 MyBatis가 포함되는데, 이것을 사용하면 데이터를 입력하고 저장하는 과정을 추상화하여 개발자가 더 쉽게 데이터를 다룰 수 있게 된다고 한다. 기능으로 Mapping이 있다. 3. 노트북에 Spring을 깔았는데 오류가 난다. JavaJDK버전 문제라는데... 복잡하네 정말... java설치부터 Spring설치까지 다시 해봐야겠어. 방법이 있을 거야. 4. 오늘 내용은 평소보다 복잡하게 느껴진다. 복붙이 많다보니 과정을 모두 생략한 느낌이다. 5. DAO를 추가했었고... DB부분을 mybatis없이 했다. 오늘은 .. 더보기
67일차 코딩학원 ● 코딩학원 공부 내용정리 1. 어제는 유효성 검증에 대해 공부했다. 오늘은 '트랜잭션'에 대해 공부한다. 2. 트랜잭션 : 프로그램에서 어떤 이벤트가 발생했을 때 하나의 테이블에만 데이터를 변경하는 경우보다 여러 테이블을 차례로 변경해야 하는 경우가 많이 발생한다. 예를들어 은행에서 계좌이체를 한다. 신한 은행 A계좌에서 B계좌로 이체한다고 했을 때 게좌는 테이블로 볼 수 있다. A계좌에서 100만 원을 차감하고 B계좌에 100만원을 추가하면 계좌이체가 완료된다. 만약 이 과정에서 에러가 발생하면 A계좌에서 차감했던 금액은 다시원래대로 되돌려야 한다. 트랜잭션은 하나의 논리적 기능을 수행하기 위해 여러 작업을 묶어서 처리하는 것을 의미한다. commit, rollback등의 명령이 있다. 처리 과정에서.. 더보기

반응형