목록자바 (44)
최코딩의 개발노트
이번시간에는 필자가 개발을 하면서 스프링을 통해 네이버와 구글로 메일로 보내는 법을 소개 할 것입니다~ 네이버네이버는 앞서 2단계 보안이 해지된채로 설정을 해줘야됩니다. 만약 이과정이 번거로우시면 새계정을 파시는것을 추천드립니다. 네이버 환경설정 - POP3/IMAP 설정에 들어와서 다음과 같이 해줍니다. 그 후 바로 아래에 아이디, 비밀번호, SMTP 서버명, SMTP 포트 번호를 기억해둡시다. 이렇게 하면 세팅이 다 됐습니다! 이제 인텔리제이로 들어가서 작업을 해줘야 됩니다. 1. Gradle 작업implementation 'org.springframework.boot:spring-boot-starter-mail:3.2.5' 메일 의존관계를 위해 Gradle에 다음과 같이 추가를 해줍니다. 현재..
상속관계 매핑 조인 전략(JOINED) - 조인 전략은 위와 같이 객체랑 관계형DB랑 구조가 비슷할 때 사용하는 것이다. @Entity // 중복되는 속성들을 다 하위로 보냄 즉 item 테이블 d없음 근데 쿼리 em.find 할때 union해서 다 뒤짐 //@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) // 이거 안쓰면 상속받은 애들 다 한테이블로 추가됨 즉 상속으로 나뉘게 해주는거 innerjoin @Inheritance(strategy = InheritanceType.JOINED) // 다 통일한 단일 테이블 추가로 discrim 없어도 dtype 생김 //@Inheritance(strategy = InheritanceType.SINGLE_TA..
사이트 https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 분석 뭔가 간단하면서 조금 헷갈린 문제였다. 먼저 입력이 아래와 같으면 4 2 9 7 9 1 출력이 아래와 같이 나와야된다. 1 7 1 9 7 1 7 9 9 1 9 7 9 9 즉 중복되는 것만 빼면 된다. 중복을 안빼면 1 7 1 9 1 9 이렇게 2개의 1 9가 나오는 것이다. 그래서 필자는 가장먼저 Set을 생각했다. if (depth == m) { StringBuilder sb..
사이트 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 문제 분석 필자가 드디어 백트래킹을 마스터했다.! 일단 이 문제는 입력이 아래와 같으면 2 5 6 0 0 1 0 출력은 위에 최대 아래 최소로 나와야 된다. 30 30 즉 입력의 첫째줄은 2는 수의 갯수, 둘째줄은 수를 입력한 것이고, 셋째줄은 = - * / 의 순서로 갯수를 나타낸 것이다. 조건이 나열한 숫자는 이동을 안해도 된다..
사이트 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제 분석 - 필자가 그렇게 풀고 싶었던 문제를 풀었다... 그래프 문제를 하도 많이 풀어서 그래프 틀 알고리즘을 세우는 것은 어렵지 않았고 오히려 재밌었다! - 하지만 벽을 무조건 3개 세우는 알고리즘을 도대체 어떻게 구현을 해야하는지 정말 많은 고민을 해왔다. 전체 경우의 수를 구해서 for 구문을 세울려고 했지만 이거는 너무 노가다일뿐더러 오히려 짜기 복자했고 bfs로 구현할라해도 좀 뭔가 안맞아..
JdbcTemplate 적용 - 기본 private final JdbcTemplate jdbcTemplate; public JdbcTemplateItemRepositoryV1(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } JdbcTemplate 설정은 다음과 같이 해준다. public Item save(Item item) { String sql = "insert into item (item_name, price, quantity) values (?, ?, ?)"; KeyHolder keyHolder = new GeneratedKeyHolder(); // 키값 가져옴 jdbcTemplate.update(con -> ..