본문 바로가기

분류 전체보기

(644)
[프로그래머스/자바] 문자열 내 p와 y의 개수 class Solution { boolean solution(String s) { s = s.toLowerCase(); char[] list = s.toCharArray(); int p = 0; int y = 0; for(char c : list) { if (c == 'p') p++; else if (c == 'y') y++; } return p == y; } }
[프로그래머스/자바] 문자열 압축 import java.util.*; class Solution { public int solution(String s) { int answer = Integer.MAX_VALUE; StringBuilder sb = new StringBuilder(); for (int i = 1; i s.length()) list.add(s.substring(j, s.length())); else list.add(s.substring(j, j + i)); } String last = ""; int count = 0; for (String value : list) { if (last.equals(value)) { count++; } else { if (count > 1) sb.append(count); sb.append(l..
[프로그래머스/자바] 이상한 문자 만들기 class Solution { public String solution(String s) { StringBuilder sb = new StringBuilder(); boolean upperFlag = true; for (char c : s.toCharArray()){ if (!Character.isAlphabetic(c)) { sb.append(c); upperFlag = true; } else { if (upperFlag) { sb.append(Character.toUpperCase(c)); } else sb.append(Character.toLowerCase(c)); upperFlag = !upperFlag; } } return sb.toString(); } }
Trigger Trigger - DB에서 어떤 이벤트가 발생했을 때 자동적으로 실행되는 프로시저 - 데이터에 변경이 생겼을 때, 즉 DB에 insert, update, delete가 발생했을 때 이것이 계기가 되어 자동적으로 실행되는 프로시저를 의미한다. 사용자의 닉네임 변경 이력을 저정하는 트리거 table => users(id, nickname) / users_log(id, nickname, until) delimiter $$ CREATE TRIGGER log_user_nickname_trigger BEFORE UPDATE ON users FOR EACH ROW BEGIN ㅤㅤinsert into users_log values(OLD.id, OLD.nickname, now()); END $$ delimiter ; ..
[프로그래머스/자바] 시저 암호 class Solution { public String solution(String s, int n) { StringBuilder sb = new StringBuilder(); for (char c : s.toCharArray()) { if (!Character.isAlphabetic(c)) { sb.append(c); continue; } char target = c
[JPA] 7장 - 고급 매핑(1) - 상속 관계 매핑 상속 관계 매핑 - ORM에서 이야기하는 상속 관계 매핑은 객체의 상속 구조와 데이터베이스의 슈퍼타입 서브타입 관계를 매핑하는 것이다. - 슈퍼타입 서브타입 논리 모델을 실제 물리 모델인 테이블로 구현할 때는 3가지 방법을 선택할 수 있다. => 각각의 테이블로 변환, 통합 테이블로 변환, 서브타입 테이블로 변환 조인 전략 - 엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본 키를 받아서 기본 키 + 외래 키로 사용하는 전략 - 조회할 때 조인을 자주 사용한다. - 객체는 타입으로 구분할 수 있지만 테이블은 타입의 개념이 없으므로 타입을 구분하는 컬럼을 추가해야 한다. @Entity @Inheritance(strategy = InheritanceType.JOINED) @Discrimi..
[NHN FORWARD 22] DDD 뭣이 중헌디? https://youtu.be/6w7SQ_1aJ0A?si=fAUjOr_9__NadgRP DDD에 대한 오해 - DDD는 전술적 패턴이다. => DDD에서 전략적 설계가 중요하다. - DDD는 은탄환이다, MSA로 귀결된다, 방법론이다, 기술이나 구현 영역이다 ... 등등 DDD(Domain Driven Design) - 패턴 사용법이나 구체적 방법론이 아닌, 오히려 추상적인 철학이나 접근법이라고 할 수 있다. - 전략적 설계에 근간을 두고 있다! 전략적 설계 - 비즈니스 도메인 : 회사가 고객에게 제공하는 서비스 영역 - 문제 도메인 : 비즈니스 영역 중 일부(또는 전체) 영역을 소프트웨어를 통해 해결하고자 할 때, 해당 영역(문제 해결을 통한 가치 창출) 전략적 설계 과정 1. 비즈니스 도메인에서 문제..
[이펙티브 자바 3/E] 아이템20 - 추상 클래스보다는 인터페이스를 우선하라 - 자바가 제공하는 다중 구현 메커니즘 두 가지 => 인터페이스, 추상 클래스 - 두 메커니즘 모두 인스턴스 메서드를 구현 형태로 제공할 수 있다. (자바 8부터 인터페이스도 디폴트 메서드를 제공할 수 있게 됨) - 가장 큰 차이점 : 추상 클래스가 정의한 타입을 구현하는 클래스는 반드시 추상 클래스의 하위 클래스가 되어야 한다. 인터페이스가 선언한 메서드를 모두 정의하고 그 일반 규약을 잘 지킨 클래스라면 다른 어떤 클래스를 상속했든 같은 타입으로 취급된다. 인터페이스의 장점 - 기존 클래스에도 손쉽게 새로운 인터페이스를 구현해넣을 수 있다. - 믹스인(mixin) 정의에 안성맞춤이다. * 믹스인이란 클래스가 구현할 수 있는 타입으로, 믹스인을 구현한 클래스에 원래의 '주된 타입' 외에도 특정 선택적 ..