반응형

분류 전체보기 316

스프링 Jacoco 코드 커버리지

Jacoco란? 내가 작성한 코드들을 테스트를 하였을때, 그 테스트가 전체 코드중에서 얼마만큼 성공이되었고, 몇퍼센트 통과가 되었는지 자세하게 통계를 보여주는 라이브러리다. Jacoco는 테스트 실패, 성공여부를 모두 보여주기에, 테스트 작성에 분석 및 보고를하는데 효율적이다. 사용법: Jacoco는 사용법이 매우 간단하다. 라이브러리만 잘 받아오고 세팅만 하면된다. build.gradle에 들어가서 다음과같이 세팅한다. 플러그인에 Jacoco를 사용하겠다 선언한다. Jacoco의 버전 설정 받고싶은 파일 형식을 설정할수있다. html을 받고싶으니 true로 설정하였다. 또한, html의 생성 위치를 설정한다. $buildDir은 프로젝트에 build패키지안에 생성이된다. Jacoco 파일을 생성하는방법..

[프로그래머스,Java] Level3: 보행자 천국

문제분석: 특수조건을 유의하여 최소거리의 갯수 찾기 왜 이 문제는 최소거리의 갯수인가? 자동차는 오른쪽 또는 아래로만 갈수있기때문 위 또는 왼쪽으로 돌아가는 행위는 있을수 없기에, 길이 막히지만 않고 도달한다면 무조건 최소거리다. 특수조건: 0 : 자유로운 통행가능 1: 통행 금지 2: 커브 금지 0과 1인 경우는 간단하지만 2인 경우때문에 로직이 더 복잡해진다. 커브를 금지한다는뜻은, 이전에 온 방향이 왼쪽에서, 또는 위에서 온것인지 판별을 해야하기때문이다. 그래서 거리 방향 판별을 어떻게 할까?? 3차원 배열을 사용한다. 즉, dp[방향][X좌표][Y좌표] = dp[2][N][N] 거리가 0일땐, 모든 방향을 통과하니 (현재 세로방향DP+ 현재 가로방향DP)을 다음 지역에 더해준다. 거리가 1일땐, ..

MongoDB 세팅 및 사용

MongoDB는 NoSQL의 일종이다. NoSqL은 RDBMS와는 달리, 관계가 존재하지 않고, 비정형 데이터 (스키마X) , 대규모 데이터 저장에 적합하다. 그중에 MongoDB는 Text파일과같은 형식으로 저장하고싶을때 더욱 사용한다. 예를들어, Input은 많이 일어나는데 Update는 별로 일어나지않는 대규모 비정형 데이터 Ex) 로그 , 채팅기록 만약 Update가 자주일어난다면 RDBMS를 사용하는걸 추천한다. ------------------------------------------------------------------------------------------------------------------------- 서론은 다음과같았고, 본격적으로 MongoDB를 세팅을해봅시다. 역시..

카테고리 없음 2023.07.12

myBatis 세팅 및 직접 사용해보기

MYBatis를 사이드 프로젝트와 함께 사용을 해보려고한다. 시작하기전에, MyBatis는 다음과같은 라이브러리를 받아야한다. 해당 환경은 Maven으로 테스트했고, Gradle은 mvnReposit에서 검색해서 받아오자. https://mvnrepository.com/ Product 실제로 값을 넣어볼 물품 Product이다. ProductMapper ProductMapper이다. 이 @Mapper 어노테이션으로 Mapper임을 명시하고, xml에 저장한 SQL을 매핑한뒤 불러와서쓴다. product.xml Product.xml이다. 태그로 만들어뒀던 ProductMapper를 매핑시키고, ProductMapper의 메소드 이름을 id로 지정한다. select문을 사용하면 insert문을 사용하면 를 ..

[토이 프로젝트] 영화관 사이트 [프론트]

기간 : 백엔드 및 설계 2일 + 프론트 2일 : 총 4일 1개월간 학원에서 배웠던 정보와 팀원끼리 아는 정보를 바탕으로 구현했다. 기술 스택 백엔드: JAVA, MYSQL, JSP ,Servlet , JSTL , Tomcat 프론트: HTML , CSS , JavaScript 팀원: 6명 팀 구성은 전공자 2, 비전공자 4명의 구성으로 진행을했었다. 인원도 많았기에, 다양한 기능과 화면을 단기간내에 구현이 가능했던것 같다. 로그인 회원가입 회원 정보수정 아이디 찾기, 비밀번호 재설정 admin 메뉴 영화 추가 admin 메뉴 배우 추가 admin 메뉴 영화 출연진 추가 ChatGpt 를 이용한 AI 에게 영화 추천 받기 여기서 내가 담당한 부분은 로그인 로직 , 회원정보 수정 쪽이다. 그리고 담당한 부..

[토이 프로젝트] 영화관 사이트 (백엔드)

단기간 안에 팀 프로젝트로 만드는 영화관 사이트를 제작해보았다. 이 프로젝트는 2일간 만들어낸 산물이다. 영화관 DB 주요 테이블 : 영화 , 배우 , 사용자 상영관 관계 테이블 : 출연정보, 리뷰 , 예약정보, 상영일정 (다대 다 관계를 위한 관계 테이블 ) 프로젝트 구조 Config : 설정관련한 정보가 들어있는곳 -> MYSQL 연동 설정 (root, password, path) controller: 요청받은 req 기반으로 Service에서 받은 정보를 view에게 연결시켜주는 객체가 들어있는곳 domain/dto : Repository에서 받은 정보를 Java내에서 저장하여 사용할 객체를 담당하는 곳 Service : Reposiotry에서 받은 정보를 가공하여 내부로직을 담당하는 객체가 들어있..

Intelij 에서 Mysql테이블 확인 및 쿼리쓰기

Intelij 에서 제공하는 편의 GUI 기능을 이제야 발견했다. 매번 mysql에서 테이블, 쿼리문을 테스트 , 데이터들을 봤는데 그 화면이동을 안해도 되는 기능이다. 우측 상단 탭을 살펴봐서 DataBase를 클릭하자 처음 데이터베이스를 연동하려면 +버튼 -> DataSource -> MYSQL (원하는DB)를 선택한다. 여기서 연동할 Host , User ,Password,DB, URL 등등 세팅하자 그 후, 다시 이전에 데이터베이스 세팅햇을때 눌렀던 "+" 버튼을 눌러 QueryConsole을 열어보자. 여기서 WorkBench에서 쿼리문을 써서 테스트하듯이 확인할 수있다. 불필요하게 Intelij 와 WorkBench를 왔다갔다 할 필요가 없어서 꽤나 편하다! 꼭 활용해 봤으면 좋겠다!

[프로그래머스,Java] Level3: 부대복귀

문제 분석: 목표 : 모든 강철 부대원이 복귀하는 최단 복귀시간 roads는 지나갈수있는 길 sources는 강철부대원이 현재 있는 지역 destination은 복귀해야하는 지점 문제를 읽어보니 그래프 문제다. 그래프 문제도 수많은 푸는 기법이 있다. (최소 신장트리, 다익스트라, 플로이드 와샬..등등) 근데 이 문제는 다익스트라로 푸는게 바람직하다. 그 이유는 도착지가 동일하기 때문이다. "각 병사가 도착지를 향해 가는것"을 반대로 생각하여, "도착지에서 병사가 있는곳으로 간다"로 생각할수가 있기 때문입니다. 다익스트라는 그래프+DP 이기때문에, 써야하는 자료구조가 좀 많다. 문제 풀이: 먼저, 그래프를 표현 해줘야한다. 그래프를 표현해주는 방법은 다양하게 있지만, 필자는 Map으로 표현하였다. Key..

ACID , Transaction(트랜잭션) , Procedure (프로시져)에 대해

우선 ACID 부터 이해를 해야, 후에 설명하는 트랜잭션과 프로시져에 대한 이해가 쉽다. ACID 란? ACID는 데이터베이스 관리 시스템(DBMS)에서 데이터의 무결성과 일관성을 보장하기 위한 속성을 나타내는 약어입니다. ACID는 다음과 같은 네 가지 속성으로 구성됩니다: 1. 원자성(Atomicity): 트랜잭션의 모든 작업은 원자적으로 처리되어야 합니다. 즉, 트랜잭션 내의 모든 작업은 전체적으로 성공하거나 전혀 적용되지 않아야 합니다. 작업 중 하나가 실패하면, 이전 상태로 롤백되어야 합니다. 2. 일관성(Consistency): 트랜잭션 전후에 데이터베이스는 일관된 상태를 유지해야 합니다. 즉, 트랜잭션이 실행되기 전과 실행된 후의 데이터베이스 상태는 일관성이 있어야 합니다. 데이터베이스에 정..

잡다한지식 2023.06.05
반응형