728x90
반응형

전체 글 153

[Spring] 스프링 주요 어노테이션, Update(수정) 시 save() 메서드를 호출하는 것이 좋을까?

어노테이션 @Repository : 스프링 빈으로 등록되도록 해주고, JPA Exception을 Spring 기반 Exception으로 변환 @Service : 비즈니스 로직을 처리하는 객체를 스프링 빈으로 등록 @Transactional : 트랜잭션을 보내고, 트랜잭션의 성질을 기준으로 commit할 지, rollback할 지 판단해줍니다. readOnly = true : 데이터 변경이 없는 메서드에 사용 영속성 context를 flush하지 않으므로 약간의 성능 향상을 기대할 수 있음 기본값은 false이므로 메서드의 용도에 맞게 annotation을 정해야 함 @RequiredArgsConstructor : Spring boot에서 final 처리된 필드를 파라미터로 갖는 생성자를 만들어줌 따라서 ..

Tech/Spring 2023.04.10

[아키텍처] 계층형, MVC, 마이크로서비스, 헥사고날 아키텍처, 장단점

계층형 아키텍처 controller, web: 웹 계층 service: 비즈니스 로직, 트랜잭션 처리 repository: JPA를 직접 사용하는 계층, 엔티티 매니저 사용 domain: 엔티티가 모여 있는 계층, 모든 계층에서 사용 | 비즈니스와 관련된 도메인 로직 처리, 도메인을 조작하기 위한 모든 것 계층형 아키텍처와 수직 계층 프레젠테이션 계층 (Presentation Layer) 사용자와의 인터페이스(UI)를 담당하는 계층 주로 컨트롤러(Controller)와 뷰(View)로 구성 사용자의 요청을 처리하고, 결과를 화면에 출력 MVC를 사용하여 쉽게 구현 가능 비즈니스 계층 (Business Layer) 비즈니스 로직을 처리하는 계층 주로 서비스(Service)로 구성 사용자의 요청을 받아서 비..

Tech/Server 2023.04.02

[BOJ] 백준 13023 ABCDE c++ (DFS, 백트래킹)

문제 출처 : https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 풀이 조건과 같은 친구 관계가 있는지 구하는 문제이다. DFS로 친구를 찾아가고 중간에 기존에 있었던 친구가 나오면 탐색을 중단하는 백트래킹을 사용하면 된다. 친구 추가 a,b가 입력됐을때 a와 b는 서로 친구이므로 a, b 모두 친구 리스트에 push 해준다. vector v[2001]; vector check(2001, false); for(int i = 0; i > a >> b; v[a].push_back(b); v[b].push_bac..

Tech/Algorithm 2023.03.26

[BOJ] 백준 17404 RGB거리 2 c++ (dp)

문제 출처 : https://www.acmicpc.net/problem/17404 17404번: RGB거리 2 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 풀이 https://www.acmicpc.net/problem/1149 의 응용 문제이다. 기존 문제는 마지막 N번집에서 1번집 고려를 하지 않았지만 이번에는 고려해야 한다. 마지막 집 -> 첫 집 결국 마지막에서 첫 집을 고려해야 하기에, rgb 반복문을 돌려 첫 집을 어디로 선택할지 순회하며 계산하면 된다. for(int rgb = 0; rgb > a..

Tech/Algorithm 2023.03.23

[Git] git stash 사용법, 커밋없이 브랜치 변경하기

git stash 란? 작업 도중 커밋을 할 수는 없는 상태지만, 브랜치 전환을 하거나 커밋 변경을 해야할때 임시적으로 저장할 수 있는 명령어 commit되기 이전 작업 중 파일과 git add로 추가된 파일 까지 모두 stash 영역으로 저장되며 수정분량은 제거됨 git add 명령어로 한번이라도 index 영역에 트래킹 된 파일만 stash영역으로 저장 git stash 명령어 git stash : 기본 이름 WIP 로 저장됨 git stash save 이름 으로 원하는 이름 설정 가능 git stash list stash 한 목록들 확인 git stash apply 가장 최근에 저장한 stash를 복원 git stash apply 아이디 아이디 는 git stash list 명령어를 실행시 리스트 ..

Tech/Git 2023.03.23

[Spring Data JPA] 스프링 테이블, 컬럼명 생성 전략

이 포스트는 김영한님의 스프링부트와 JPA 활용1 강의 내용 기반으로 요약하였다. 테이블, 컬럼명 생성 전략 스프링 부트에서 하이버네이트 기본 매핑 전략을 변경해서 실제 테이블 필드명은 다름 하이버네이트 기존 구현: 엔티티의 필드명을 그대로 테이블의 컬럼명으로 사용 ( SpringPhysicalNamingStrategy ) 스프링 부트 신규 설정 (엔티티(필드) 테이블(컬럼)) 자동으로 변환됨. 카멜 케이스 → 언더스코어(memberPoint → member_point) .(점) → _(언더스코어) 대문자 → 소문자 적용 2 단계 논리명 생성 명시적으로 컬럼, 테이블명을 직접 적지 않으면 ImplicitNamingStrategy 사용 spring.jpa.hibernate.naming.implicit-st..

Tech/Spring 2023.03.22

[Spring Data JPA] 스프링 Entity 설계 시 주의사항

이 포스트는 김영한님의 스프링부트와 JPA 활용1 강의 내용 기반으로 요약하였다. 엔티티 설계시 주의점 1. 외래 키가 있는 곳을 연관관계의 주인으로 정할 것 연관관계의 주인은 단순히 외래 키를 누가 관리하냐의 문제 비즈니스상 우위에 있다고 주인으로 정하면 안됨 ex) 자동차와 바퀴가 있으면, 일대다 관계에서 항상 다쪽에 외래 키가 있으므로 외래 키가 있는 바퀴를 연관관계의 주인으로 정함 물론 자동차를 연관관계의 주인으로 정하는 것이 불가능 한 것은 아니지만, 자동차를 연관관계의 주인으로 정하면 자동차가 관리하지 않는 바퀴 테이블의 외래 키 값이 업데이트 되므로 관리와 유지보수가 어렵고, 추가적으로 별도의 업데이트 쿼리가 발생하는 성능 문제도 있다. 2. 엔티티에는 가급적 Setter 사용하지 말 것 S..

Tech/Spring 2023.03.21

[BOJ] 백준 17144 팰린드롬? c++ (dp)

문제 출처 : https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 풀이 입력한 구간이 팰린드롬인지 확인하는 문제이다! 시간 제한에서 dp로 풀어야 한다는 것을 알았다. 어떻게 하면 dp로 풀 수 있을까? 먼저 dp 배열을 하나 선언한다. (기본 false) bool dp[2001][2001]; 해당 배열에서 dp[i][j]는 i번째 수부터 j번째 까지 팰린드롬인지 여부를 나타난다. S, E가 같은 경우 ex) 1 이 경우는 팰린드롬이다! => 따라서 dp[i][i]는 true이다. S,..

Tech/Algorithm 2023.03.21

[BOJ] 백준 17144 미세먼지 안녕! c++ (시뮬레이션, 구현) - 삼성 SW 역량 테스트 기출 문제

문제 출처 : https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 풀이 미세먼지는 동시에 네 방향으로 확산하고 공기청정기는 미세먼지를 밀어내는 시뮬레이션이다. 여기서 핵심은 동시에 확산한다는 것이다. 이 부분을 못봐서 헤맸었다.... 두번째는 공기청정기 위, 아래에 따라 밀어내는 방향이 다르다. 미세먼지 동시 확산 동시에 확산하는 것을 구하려면 어떻게 해야 할까? 바로 추후 한 번에 추가할 배열을 따로 선언하고, 거기에 각 계산 결과를 넣어두었다..

Tech/Algorithm 2023.03.20

[ICT 학점연계 인턴십] 2023년 상반기 ICT 인턴십 최종 합격 후기 (서류, 코딩테스트, 면접)

개요 매해 여름/겨울 방학 시즌에 ict 인턴을 모집한다! 처음에는 학교를 다닐 계획이었으나 전공 6, 교양 9학점까지 얻을 수 있고 인턴십 경험도 쌓을 수 있어(돈은 덤) 4-1에 ict 인턴십을 지원하였다. https://www.ictintern.or.kr/main.do ICT 학점연계 프로젝트 인턴십 ICT 학점연계 프로젝트 인턴십 www.ictintern.or.kr 지원 회사 기준 4-1의 전공과 교양수업보다 의미있는 인턴생활이 되어야 했기에, 나름의 기준을 정하고 지원하였다. 그 기준은 아래와 같다. 대부분 알고 있는 회사거나, 들어본 서비스를 가지고 있는 회사인가? 규모가 어느정도 있는 회사인가? (100명 이상, 개발 인원 수도 확인) 개발 문화, 사내 문화가 괜찮은 회사인가? (사내 문화 ..

Career 2023.03.19
728x90
반응형