일단 씻고 나가자

23.10.10 본문

Study/닥치는 대로 주워 담기

23.10.10

일단 씻고 나가자 2023. 10. 11. 00:39

2023. 10. 10 화요일

 

- [Java] 문자열에서 특정 조건에 부합하는 문자 개수 세는 법?

: stream 이용.

string.chars().filter(str -> str != ‘a’).count();

 

 

- [Java] 문자열로 지정된 두 시간의 차이를 계산하는 법?

: String t1 = “12:00”; String t2 = “13:30”; 두 문자열이 있다고 하자.

우선 java.text.SimpleDateFormat으로 문자열을 시간으로 parse 할 수 있다.

(, java.text.ParseException으로 try catch 감싸주어야 한다.)

 

SimpleDateFormat sdf = new SimpleDateFormat(“HH:mm”);

Date d1 = sdf.parse(t1);

long millisec1 = d1.getTime();

long sec = millisec1/1000 // 1000이면 초로 변환, 1000 * 60 이면 분으로 변환

 

이때 HHkk는 둘 다 24시간 형식이지만 24:00HH00:00, kk24:00으로 표현한다.

 

 

- [Effective Java] 명명 패턴? 단점과 대체 방법?

: JPAcustom method 에서의 경우, postfixImpl을 꼭 붙여주어야 에러를 피할 수 있다. 이는 오타, 원하지 않는 적합 등의 문제로 지향되지 않는다.

따라서 자바에서 지원해주는 annotation custom annotation을 통해 해당 문제를 해결.

 

 

- 소프트웨어 개발 단계에서 설계 단계, 구현 단계, 테스트 단계, 납품/유지보수 단계 설명?

: 언어의 성질에 따라 절차지향과 객체지향으로 나뉜다.

절차지향 내에서도 여러 표현방식이 존재하며(구조도, 협력도, 데이터 흐름도), 전체적으로 하나의 기능을 세부 기능으로 나누어 도식화하고 파트를 나누는 방법이다.

객체지향에서는 UseCase diagram으로 actor(사용자) 기준 어떤 기능을 사용하는지 표기하거나, class diagram으로 각각의 클래스가 어떤 기능을 주고받는지 표기하거나 (디테일하게는 메서드의 명, 연관관계 등까지 표기한다), sequence diagram으로 클래스별 수행 순서 및 연관 기능을 메서드 명과 화살표로 표기하기도 한다.

 

구현 단계의 경우 프로젝트 매니저가 세부 기능별 일정을 나누며, 개발 현황과 개발 기간을 확인한다.

 

테스트(Implementation) 단계의 경우 QA(Quality Assurance)라고도 하며, 각 기능별 세부 테스트 항목을 적어놓고 작동하는지 작성한다. 담당 QA 직원이 있기도 하며, 문제가 없으면 납품한다.

 

납품 단계의 경우 release라고도 하며, Pre-alpha(핵심 기능 동작), alpha(테스트), Beta(외부에 테스트 단계로 명시하고 오픈하여 테스트), RC(Release Candidate, 정식 release 후보), Official Release(완벽한 버전) 등으로 나뉜다. 기업별 정책에 따라 단계 및 명칭은 달라지며, 통상 Beta 버전으로 release하고 테스트한다.

 

유지보수 단계의 경우 Maintenance라 하며, 오픈 후 매일 같은 이슈와 버그, 기능 개선이 필요하며 개발과 유지보수가 7:3 비율을 갖는다.

'Study > 닥치는 대로 주워 담기' 카테고리의 다른 글

23.10.12  (0) 2023.10.13
23.10.11  (0) 2023.10.12
23.10.05  (0) 2023.10.06
23.10.04  (0) 2023.10.04
23.08.04  (0) 2023.08.04