목록분류 전체보기 (167)
코디잉
https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 문제) 듣도 못한 사람 ∩ 보도 못한 사람 접근방식) 1. HashMap 사용해서 Key 이름, Value에는 언급된 횟수를 넣음 2. HashMap 돌면서 value값 2 이상인 거 names 리스트에 추가 3. 사전순으로 출력해야 하므로, names 리스트 정렬 4. StringBuilder에 list 의 size와 이름들 순서대로 append한 뒤에 출력 package codingTestS..
https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net 접근방식 1) [시간초과] Set에 중복없이 저장하고, List로 만들어서 정렬. 그리고 indexOf()로 인덱스 번호 가져오면 됨 → 맨 밑 쪽 indexOf()의 시간복잡도가 O(n)이기 때문에 for문에서의 시간복잡도가 O(n^2)로 시간초과 뜬다. package codingTestStudy.week1; import java.util.*;..
✔ DISTINCT 명령어 - 오라클 9i 버전까지는 DISTINCT 있으면 정렬 수행해서 심각한 속도 저하 발생했으나, 오라클 10g R2 버전부터는 HASH 알고리즘 사용하는 방식으로 변경되어 정렬하지 않아 성능 많이 향상되었음 그래서 정렬 필요하면 별도로 작업해줘야 함 - DISTINCT 키워드는 반드시 SELECT 키워드 다음에 와야 함 - DISTINCT 키워드는 1개의 컬럼에만 적어도 모든 컬럼에 적용된다. 이로 인해 성능 저하 발생할 수 있으니 주의해서 사용해야 함! 잘 모르고 사용하면 사용하면 속도 느려지니 잘 고민하고 반드시 써야하는 곳에만 쓰기! SELECT DISTINCT job, ename ~~ → 결과에 중복되는 job이 안나오는 거 X DISTINCT가 job과 ename 컬럼에..
✔ 다형성으로 인터페이스를 구현한 객체를 실행 시점에 유연하게 변경할 수 있다. ✔ 혼자 있는 객체는 없다. 많은 객체 클라이언트와 객체 서버는 협력 관계를 가진다. ✔ 클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다. → 클라이언트에 영향을 주지 않는 변경이 가능 ✔ 인터페이스를 안정적으로 잘 설계하는 것이 중요하다.
아래 링크에서 버전 확인 후, 설치 https://www.h2database.com/html/download-archive.html Archive Downloads www.h2database.com H2 Console 실행하고, JDBC URL 에 jdbc:h2:~/test 입력 후, Database '~경로~' not found, ~~~ 라고 뜨면서... 연결이 제대로 되지 않아서,, 아래 블로그 방법대로 윈도우 시스템 트레이 아이콘 클릭해서 나온 창으로 시도했더니 바로 됐다. https://abcdefgh123123.tistory.com/331 [java spring] Database "C:/~/test" not found, either pre-create~~ 에러 해결 해결 과정 1. url 창을 ..
✔ DI (Dependency Injection) 설정 ① 필드 주입 ◼ IntelliJ에서도 권장하지 않음 (밑줄 쳐짐) ◼ 중간에 바꿀 수 있는 방법이 아예 없다. @Controller public class MemberController { // DI-1) 필드 주입 @Autowired private MemberService memberService; } ② Setter 주입 ◼ 단점: 누군가가 MemberController를 호출했을 때 setXxx() 가 public으로 열려있어야 한다. setMemberService가 한 번 setting 되면 중간에 바꿀 일이 없는데, public하게 노출되어 있는 상태가 된다. 잘못 바꾸면 문제 생겨버린다. ◼ 의존관계가 실행 중에 동적으로 변하는 경우는 ..
https://yong-codinglog.tistory.com/62 Spring Bean 생성 🔸 DI: Dependency Injection, 의존성 주입 ◼ new 키워드로 객체 생성을 직접하지 않고, 객체 생성을 외부에서 대신 수행 ◼ 클래스/인터페이스 타입의 멤버 변수만 선언하고, 생성자 구현 ✔ 객체를 생 yong-codinglog.tistory.com 이전에도 한 번 적은 거 있음 ✔ Spring Bean 생성 ① 컴포넌트 스캔 방식 (Component Scan) @Component - @Controller - @Service - @Repository ◼ @Controller, @Service, @Repository 어노테이션이 있으면, 스프링 빈으로 자동 등록된다. ex) @Controlle..
◼ Service: 핵심 비즈니스 로직 (ex. 회원 중복가입 불가 등) ◼ Repository: DB에 접근, 도메인 객체를 DB에 저장 및 관리 비즈니스 도메인 객체를 가지고, 핵심 비즈니스 로직이 동작하도록 구현한 객체 ◼ Domain: 비즈니스 도메인 객체 (ex. 회원, 주문 등)
✔ 정적 컨텐츠, MVC 방식 @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } } ◼ Web Application 에서 첫번째 진입점: Controller ◼ localhost:8090/hello 라고 들어오면, 서버에서 받아서 Spring 한테 물어봄 그럼 Spring이 '/hello'와 매칭되는 게 있는지 Controller 먼저 찾아봄(Controller가 우선순위를 가짐) → ① 매핑되는 컨트롤러가 있으면, 해당 컨트롤러의 메서드 실행 → ② 매핑되는 컨트롤러가 없으면,..