소프트웨어 공학

시스템 개발 수명주기 내에서 작업하는 전문가, 학자 및 학생을위한 Q & A

1
REST API 보안 : HMAC / 키 해싱 및 JWT
방금 몇 년 된 이 기사 를 읽었 지만 REST API를 보호하는 영리한 방법을 설명합니다. 본질적으로 : 각 클라이언트에는 고유 한 공개 / 개인 키 쌍이 있습니다 클라이언트와 서버 만이 개인 키를 알고 있습니다. 그것은 와이어를 통해 전송되지 않습니다 각 요청마다 클라이언트는 여러 입력 (전체 요청 자체, 현재 타임 스탬프 …

1
모듈로 / 리마인더를 의미하기 위해 퍼센트 부호 (%)를 사용하는 프로그래밍 언어는 무엇입니까?
모듈로 / 리마인더를 의미하기 위해 퍼센트 부호 (%)를 사용하는 프로그래밍 언어는 무엇입니까? 이 이전 게시물 1 은 기호 %가 분할과 관련된 작업에 슬래시, 영리함을 포함하여 선택되었을 가능성이 있음을 설명합니다. 또한 C의 기호 사용에 따른 영향에 대해서도 언급합니다. 그러나 C에서 유래 한 것이 확실하지 않습니다. B 프로그래밍 언어는 C의 선구자였으며 B에 …

3
ViewModel을 Model과 정확히 동일하게 추가하는 것이 좋습니다
내 솔루션에 다음 레이어가 있습니다. App.Domain App.Service App.Core (이 App.DataLayer라고도 함) App.Web 소프트웨어 디자인 패턴은 제 질문이 아닙니다. Domain public class Foo { public int Id {get;set;} public int Name {get;set;} public int Value {get;set;} } 뷰 (예 : 홈페이지) 에서이 모델을 사용 Id, Name & Value하고 싶고을 사용하고 싶습니다 …

1
프로그레시브 HTTP 다운로드는 라이브 비디오를 제공하기 위해 HLS / DASH / RTMP의 대안이 될 수 있습니까?
라이브 비디오를 사용자에게 스트리밍해야하는 웹 사이트에서 작업 중이므로 현재 브라우저 기반 비디오 스트리밍 기술의 미안한 상태를 둘러 봐야했습니다. 현재 라이브 스트리밍에 가장 많이 사용되는 솔루션에는 호환성 문제가 있습니다. RTMP에는 Flash가 필요하고 HLS는 Safari 및 Android 용 Chrome에서만 기본적으로 지원되며 DASH 는 기본적으로 어디서나 지원 되지 않으며 dash.js를 사용 하려면 아직 …

2
직렬화 및 직렬화 해제는 직렬화되는 클래스의 책임이어야합니까?
현재 C # .NET 응용 프로그램의 여러 모델 클래스의 (재) 디자인 단계에 있습니다. (MVC의 M과 같은 모델). 모델 클래스에는 이미 잘 디자인 된 많은 데이터, 동작 및 상호 관계가 있습니다. 파이썬에서 C #으로 모델을 다시 작성하고 있습니다. 오래된 파이썬 모델에서는 사마귀가 보인다고 생각합니다. 각 모델은 직렬화 방법을 알고 있으며 직렬화 …

4
상수 시간과 상각 상수 시간은 사실상 동등한 것으로 간주됩니까?
Constant Time (O (1))에서 추가 및 무작위 제거를 허용하는 RandomQueue를 작성해야합니다. 내 첫 번째 생각은 배열이 인덱스를 통해 지속적으로 액세스하기 때문에 일종의 Array (ArrayList를 선택)로 백업하는 것이 었습니다. 문서를 살펴보면 ArrayLists의 추가가 Amortized Constant Time으로 간주된다는 것을 알았습니다. 추가에는 기본 배열의 재 할당이 필요하기 때문에 O (n)입니다. Amortized Constant Time과 …

5
인터페이스 (OOP)의 시맨틱 계약이 기능 서명 (FP)보다 유익한 정보입니까?
일부는 SOLID 원칙을 최대한 활용하면 기능적 프로그래밍을하게 된다고 말합니다 . 나는이 기사에 동의하지만 인터페이스 / 객체에서 함수 / 클로저로의 전환에서 일부 의미가 손실된다고 생각하며 함수 프로그래밍이 손실을 완화시키는 방법을 알고 싶습니다. 기사에서 : 또한 ISP (Interface Segregation Principle)를 엄격하게 적용하면 헤더 인터페이스보다 역할 인터페이스를 선호해야합니다. 더 작고 더 작은 인터페이스를 …

7
더 빠른 것은 무엇입니까? REST API를 사용하거나 데이터베이스를 직접 쿼리 하시겠습니까?
현명하게 더 빠른 성능은 무엇입니까? REST API를 생성하고 웹 앱이 REST API를 사용하여 데이터베이스와의 모든 상호 작용을 수행하거나 데이터베이스를 직접 쿼리 (예 : 언어가 JDBC for Java와 같은 데이터베이스를 쿼리하는 데 사용하는 일반적인 객체 사용)? REST로 보는 방법 : 코드에서 객체를 만들어 REST 메소드를 호출합니다. http 메소드 호출 REST API …
16 database  rest  sql 

5
데이터베이스 내용을 제어하는 ​​버전
사용자가 편집 할 수있는 콘텐츠가 포함 된 웹 프로젝트를 진행 중이며 데이터베이스에있는 실제 콘텐츠의 버전 추적을 수행하고 싶습니다. 기본적으로 위키 스타일 변경 기록을 구현하고 싶습니다. 몇 가지 배경 조사를 통해 데이터베이스 스키마의 버전을 관리하는 방법에 대한 많은 문서를 볼 수 있지만 (실제로 이미 제어되고 있음) 데이터베이스 버전 변경 사항 을 …

9
(n ^ 2 + n) / 2 성장률을 가진 알고리즘에 대한 Big O 질문
큰 O 표기법에 관한 한 가지 측면에 대해 혼란 스럽기 때문에이 질문을하고 있습니다. Frank Carrano의 Java 로 데이터 구조 및 추상화 책을 사용하고 있습니다. "알고리즘 효율성"장에서 다음 알고리즘을 보여줍니다. int sum = 0, i = 1, j = 1 for (i = 1 to n) { for (j = 1 …
16 algorithms  big-o 

4
생산 지사가 있거나 마스터를 사용합니까?
Rails응용 프로그램 에서 다른 원격 개발자와 함께 소규모 팀에서 일하고 있습니다. git워크 플로우 수정을 시작했습니다 . 우리는 다음과 같은 분기 구조에 대해 생각했습니다. (dev) -> (qa) -> (stag) -> (master) 그러나 일부 개발자는 마스터에서 자동으로 프로덕션 환경으로 전환 할 수있는 새로운 개발자에게는 혼동을 줄이겠다 고 생각했습니다. 그들은 모두가 마스터 작업을하고 …
16 git 

2
상위 매개 변수 다형성이 유용합니까?
나는 모든 사람들이 일반적인 형식의 방법에 익숙하다고 확신합니다. T DoSomething<T>(T item) 이 기능은 PP (parametrically polymorphic), 특히 순위 1 PP 라고도 합니다. 이 방법이 다음 형식의 함수 객체를 사용하여 표현 될 수 있다고 가정 해 봅시다. <T> : T -> T 즉, <T>하나의 유형 매개 변수를 사용하고 유형의 매개 T …

4
많은 매개 변수를 가진 단일 메소드 대 순서대로 호출해야하는 많은 메소드
나는 많은 일을해야하며 (이동, 회전, 특정 축을 따라 크기 조정, 최종 위치로 회전) 코드 가독성을 유지하기 위해 이것을 수행하는 가장 좋은 방법을 잘 모르겠습니다. 한편으로, 필요한 것을 수행하기 위해 많은 매개 변수 (10+)를 사용하여 단일 방법을 만들 수 있지만 이것은 악몽을 읽는 코드입니다. 반면에 각각 1-3 개의 매개 변수로 여러 …
16 java  readability 

3
대규모 뷰 컨트롤러-iOS-솔루션
모든 새로운 iOS 개발자에게는 다음과 같은 문제가 있다고 확신합니다. View Controller는 다양한 목적으로 코드가 매우 빠르게 혼잡하여 500 줄 이상의 코드를 쉽게 얻을 수 있습니다. 다음은 두 가지 기본 및 공통 화면의 모습입니다. 1) 양식 화면 : 2) 테이블 뷰 컨트롤러 화면 지금까지 두 가지 솔루션에 대해 읽었습니다. 첫 번째 …
16 mvc  ios  objective-c 

2
Apache 2.0에서 라이센스가 부여 된 라이브러리를 사용하는 경우 프로젝트 소스 코드를 제공해야합니까?
개인 (예 : 소스를 공유 할 기회가 없음) 및 상업용 응용 프로그램이 있으므로 이제 Apache 2.0 라이센스 하에있는 라이브러리를 사용하고 싶습니다 . Apache 라이센스 및 FAQ 섹션을 읽었지만 이에 대해 명확하지 않습니다. 애플리케이션이 소스 코드를 제공하도록 강제하는 GPL3과 동일합니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.