API 란 무엇입니까? 응용 프로그래밍 인터페이스 설명

API는 명령 줄 도구에서 엔터프라이즈 Java 코드, Ruby on Rails 웹 앱에 이르기까지 모든 곳에 적용되는 개념 인 애플리케이션 프로그래밍 인터페이스를 의미합니다. API는 별도의 소프트웨어 구성 요소 또는 리소스와 프로그래밍 방식으로 상호 작용하는 방법입니다. 처음부터 모든 한 줄의 코드를 작성하지 않는 한, 각각 자체 API를 사용하여 외부 소프트웨어 구성 요소와 상호 작용하게됩니다. 완전히 처음부터 무언가를 작성하더라도 잘 설계된 소프트웨어 응용 프로그램에는 코드를 구성하고 구성 요소를보다 재사용 가능하게 만드는 데 도움이되는 내부 API가 있습니다. 그리고 웹을 통해 다른 곳에서 개발 된

C #에서 추상 클래스와 인터페이스를 사용하는 경우

응용 프로그램을 디자인 할 때 추상 클래스를 사용할 때와 인터페이스를 사용할 때를 아는 것이 중요합니다. 추상 클래스와 인터페이스가 어떤면에서 비슷해 보이지만 달성하려는 작업에 가장 적합한 선택을 결정하는 주요 차이점이 있습니다. 이 블로그 게시물에서는 이러한 차이점과 사용시기를 결정하는 방법에 대해 설명합니다. 짧은 대답 : 추상 클래스를 사용하면 하위 클래스가 구현하거나 재정의 할 수있는 기능을 만들 수 있습니다. 인터페이스는 기능을 구현하는 것이 아니라 정의 만 허용합니다. 클래스는 하나의 추상 클래스 만 확장 할 수 있지만 여러 인터페이스를 활용할 수 있습니다.

CI / CD 란 무엇입니까? 지속적 통합 및 지속적 전달 설명

CI (지속적 통합) 및 CD (지속적 배포)는 애플리케이션 개발 팀이 코드 변경을 더 자주, 안정적으로 제공 할 수 있도록하는 문화, 일련의 운영 원칙 및 관행 모음을 구현합니다. 구현은 CI / CD 파이프 라인 이라고도합니다 .  CI / CD는 devops 팀이 구현할 모범 사례 중 하나입니다. 또한 배포 단계가 자동화되어 있기 때문에 소프트웨어 개발 팀이 비즈니스 요구 사항, 코드 품질 및 보안을 충족하는 데 집중할 수 있으므로 민첩한 방법론 모범 사례입니다. CI / CD 정의 지속적인 통합  은 개발 팀이 작은 변경 사항을 구현하고 코드를 버전 제어 저장소에 자주 체크인하도록 유도하는 코딩 철학이자 일련의 관행

애자일 방법론이란 무엇입니까? 최신 소프트웨어 개발 설명

오늘날 모든 기술 조직은 소프트웨어 개발 또는 그 버전을위한 애자일 방법론을 실행하는 것처럼 보입니다. 아니면 적어도 그들은 그렇게 믿습니다. 애자일 애플리케이션 개발을 처음 접하든 수십 년 전에 워터 폴 소프트웨어 개발 방법론을 사용하여 소프트웨어 개발을 배웠 든 관계없이 오늘날 작업은 최소한 애자일 방법론의 영향을받습니다. 그러나 애자일 방법론이란 무엇이며 소프트웨어 개발에서 어떻게 실행되어야할까요? 애자일 개발은 실제로 폭포수와 어떻게 다른가요? 애자일 소프트웨어 개발 라이프 사이클 또는 애자일 SDLC는 무엇입니까? 그리고 Scrum Agile과 Kanban 및 기타 Agile 모델은 무엇입니까?  애자일은 2001 년 17 명의 기술자가 애자일 선언문을 작성하면서 공식적으로 시작되었습니다. 그들은 더 나은 소프트웨어 개발을 목표로 애자일 프로젝트 관리를위한 네 가지 주요 원칙을 작성했습

Adobe Flash의 수명이 다함

인터넷에서 리치 미디어 콘텐츠를 표시하기위한 브라우저 기반 런타임 인 ​​Adobe의 한때 유비쿼터스 Flash Player는 중국 본토 이외의 모든 지역에 대한 최종 예정된 기술 릴리스를 완료하면서 길을 끝냈습니다. 최종 릴리스는 12 월 8 일에 이루어졌습니다. Adobe는 이달 이후 더 이상 Flash Player를 지원하지 않습니다. 2021 년 1 월 12 일부터 Flash 콘텐츠가 Flash Player에서 실행되지 않도록 차단됩니다.  Adobe는 모든 사용자에게 시스템을 보호하기 위해 Flash Player를 즉시 제거 할 것을 권장합니다. 릴리스 노트에서 Adobe는

PaaS 란 무엇입니까? 서비스로서의 플랫폼 설명

PaaS (Platform-as-a-Service)는 서비스 제공 업체가 클라이언트에게 플랫폼을 제공하여 소프트웨어와 같은 인프라를 구축 및 유지 관리 할 필요없이 비즈니스 애플리케이션을 개발, 실행 및 관리 할 수 ​​있도록하는 클라우드 컴퓨팅 제품 유형입니다. 일반적으로 개발 프로세스가 필요합니다. PaaS 아키텍처는 기본 인프라를 개발자와 다른 사용자의 눈에 띄지 않게 유지하기 때문에이 모델은 클라우드 서비스 공급자가 서버를 프로비저닝하고 실행하는 서버리스 컴퓨팅 및 서비스로서의 기능 (FaaS)의 개념과 유사합니다. 자원 할당을 관리합니다.  FaaS는 기

클라우드 컴퓨팅이란 무엇입니까? 지금 알아야 할 모든 것

클라우드 컴퓨팅에는 두 가지 의미가 있습니다. 가장 일반적인 것은 "퍼블릭 클라우드"모델이라고도하는 상용 제공 업체의 데이터 센터에서 인터넷을 통해 원격으로 워크로드를 실행하는 것을 말합니다. Amazon Web Services (AWS), Salesforce의 CRM 시스템 및 Microsoft Azure와 같은 인기있는 퍼블릭 클라우드 제품은 모두 이러한 익숙한 클라우드 컴퓨팅 개념을 잘 보여줍니다. 오늘날 대부분의 기업은 멀티 클라우드 접근 방식을 취합니다. 즉, 둘 이상의 퍼블릭 클라우드 서비스를 사용한다는 의미입니다. 클라우드 컴퓨팅의 두 번째 의미는 작동 방식을 설명합니다. 즉, 원시 컴퓨팅 성능에서 애플리케이션 기능에 이르기까지 온 디맨드로 사용 가능한 가상화 된 리소스 풀입니다. 고객이 클라우드 서비스를 조달 할 때 공급자는 수동 프로비저닝이 아닌 고급 자동화를 사용하여 이러한 요청을 이행합니다. 주요 이점은 민첩성입니다. 추상화 된

SaaS 란 무엇입니까? SaaS (Software-as-a-Service) 정의

가장 널리 사용되는 클라우드 컴퓨팅 형태 중 하나는 SaaS (Software-as-a-Service)입니다. 다음은 간단한 SaaS 정의입니다. 서비스 제공 업체가 고객 용 애플리케이션을 호스팅하고 인터넷을 통해 이러한 고객이 사용할 수 있도록하는 소프트웨어 배포 모델입니다. SaaS는 IaaS (Infrastructure-as-a-Service) 및 PaaS (Platform-as-a-Service)와 함께 클라우드 서비스의 세 가지 주요 범주 중 하나입니다. SaaS 예 액세스 용이성을 고려할 때 소프트웨어 제공의 SaaS 모델은 많은 유형의 비즈니스 애플리케이션에서 일반적이되었으며 많

SQL이란 무엇입니까? 데이터 분석의 언어

오늘날 Structured Query Language는 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단이지만 제품간에 독점적 인 확장이 있습니다. SQL의 용이성과 편재성 덕분에 많은 "NoSQL"또는 Hadoop과 같은 비 관계형 데이터 저장소의 작성자가 SQL의 하위 집합을 채택하거나 고유 한 SQL과 유사한 쿼리 언어를 만들게되었습니다. 그러나 SQL이 항상 관계형 데이터베이스의 "범용"언어는 아니 었습니다. 처음 (1980 년경)부터 SQL은 그것에 대해 특정 공격을가했습니다. 저를 포함한 당시 많은 연구자와 개발자는 SQL의 오버 헤드가 프로덕션 데이터베이스에서 SQL이 실용적이지 못하도록 할 것이라고 생각했습니다. 분명히 우리는 틀 렸습니다. 그러나 많은 사람들은 SQL의 모든 용이성과 접근성 때문에 런타임 성능에 대한 가격

Java IDE 선택

업데이트 날짜 : 2018 년 12 월 . 모든 Java 개발자에게는 Java 작성과 클래스 라이브러리 및 프레임 워크 사용의 복잡한 부분을 지원할 수있는 프로그래밍 편집기 또는 IDE가 필요합니다. 가장 적합한 편집기 또는 IDE를 결정하는 것은 개발중인 프로젝트의 특성, 조직에서의 역할, 개발 팀에서 사용하는 프로세스, 프로그래머로서의 레벨 및 기술을 포함하여 여러 가지 사항에 따라 달라집니다. 추가 고려 사항은 팀이 도구를 표준화했는지 여부와 개인 선호도입니다. 서버 측 Java 개발을 위해 가장 자주 선택되는 세 가지 IDE는 IntelliJ IDEA, Eclipse 및 NetBeans입니다. 그러나 이것이 유일한 선택은 아니며이 리뷰에는 가벼운 IDE도 포함됩니다. 이번 검거를 위해 저는 IntelliJ IDEA Ultimate 2018.3, Java EE 개발자 용 Eclipse IDE 2018‑09 및 Mac에서 Apache NetBeans (인큐베이팅) IDE 9를 새로 설치했습니다.

JSON이란? 데이터 교환을위한 더 나은 형식

JavaScript Object Notation은 키-값 쌍 및 정렬 된 목록을 기반으로하는 구조화 된 데이터의 스키마없는 텍스트 기반 표현입니다. JSON은 JavaScript에서 파생되었지만 기본적으로 또는 대부분의 주요 프로그래밍 언어의 라이브러리를 통해 지원됩니다. JSON은 일반적으로 웹 클라이언트와 웹 서버간에 정보를 교환하는 데 사용되지만 배타적이지는 않습니다.  지난 15 년 동안 JSON은 웹에서 유비쿼터스가되었습니다. 오늘날 거의 모든 공개적으로 사용 가능한 웹 서비스에 대한 선택 형식이며 개인 웹 서비스에도 자주 사용됩니다. JSO

검토 : 6 가지 최고의 JavaScript IDE

오늘날 JavaScript는 다양한 종류의 응용 프로그램에 사용됩니다. 대부분의 경우 JavaScript는 HTML5 및 CSS와 함께 작동하여 웹 프런트 엔드를 구축합니다. 그러나 JavaScript는 모바일 애플리케이션 구축에도 도움이되며 Node.js 서버의 형태로 백엔드에서 중요한 위치를 찾았습니다. 다행히도 편집기와 IDE 모두 JavaScript 개발 도구가 새로운 과제를 해결하기 위해 떠오르고 있습니다. 편집기 대신 IDE를 사용하는 이유는 무엇입니까? 주된 이유는 IDE가 디버그 할 수 있고 때로는 코드를 프로파일 링 할 수 있기 때문입니다. IDE는 또한 버전 제어를 위해 Git, GitHub, Mercurial,

리뷰 : 최고의 자바 스크립트 편집기 10 가지

JavaScript 프로그래머는 선택할 수있는 좋은 도구가 많이 있습니다. 추적하기에는 너무 많습니다. 이 기사에서는 JavaScript, HTML5 및 CSS로 개발하고 Markdown으로 문서화하는 데 도움이되는 10 가지 텍스트 편집기에 대해 설명합니다. IDE 대신 JavaScript 프로그래밍에 편집기를 사용하는 이유는 무엇입니까? 한마디로 말하자면 속도입니다. 편집기와 IDE의 근본적인 차이점은 IDE는 디버그 할 수 있고 때로는 코드를 프로파일 링 할 수 있으며 IDE는 애플리케이션 수명주기 관리 (ALM) 시스템을 지원한다는 것입니다. 여기서 논의하는 대부분의 편집기는 하나 이상의 버전 제어 시스템 (종종 Git)을 지원하므로 기준이 예전보다 IDE와 편집기 사이의 차이가 적

R merge, dplyr 또는 data.table을 사용하여 R에서 데이터를 병합하는 방법

R에는 공통 열로 데이터 프레임을 결합하는 빠르고 우아한 방법이 많이 있습니다. 그중 세 가지를 보여 드리고자합니다. 기본 R의 merge()함수, dplyr의 조인 기능 군 data.table의 대괄호 구문. 데이터 가져 오기 및 가져 오기 이 예에서는 내가 가장 좋아하는 데모 데이터 세트 중 하나 인 미국 교통 통계국의 비행 지연 시간을 사용하겠습니다. 따라하려면 //bit.ly/USFlightDelays로 이동하여 Flight Date , Reporting_Airline , Origin , Destination 및 DepartureDelayMinutes 열을 사용하여 선택한 시간 프레임에 대한 데이터를 다운로드합니다 . Reporting_Airline에 대한 조회 테이블도 가져옵니다 . 또는 다음 두 데이터 세트와 함께 단일 파일의 R 코드와 다양한 유형의 데이터 병합을 설명하

Java는 참조로 전달합니까 아니면 값으로 전달합니까?

많은 프로그래밍 언어에서는 참조 또는 값으로 매개 변수 를 전달할 수 있습니다. Java에서는 매개 변수 를 value 로만 전달할 수 있습니다 . 이것은 약간의 제한을 부과하고 또한 질문을 제기합니다. 예를 들어, 메소드에서 매개 변수 값이 변경되면 메소드 실행 후 값은 어떻게됩니까? Java가 메모리 힙에서 객체 값을 어떻게 관리하는지 궁금 할 수도 있습니다. 이 Java Challenger 는 Java의 객체 참조에 대한 이러한 질문과 기타 일반적인 질문을 해결하는 데 도움 이 됩니다. 소스 코드 받기 이 Java Challenger에 대한 코드를 가져옵니다. 예제를 따르는 동안 자체 테스트를 실행할 수 있습니다. 개체 참조는 값으로 전달됩니다.

JPA 란 무엇입니까? Java Persistence API 소개

사양으로서 Java Persistence API는 지속성과 관련이 있습니다. 이는 Java 객체가이를 생성 한 애플리케이션 프로세스보다 오래 지속 되는 모든 메커니즘을 의미합니다. 모든 Java 개체를 유지해야하는 것은 아니지만 대부분의 응용 프로그램은 주요 비즈니스 개체를 유지합니다. JPA를 사양은 사용자가 정의 할 수 있는 개체를 유지해야하는지, 그리고 어떻게 그 객체는 자바 애플리케이션에서 지속되어야한다. 그 자체로 JPA는 도구 나 프레임 워크가 아닙니다. 오히려 모든 도구 또는 프레임 워크에서 구현할 수있는 개념 집합을 정의합니다. JPA의 ORM (object-relational mapping) 모델은 원래 Hibern

JVM이란 무엇입니까? Java Virtual Machine 소개

Java Virtual Machine은 다른 프로그램을 실행하는 것을 목적으로하는 프로그램입니다. 쿵푸 코딩의 가장 위대한 예 중 하나이기도 한 간단한 아이디어입니다 . JVM은 당분간 현상 유지를 뒤엎고 오늘날에도 프로그래밍 혁신을 계속 지원하고 있습니다. JVM의 용도 JVM에는 두 가지 기본 기능이 있습니다. 즉, Java 프로그램이 모든 장치 또는 운영 체제에서 실행될 수 있도록하는 것 ( "한 번 작성하면 어디서나 실행"원칙이라고 함)과 프로그램 메모리를 관리 및 최적화하는 것입니다. 1995 년 Java가 출시되었을 때 모든 컴퓨터 프로그램은 특정 운영 체제에

CUDA는 무엇입니까? GPU를위한 병렬 프로그래밍

CUDA는 Nvidia가 자체 GPU (그래픽 처리 장치)에서 일반 컴퓨팅을 위해 개발 한 병렬 컴퓨팅 플랫폼 및 프로그래밍 모델입니다. CUDA를 통해 개발자는 컴퓨팅의 병렬화 가능한 부분에 GPU의 성능을 활용하여 컴퓨팅 집약적 인 애플리케이션의 속도를 높일 수 있습니다. OpenCL과 같은 GPU 용으로 제안 된 다른 API가 있고 AMD와 같은 다른 회사의 경쟁 GPU가 있지만 CUDA와 Nvidia GPU의 조합은 딥 러닝을 포함한 여러 응용 분야를 지배하며 일부의 기초가됩니다. 세계에서 가장 빠른 컴퓨터. 그래픽 카드는 PC만큼 오래되었습니다. 즉, 1981 년 IBM Monochrome Dis

JSP 란 무엇입니까? JavaServer 페이지 소개

JSP (JavaServer Pages)는 Java 웹 애플리케이션을위한 동적 데이터 기반 페이지를 작성할 수있는 Java 표준 기술입니다. JSP는 Java Servlet 사양을 기반으로 구축되었습니다. 두 기술은 일반적으로 특히 이전 Java 웹 응용 프로그램에서 함께 작동합니다. 코딩 관점에서 볼 때 가장 분명한 차이점은 서블릿을 사용하면 Java 코드를 작성한 다음 해당 코드에 클라이언트 측 마크 업 (예 : HTML)을 포함하는 반면 JSP에서는 클라이언트 측 스크립트 또는 마크 업으로 시작한 다음 포함한다는 것입니다. 페이지를 자바 백엔드에 연결하기위

Jenkins는 무엇입니까? CI 서버 설명

Jenkins는 파이프 라인을 사용하는 거의 모든 언어 및 소스 코드 리포지토리 조합에 대해 지속적 통합 또는 지속적 배포 (CI / CD) 환경을 설정하는 간단한 방법을 제공하고 기타 일상적인 개발 작업을 자동화합니다. Jenkins는 개별 단계에 대한 스크립트를 생성 할 필요성을 제거하지 않지만, 직접 쉽게 구축 할 수있는 것보다 전체 빌드, 테스트 및 배포 도구 체인을 통합하는 더 빠르고 강력한 방법을 제공합니다. "야간 빌드를 깨지 마십시오!" 테스터를 위해 매일 아침 새로 빌드 된 일일 제품 버전을 게시하는 소프트웨어 개발 상점의 기본 규칙입니다. Jenkins 이전에 개발자가 야간 빌드 중단을 방지하기 위해 할 수있는 최선의 방법은 코드를 커밋하기 전에 로컬 시스템에서 신중하고 성공적으로 빌드하고 테스트하는 것이 었습니다. 그러나 그것은 다른 모든 사람의 일일 커밋 없이 자신의 변경 사항을 격리 테스트하는 것을 의미했습니다 . 야간 빌드가 자신의 커밋에서 살아남을 것이라는 확고한 보장이 없었습니다. Jenkins (원래 Hudson)는 이

튜토리얼 시리즈 : 초보자를위한 Android Studio

Android Studio 설치부터 첫 번째 Android 앱 코딩 및 디버깅에 이르기 까지 Android Studio에 대한 완전한 초보자 가이드 입니다. Android 장치 에뮬레이터에 대한 문제 해결 팁과 Android 예제 앱의 소스 코드가 포함되어 있습니다. Vasabii / 게티 이미지 1 부:설치 + 설정 Android Studio 3.x를 설치하고 첫 번째 Android 프로젝트를 시작하기위한 시스템 요구 사항 및 지침을 확인하세요. 첫 번째 Android 프로젝트를 시작하고 Android Studio의 기본 창에 대해 알아 봅니다. Vasabii / 게티 이미지 2 부:앱 탐색 및 코딩 Android

초보자를위한 Android Studio, Part 1 : 설치 및 설정

업데이트 : 2020 년 1 월. 몇 년 동안 Android는 모바일 OS 환경에서 고려해야 할 힘이라는 것이 분명해졌습니다. 이 Java 기반 기술은 프로그래머가 모바일 앱으로 수익을 창출하기 위해 경쟁하면서 새로운 골드 러시를 촉발했습니다. Indeed.com을 사용한 빠른 구직 검색에서 알 수 있듯이 Android 작업도 많습니다. 성공하려면 Android 개발자는 Java 언어 (또는 Kotlin), Android API 및 Android 애플리케이션 아키텍처에 대해 잘 알고 있어야합니다. 적절하고 효과적인 개발 환경을 사

앱 서버, 웹 서버 : 차이점은 무엇입니까?

2002 년 8 월 23 일 Q : 응용 프로그램 서버와 웹 서버의 차이점은 무엇입니까? ㅏ: 웹 서버는 HTTP 요청을 독점적으로 처리하는 반면 응용 프로그램 서버는 여러 프로토콜을 통해 응용 프로그램에 비즈니스 논리를 제공합니다. 각각을 더 자세히 살펴 보겠습니다. 웹 서버 웹 서버는 HTTP 프로토콜을 처리합니다. 웹 서버가 HTTP 요청을 받으면 HTML 페이지를 다시 보내는 것과 같은 HTTP 응답으로 응답합니다. 요청을 처리하기 위해 웹 서버는 정적 HTML 페이지 또는 이미지로 응답하거나 리디렉션을 보내거나 동적 응답 생성을 CGI 스크립트, JSP (JavaServer Pages),

JDBC 란? Java 데이터베이스 연결 소개

JDBC (Java Database Connectivity)는 데이터베이스 연결, 쿼리 및 명령 실행, 데이터베이스에서 얻은 결과 집합 처리를 관리하는 Java API입니다. 1997 년 JDK 1.1의 일부로 출시 된 JDBC는 Java 지속성 계층을 위해 개발 된 최초의 구성 요소 중 하나입니다. JDBC는 처음에 클라이언트 측 API로 인식되어 Java 클라이언트가 데이터 소스와 상호 작용할 수 있도록했습니다. 이는 서버 측 JDBC 연결을 지원하는 선택적 패키지를 포함하는 JDCB 2.0으로 변경되었습니다. 이후 모든 새로운 JDBC 릴리스에는 클

파이썬이란 무엇입니까? 강력하고 직관적 인 프로그래밍

1991 년부터 시작된 Python 프로그래밍 언어는 "지루한 작업을 자동화"하는 스크립트를 작성하거나 (Python 학습에 대한 인기있는 책에서 언급했듯이) 다른 언어로 구현 될 응용 프로그램의 프로토 타입을 빠르게 작성하는 방법 인 갭 필러로 간주되었습니다. . 그러나 지난 몇 년 동안 Python은 현대 소프트웨어 개발, 인프라 관리 및 데이터 분석 분야에서 일류 시민으로 부상했습니다. 더 이상 백룸 유틸리티 언어가 아니라 웹 애플리케이션 생성 및 시스템 관리의 주요 원동력이자 빅 데이터 분석 및 머신 인텔리전스 폭발의 주요 동인입니다. 관련 비디오 : Python이 프로그래밍을 더

자바의 인터페이스

Java 인터페이스는 클래스와 다르며 Java 프로그램에서 특수 속성을 사용하는 방법을 아는 것이 중요합니다. 이 튜토리얼에서는 클래스와 인터페이스의 차이점을 소개 한 다음 Java 인터페이스를 선언, 구현 및 확장하는 방법을 보여주는 예제를 안내합니다. 또한 기본 및 정적 메서드를 추가하여 Java 8에서, 그리고 새로운 private 메서드를 사용하여 Java 9에서 인터페이스가 어떻게 발전했는지 배우게됩니다. 이러한 추가 기능은 숙련 된 개발자에게 인터페이스를 더욱 유용하게 만듭니다. 안타깝게도 클래스와 인터페이스 사이의 경계를 모호하게하여 인터페이스 프로그래밍을 Java 초보자에게 더욱

TensorFlow 란 무엇입니까? 기계 학습 라이브러리 설명

기계 학습은 복잡한 분야입니다. 그러나 머신 러닝 모델을 구현하는 것은 데이터 수집, 모델 학습, 예측 제공 및 향후 결과 수정 프로세스를 용이하게하는 Google의 TensorFlow와 같은 머신 러닝 프레임 워크 덕분에 예전보다 훨씬 덜 어렵고 어렵습니다. Google Brain 팀에서 만든 TensorFlow는 수치 계산 및 대규모 기계 학습을위한 오픈 소스 라이브러리입니다. TensorFlow는 수많은 기계 학습 및 딥 러닝 (일명 신경망) 모델과 알고리즘을 함께 묶어 공통 은유 방식으로 유용하게 만듭니다. Python을 사용하여 프레임 워크로 애플리케이션을 빌드하기위한

Java에서 Comparable 및 Comparator로 정렬

프로그래머는 종종 데이터베이스의 요소를 컬렉션, 배열 또는 맵으로 정렬해야합니다. Java에서는 모든 유형으로 원하는 정렬 알고리즘을 구현할 수 있습니다. 은 Using Comparable인터페이스와 compareTo()방법을, 우리는 일종의 알파벳 순서로 사용 할 수 있습니다 String길이, 알파벳 역순으로, 또는 숫자를. Comparator인터페이스는 우리가 동일하지만 좀 더 유연한 방법을 수행 할 수 있습니다. 우리가 원하는 것이 무엇이든, 주어진 인터페이스와 유형에 대해 올바른 정렬 로직을 구현하는 방법을 알면됩니다. 소스 코드 받기 이 Java Challenger에 대한 코드를 가져옵니다. 예제를 따르는 동안 자체 테스트를 실행할 수 있습니다. 사용자 정의 객체로 Java 목록 정

Node.js vs. PHP : 개발자 마인드 셰어를위한 장대 한 전투

그것은 고전적인 할리우드 음모입니다. 서로 다른 길을 갔던 두 오랜 친구 사이의 전투입니다. 종종 마찰은 한 친구가 항상 다른 친구의 무언 영역에 관심을 불러 일으킬 때 시작됩니다. 이 영화의 프로그래밍 언어 버전에서 Node.js의 소개는 버디 영화를 원한의 대결로 바꾸는 것입니다 : PHP와 JavaScript, 한때 인터넷을 함께 지배했지만 이제는 개발자의 마음을 공유하기 위해 두 파트너. 예전에는 파트너십이 간단했습니다. JavaScript는 브라우저에서 약간의 세부 사항을 처리하는 반면 PHP는 포트 80과 MySQL 사이

Apache Spark 란 무엇입니까? Hadoop을 무너 뜨린 빅 데이터 플랫폼

Apache Spark 정의 Apache Spark는 매우 큰 데이터 세트에 대한 처리 작업을 신속하게 수행 할 수있는 데이터 처리 프레임 워크이며, 데이터 처리 작업을 자체적으로 또는 다른 분산 컴퓨팅 도구와 함께 여러 컴퓨터에 분산 할 수도 있습니다. 이 두 가지 특성은 빅 데이터 및 머신 러닝 세계의 핵심이며, 대규모 데이터 저장소를 처리하기 위해 방대한 컴퓨팅 성능을 마샬링해야합니다. Spark는 또한 분산 컴퓨팅 및 빅 데이터 처리의 번거로운 작업을 추상화하는 사용하기 쉬운 API를 통해 개발자의 어깨에서 이러한 작업의 프로그래밍 부담을

Kotlin이란 무엇입니까? Java 대안 설명

Kotlin은 객체 지향 및 기능 프로그래밍 기능을 결합한 JVM (Java Virtual Machine) 및 Android 용으로 설계된 범용 무료 오픈 소스 정적으로 유형이 지정된 '실용적인'프로그래밍 언어입니다. 상호 운용성, 안전성, 명확성 및 도구 지원에 중점을 둡니다. JavaScript ES5.1을 대상으로하는 Kotlin 버전과 여러 프로세서에 대한 네이티브 코드 (LLVM 사용)도 프로덕션에 있습니다. Kotlin은 2010 년 IntelliJ IDEA의 배후 회사 인 JetBrains에서 시작되었으며 2012 년부터 오픈 소스였습니다. Kotl

Docker 란 무엇입니까? 컨테이너 혁명의 불꽃

Docker는 컨테이너를 기반으로 애플리케이션을 구축하기위한 소프트웨어 플랫폼 입니다. 운영 체제 커널을 공유하지만 서로 격리하여 실행하는 작고 가벼운 실행 환경입니다. 개념으로 컨테이너가 몇 시간 동안 주변되었습니다 있지만, 부두 노동자, 2013 년 출시 오픈 소스 프로젝트는 기술을 대중화 도움 및 추세 드라이브를 도왔다 컨테이너 수송 및 microservices  클라우드 네이티브로 알려왔다 소프트웨어 개발 개발. 컨테이너 란? 현대 소프트웨어 개발의 목표 중 하나는 동일한 호스트 또는 클러스터에있는 애플리케이션을 서로 격리하여 서로의 운영 또는 유지 관리를 과도하게 방해하지 않도록하는 것입니다. 실행하는 데 필요한 패키지, 라이브러리 및 기타 소프트웨어 구성 요소 덕분에 어려울 수 있습니다. 이 문제에 대한 한 가지 해결책 은 동일한 하드웨어에 애플리케이션을 완전히 분리하고 소프트웨어 구성 요소 간의 충돌과 하드웨어 리소스 경쟁을 최소화하는 가상 머신 입니다. 그러나 가상 머신은 부피가 커서 각각 자체 OS가 필요하므로 일반적으로 크기가 기가 바이트이며 유지

JDK는 무엇입니까? Java Development Kit 소개

JDK (Java Development Kit)는 JVM (Java Virtual Machine) 및 JRE (Java Runtime Environment)와 함께 Java 프로그래밍에 사용되는 세 가지 핵심 기술 패키지 중 하나입니다. 이 세 가지 기술을 구별하고 연결 방식을 이해하는 것이 중요합니다. JVM은 프로그램을 실행하는 Java 플랫폼 구성 요소입니다. JRE는 JVM을 생성하는 Java의 온 디스크 부분입니다. JDK를 사용하면 개발자가 JVM 및 JRE에서 실행하고 실행할 수있는 Java 프로그램을 만들 수 있습니다. Java를 처음 접하는 개발자는 종종 Java Development Kit와 Java Runtim

Java의 데이터 구조 및 알고리즘, Part 1 : 개요

Java 프로그래머는 데이터 구조를 사용하여 데이터를 저장하고 구성하고 알고리즘을 사용하여 해당 구조의 데이터를 조작합니다. 데이터 구조 및 알고리즘에 대해 더 많이 이해하고 이들이 함께 작동하는 방식을 더 많이 이해할수록 Java 프로그램의 효율성이 높아집니다. 이 튜토리얼은 데이터 구조와 알고리즘을 소개하는 짧은 시리즈를 시작합니다. 1 부에서는 데이터 구조가 무엇이며 데이터 구조가 분류되는 방식을 배웁니다. 또한 알고리즘이 무엇인지, 알고리즘이 어떻게 표현되는지, 시간 및 공간 복잡도 함수를 사용하여 유사한 알고리즘을 비교하는 방법도 배웁니다. 이러한 기본 사항을 익히면 Part 2에서 1 차원 배열을 사용한 검색 및 정렬에

Windows 사기꾼의 먹이로 배운 것

"Windows에서 전화를 겁니다." 컴퓨터 문제를 해결하기 위해 도움을 청하는 헬프 데스크 기술자를 사칭하여 전화하는 잘 알려진 전화 사기의 시작 라인도 마찬가지입니다. 이러한 Windows 스캐 머는 데이터 유출 및 신원 도용에 대한 사람들의 우려를 불러 일으켜 컴퓨터에 맬웨어를 설치하도록 속입니다. 이 사기는 발신자가 말한 내용 중 어느 것도 의미가 없음에도 불구하고 수년간 피해자를 그물로 잡았습니다. 나는 최근에 그러한 전화를 받고 사기가 어떻게 발전하고 플레이어가 누구인지 알아보기 위해 함께 플레이하기로 결정했습니다. 3 개월 동안 일주일에 평균 4 번씩 여러 사람들로부터 전화를 받았는데, 모두 내 컴퓨터가 해킹 당했고 하루를 구하기 위해 전화를 걸었다는 것을 증명하려고했습니다. 다양한 대

자바 소켓 프로그래밍 : 튜토리얼

이 튜토리얼은 Java I / O의 기본 기능을 보여주는 간단한 클라이언트-서버 예제로 시작하여 Java 소켓 프로그래밍에 대한 소개입니다. Java 1.4에 도입 된 java.io 비 차단 I / O ( java.nio) API 인 원본 패키지와 NIO 를 모두 소개합니다  . 마지막으로 NIO.2에서 Java 7부터 구현 된 Java 네트워킹을 보여주는 예제를 볼 수 있습니다. 소켓 프로그래밍은 서로 통신하는 두 시스템으로 귀결됩니다. 일반적으로 네트워크 통신은 TCP (Transport Control Protocol)

equals () 및 hashcode ()를 사용하여 Java 객체 비교

이에서 자바 도전자 내용을 학습합니다 equals()및 hashcode()자바 프로그램에서 객체 비교를 효율적이고 쉽게 결합. 간단히 말해서, 이러한 메서드는 함께 작동하여 두 개체의 값이 동일한 지 확인합니다.   없이 equals()하고하는 것은 hashcode()우리가 "매우 큰 만들어야 할 것이다 if객체에서 모든 필드를 비교,"비교. 이것은 코드를 정말 혼란스럽고 읽기 어렵게 만듭니다. 이 두 가지 방법을 함께 사용하면 더 유연하고 일관된 코드를 만들 수 있습니다. Java Challengers 소스 코드를 가져옵니다. Java에서 equals () 및 hashcode () 재정의 메서드 재정의 는 다형성을 활용하기 위해 부모 클래스 또는 인터페이스의 동작을 하위 클래스에 다시 작성 (재정의)하는 기술입니다

Java 101 : Java 스레드 이해, Part 1 : 스레드 및 실행 가능 항목 소개

이 기사는 Java 스레드를 탐색 하는 4 부로 구성된 Java 101 시리즈 의 첫 번째 기사입니다 . Java의 스레딩이 이해하기 어려울 것이라고 생각할 수도 있지만 스레드가 이해하기 쉽다는 것을 보여 드리고자합니다. 이 기사에서는 Java 스레드와 실행 파일을 소개합니다. 후속 기사에서는 동기화 (잠금을 통한), 동기화 문제 (예 : 교착 상태), 대기 / 알림 메커니즘, 스케줄링 (우선 순위 유무), 스레드 중단, 타이머, 변동성, 스레드 그룹 및 스레드 로컬 변수를 살펴 봅니다. . 이 기사 (JavaWorld 아카이브의 일부)는 2013 년 5 월에 새로운 코드 목록과 다운로드 가능한 소스 코드로

지금 배울 수있는 최고의 프로그래밍 언어

컴퓨터를 이해하고 우리의 의지에 따라 구부리는 가장 좋은 방법은 그들이 우리의 명령을 이해할 수 있도록 그들의 언어를 배우는 것입니다. 판타지 소설을 좋아하는 사람들은 때때로 마법의 주문과 주문을 배우고 있다고 상상합니다. 실질적으로 생각하는 사람들은 숫자와 데이터의 논리적 구조를 표현하기 위해 좀 더 기초적인 언어를 사용합니다. 어쨌든, 그것은 컴퓨터가 은유 적 고리를 뛰어 넘고 가상 춤을 실행하게 만드는 키 입력과 마우스 클릭의 순서를 이해하는 것입니다. 모든 학교, MOOC 및 교육 사이트는 어린 Padawans를위한 모국어를 수용해야합니다.

모든 프로그래밍 요구를위한 12 개의 Python

소프트웨어 개발을 위해 Python을 선택할 때 모든 프로그래밍 요구 사항을 충족하는 다양한 패키지가 포함 된 대규모 언어 에코 시스템을 선택하게됩니다. 그러나 GUI 개발에서 머신 러닝에 이르기까지 모든 것을위한 라이브러리 외에도 여러 Python 런타임에서 선택할 수 있으며 이러한 런타임 중 일부는 다른 것보다 현재 사용중인 사용 사례에 더 적합 할 수 있습니다. 다음은 표준 구현 (CPython)에서 속도에 최적화 된 버전 (PyPy), 특수 사용 사례 (Anaconda, ActivePython), 다른 언어 런타임 (Jython, IronPython), 심지어 절단을위한 Python 배포에 대한 간략한 설명입니다. 가장자리 실험 (PyCopy, MesaPy). CPython CPython은 다른 모든 Python 화신이 찾는 표준 버전 인 Python의 참조 구현입니다. CPython은 이름에서 알 수 있듯이 C로 작성되었으며 Python 언

Visual Studio Code 대 Visual Studio : 선택 방법

수십 년 동안 아침에 작업을 시작했을 때 Microsoft Visual Studio (또는 Visual C ++ 또는 Visual InterDev와 같은 이전 제품 중 하나)를 시작한 다음 차를 끓여서 힘든 시작을하는 동안 아침 회의에 참석할 수있었습니다. . 또 다른 시작 지연을 피하기 위해 개발 / 테스트 / 디버그주기를 거치면서 IDE를 하루 종일 열어 두었습니다. 2 백만 줄의 코드가있는 C ++ 프로젝트에서 작업 할 때 코드 체크 아웃을 수행하고 짧은 시간에 제품을 완전히 다시 빌드하는 배치 스크립트를 자동으로 실행하여 매일 작업을 시작했습니다. 요즘에는  매일 아침 코드 프로젝트를 먼저 열거 나 하루 종일 열어 둘 필요 가 없다고 느낍니다. Visual Studio Code는 일반적으로 대규모 프로젝트에서도 몇 분

Python을 현명하게 설치하는 방법

Python은 사용하기 쉽고 초보자에게 친숙하며 거의 모든 응용 프로그램을위한 강력한 소프트웨어를 만들 수있을만큼 강력합니다. 그러나 여전히 다른 소프트웨어와 같은 소프트웨어이므로 설정 및 관리가 복잡 할 수 있습니다. 이 기사에서는 Python을 올바른 방법으로 설정하는 방법을 살펴볼 것입니다. 적절한 버전을 선택하는 방법, 여러 버전이 서로 밟 히지 않도록하는 방법, 다른 모든 날카로운 모서리와 잠재적 인 함정을 피하는 방법 방법. 올바른 Python 버전 및 배포 선택 타사 모듈과의 호환성을 위해 현재 버전 뒤에있는 하나의 주요 수정 버전 인 Python 버전을 선택하는 것이 항상 가장 안전합니다 . 이 글을 쓰는 시점에서 Python 3.8.1이 가장 최신 버전입니다. 그렇다면 안전한 방법은

'사람 찾기'사이트에서 개인 데이터를 제거하는 방법

당신이 온라인에서 무엇을하는지는 중요하지 않습니다. 인터넷은 당신에 대해 많은 것을 알고 있으며 그 정보는 한 번의 마우스 클릭으로 이루어집니다. 사람 찾기 사이트 (Spokeo, PeekYou, Whitepages 등)를 검색하면 이름, 생년월일, 가족 이름, 현재 주소 및 전화 번호가 나열된 페이지를 찾을 수 있습니다. 사이트의 공격성에 따라 과거 주소, 소셜 미디어 프로필, 결혼 상태, 고용 기록, 교육, 파산, 취미와 같은 법원 사건과 같은 추가 세부 정보를 제공 할 수 있습니다 (낮은 회비 또는 계정 등록 비용). 그리고 당신이 사는 곳의 사진까지. 국가 안보국은 잊어 버려. Intelius, Radaris 및 PeopleFinder와 같은 어 그리 게이터 사이트에는 사용자에 대한 정보로 가

JSF 란? JavaServer Faces 소개

JSF (JavaServer Faces)는 구성 요소 기반의 이벤트 지향 웹 인터페이스를 구축하기위한 Java 표준 기술입니다. JSP (JavaServer Pages)와 마찬가지로 JSF는 서버 측 데이터 및 로직에 대한 액세스를 허용합니다. 본질적으로 서버 측 기능이 포함 된 HTML 페이지 인 JSP와 달리 JSF는 논리적 트리에서 형식 구성 요소를 나타내는 XML 문서입니다. JSF 구성 요소는 HTML과 독립적이며 원격 API 및 데이터베이스 액세스를 포함하여 모든 범위의 Java 기능을 가진 Java 객체에 의해 지원됩니다. JSF와 같은 프레임 워크의 핵심 아이디어는 HTML, CSS 및 JavaScript와 같은 클라이언트 측 기술 을 캡슐화 (또는 래핑 )하여 개발자가 이러한 기술과 많은 상호 작용없이 웹 인터페이스를 구축 할 수 있도록

JRE 란 무엇입니까? 자바 런타임 환경 소개

JDK (Java Development Kit), JVM (Java Virtual Machine) 및 JRE (Java Runtime Environment)는 함께 Java 응용 프로그램을 개발하고 실행하기위한 Java 플랫폼 구성 요소의 강력한 3 중 요소를 형성합니다. 이전에 JDK와 JVM을 소개했습니다. 이 빠른 자습서에서는 Java 용 런타임 환경 인 JRE에 대해 알아 봅니다. 실제로 런타임 환경 은 다른 소프트웨어를 실행하도록 설계된 소프트웨어입니다. Java 용 런타임 환경 인 JRE에는 Java 클래스 라이브러리, Java 클래스 로더 및 Java Virtual Machine이 포함되어 있습니다. 이 시스템에서 : 클래스 로더는 제

Java의 예외, Part 1 : 예외 처리 기본 사항

Java 예외는 프로그램 실패를 나타내고 처리하는 데 사용되는 라이브러리 유형 및 언어 기능입니다. 소스 코드에서 실패가 어떻게 표현되는지 이해하고 싶었다면 제대로 찾아 오셨습니다. Java 예외에 대한 개요 외에도 객체를 던지고, 실패 할 수있는 코드를 시도하고, 던진 객체를 포착하고, 예외가 발생한 후 Java 코드를 정리하는 Java의 언어 기능을 시작합니다. 이 튜토리얼의 전반부에서는 Java 1.0 이후에 있었던 기본 언어 기능 및 라이브러리 유형에 대해 학습합니다. 후반부에서는 최신 Java 버전에 도입 된 고급 기능에 대해 알아 봅니다. 이 자습서의 코드 예제는 JDK 12와 호환됩니다.다운로드 코드 받기이 자습서에서 예제 응용 프로그램의 소스 코드를 다운로드합니다. JavaWorld를 위해 Jeff Friesen이 만들었습니다. Java 예외 란 무엇입니까? Java 프로그램의 정상적인 동작이 예기치 않은 동작으로 인해

자바 개발자를위한 기계 학습, Part 1 : 기계 학습을위한 알고리즘

자율 주행 자동차, 얼굴 인식 소프트웨어 및 음성 제어 스피커는 모두 기계 학습 기술과 프레임 워크를 기반으로하며, 이는 첫 번째 물결에 불과합니다. 향후 10 년 동안 새로운 세대의 제품은 우리가 만들고 사용하는 소프트웨어 개발과 응용 프로그램 및 제품에 대한 새로운 접근 방식을 시작하여 세상을 변화시킬 것입니다. Java 개발자는 특히 기술 회사가 기계 학습에 진지하게 투자하기 시작했기 때문에이 곡선에서 앞서 나가기를 원합니다. 오늘 배운 내용은 향후 5 년에 걸쳐 구축 할 수 있지만 어딘가에서 시작해야합니다. 이 기사는 당신을 시작할 것입니다. 기계 학습이 작동하는 방식에 대한 첫인상으로 시작하고 기계 학습 알고리즘을 구현하고 훈련하는 방법에 대한 짧은 가이드가 이어집니다. 학습 알고리즘의 내부와 가장 적합한 예측 기능을 학습, 점수화 및 선택하는

Tomcat은 무엇입니까? 원래 자바 서블릿 컨테이너

Apache Tomcat은 Java Servlet, JSP (JavaServer Pages) 및 WebSockets API와 같은 몇 가지 핵심 Java 엔터프라이즈 사양을 구현하는 수명이 긴 오픈 소스 Java 서블릿 컨테이너입니다. Apache Software Foundation 프로젝트 인 Tomcat은 Java 이후 4 년 만인 1998 년에 처음 출시되었습니다. Tomcat은 첫 번째 Java Servlet API 및 JSP 사양에 대한 참조 구현으로 시작되었습니다. 더 이상 이러한 기술에 대한 참조 구현은 아니지만 Tomcat은 가장 널리 사용되는 Java 서버로 남아 있으며 우수

자바의 다형성과 상속

전설 Venkat Subramaniam에 따르면 다형성은 객체 지향 프로그래밍에서 가장 중요한 개념입니다. 다형성 ( 또는 객체의 유형에 따라 특수한 작업을 실행하는 객체의 능력)은 Java 코드를 유연하게 만듭니다. Command, Observer, Decorator, Strategy와 같은 디자인 패턴과 Gang Of Four가 만든 많은 다른 패턴은 모두 어떤 형태의 다형성을 사용합니다. 이 개념을 마스터하면 프로그래밍 문제에 대한 솔루션을 통해 생각하는 능력이 크게 향상됩니다. 코드 받기 이 챌린지에 대한 소스 코드를 얻고 여기에서 자체 테스트를 실행할 수 있습니다. //github.com/rafadelnero/javaworld-challengers 다형성의 인터페이스 및 상속 이 Java Challenger를 통해 우리는 다형성과 상속 간의 관계에

Node.js vs. Java : 개발자 마인드 셰어를위한 대결

컴퓨팅 역사에서 1995 년은 미친시기였습니다. 처음으로 자바가 등장한 후 자바 스크립트가 등장했습니다. 이름이 그들을 새로 분리 된 결합 된 쌍둥이처럼 보이게 만들었지 만 더 이상 다를 수는 없었습니다. 그중 하나는 컴파일되고 정적으로 형식화됩니다. 다른 하나는 해석되고 동적으로 입력됩니다. 이것은 Node.js 덕분에 충돌 과정으로 전환 된이 두 개의 격렬하게 구별되는 언어 간의 기술적 차이의 시작일뿐입니다. 그 당시에 살 수있을만큼 나이가 많았다면 자바의 초기 장대 한 정점을 기억할 것입니다. 실험실을 떠났고 과대 광고 측정기가 고정되었습니다. 모든 사람들은 그것을 컴퓨팅의 총체적 인수 이상으로

LLVM이란 무엇입니까? Swift, Rust, Clang 등의 힘

새로운 언어와 기존 언어의 개선이 개발 환경 전반에 걸쳐 급증하고 있습니다. Mozilla의 Rust, Apple의 Swift, Jetbrains의 Kotlin 및 기타 여러 언어는 개발자에게 속도, 안전, 편의성, 휴대 성 및 성능에 대한 새로운 선택 범위를 제공합니다. 왜 지금? 한 가지 큰 이유는 언어 구축을위한 새로운 도구, 특히 컴파일러입니다. 그중 최고는 일리노이 대학의 연구 프로젝트로 Swift 언어 제작자 인 Chris Lattner가 처음 개발 한 오픈 소스 프로젝트 인 LLVM입니다. LLVM을 사용하면 새 언어를 쉽

상속 대 구성 : 선택 방법

상속과 구성은 개발자가 클래스와 개체 간의 관계를 설정하는 데 사용하는 두 가지 프로그래밍 기술입니다. 상속은 한 클래스에서 다른 클래스를 파생시키는 반면, 컴포지션은 클래스를 부분의 합으로 정의합니다. 상속 관계에서 부모 또는 수퍼 클래스를 변경하면 코드가 손상 될 위험 이 있으므로 상속을 통해 생성 된 클래스와 객체는 밀접하게 결합 됩니다. 컴포지션을 통해 생성 된 클래스와 객체는 느슨하게 결합되어 있으므로 코드를 손상시키지 않고 구성 요소 부분을 더 쉽게 변경할 수 있습니다. 느슨하게 결합 된 코드는 더 많은 유연성을 제공하기 때문에 많은 개발자는 구성이 상속보다 더 나은 기술이라는 것을 배웠지 만 사실은 더 복잡합니다. 프로그래밍 도구를 선택하는 것은 올바른 주방 도구를 선택하는 것과 비슷합니다. 야채를 자르기 위해 버터 나이프를 사용하지 않으며 모든 프로그래밍 시나리오에 대해 구성을 선택해서는 안됩니다.  이 Java C

C #에서 가상 및 추상 메서드 탐색

C # 프로그래밍 언어는 가상 및 추상 메서드에 대한 지원을 제공하며 각 메서드에는 고유 한 이점이 있습니다. 가상 메서드를 사용하여 후기 바인딩을 구현하는 반면 추상 메서드를 사용하면 형식의 하위 클래스에서 메서드를 명시 적으로 재정의 할 수 있습니다. 이 게시물에서는 가상 및 추상 방법과 사용시기에 대해 설명합니다. 가상 메서드는 기본 클래스에서 가상으로 선언 된 메서드입니다. 메서드는 메서드 서명에 "virtual"키워드를 지정하여 가상으로 선언됩니다. 가상 메서드에는 반환 유형이있을 수도 있고 없을 수도 있습니다. 가상 메서드를 사용하면 유형의 하위 클래스가 메서드를 재정의 할 수 있습니다. 런타임 다형

NoSQL이란 무엇입니까? 클라우드 규모의 미래를위한 데이터베이스

애플리케이션을 개발할 때 가장 기본적인 선택 중 하나는 데이터를 저장하기 위해 SQL 또는 NoSQL 데이터베이스를 사용할지 여부입니다. 기존 SQL (즉, 관계형) 데이터베이스는 수십 년간의 기술 발전, 모범 사례 및 실제 스트레스 테스트의 산물입니다. 비즈니스 애플리케이션의 필수 요소 인 신뢰할 수있는 트랜잭션 및 임시 쿼리를 위해 설계되었습니다. 그러나 그들은 또한 다른 종류의 앱에 적합하지 않게 만드는 엄격한 스키마와 같은 제한 사항도 부담합니다. NoSQL 데이터베이스는 이러한 제한에 대응하여 탄생했습니다. NoSQL 시스템은 개발자 측에서 높은 운영 속도와 뛰어난 유연

JPA 및 Hibernate를 사용한 Java 지속성, Part 1 : 엔티티 및 관계

JPA (Java Persistence API)는 관계형 데이터베이스와 객체 지향 프로그래밍 간의 격차를 해소하는 Java 사양입니다. 2 부로 구성된이 튜토리얼에서는 JPA를 소개하고 Java 객체가 JPA 엔티티로 모델링되는 방법, 엔티티 관계가 정의되는 방법 및 EntityManagerJava 애플리케이션에서 저장소 패턴과 함께 JPA를 사용하는 방법을 설명 합니다. 이 튜토리얼은 Hibernate를 JPA 제공자로 사용합니다. 대부분의 개념은 다른 Java 지속성 프레임 워크로 확장 될 수 있습니다. JPA 란 무엇입니까? EJB 3.0을 포함한 JPA 및 관련 프레임 워크의 발전에 대해 알아 보려면 "JPA 란 무엇입니까? Java Persistence API 소개"를 참조하십시오. 및 JDBC. JPA의 객체 관계 관계형 데이터베이

자바에서 람다 식 시작하기

Java SE 8 이전에는 익명 클래스가 일반적으로 메서드에 기능을 전달하는 데 사용되었습니다. 이 방법은 소스 코드를 난독 화하여 이해하기 어렵게 만듭니다. Java 8은 람다를 도입하여이 문제를 해결했습니다. 이 자습서에서는 먼저 람다 언어 기능을 소개 한 다음 대상 유형과 함께 람다 식을 사용하는 함수형 프로그래밍에 대한 자세한 소개를 제공합니다. 또한 람다가 범위, 지역 변수, this및 super키워드, Java 예외와 상호 작용하는 방법을 배웁니다 .  이 자습서의 코드 예제는 JDK 12와 호환됩니다. 자신을위한 유형 발견 이 자습서에서는 이전에 배운 적이없는 람다가 아닌 언어 기능을 소개하지 않겠지 만이 시리즈에서 이전에 논의하지 않은 유형을 통해 람다를 시연 할 것입니다. 한 가지 예가 java.lang.Math수업입니다. 향후 Java 101 자습서에서 이러한 유형을 소개 할 것입니다. 지금은

Go Pro : PowerShell에 대한 고급 사용자 가이드

Windows 10과 씨름했다면 의심 할 여지없이 PowerShell에 대해 들어 보셨을 것입니다. 최근에 Win7 / 8.1로 멋진 작업을 시도했다면 PowerShell도 나올 것입니다. Windows 명령 줄과 함께 던져진 배치 파일에 수년 동안 의존 한 후, 이제는 더 강력하고 적응력이 뛰어난 무엇인가에 초점을 맞출 때입니다. PowerShell은 Windows 도구 상자에 엄청나게 추가 된 기능이며 그 엄청난 양을 감안할 때 약간의 두려움을 유발할 수 있습니다. 스크립팅 언어입니까, 명령 쉘입니까, 바닥 왁스입니까? 공급자와 함께 실행하려면 cmdlet을 인스턴스화 된 .Net 클래스와 연결해야합니까? 그리고 모든 지원 문서가 관리자에 대해 이야기하는 이유는 무엇

Linux : Lubuntu가 Xubuntu보다 낫습니까?

Lubuntu 대 Xubuntu Ubuntu에는 Lubuntu 및 Xubuntu를 포함하여 다양한 종류가 있습니다. 이 우분투 버전은 모두 가벼운 데스크탑을 제공하지만 어느 것이 더 낫습니까? Linux와 Ubuntu의 한 작가는 최근 Lubuntu와 Xubuntu의 장단점을 평가했습니다. 수년 동안 Lubuntu와 Xubuntu는 Unity 데스크톱에서 바닐라 우분투 이외의 것을 선호하는 많은 사람들에게 대안을 제공 한 두 가지 인기있는 버전이었습니다. Lubuntu와 Xubuntu는 얇고 가벼운 Linux 배포판이나 오래된 데스크

Java SE의 웹 서비스, Part 2 : SOAP 웹 서비스 만들기

JAX-WS는 SOAP 기반 웹 서비스를 지원합니다. Java SE 웹 서비스에 대한이 4 부작 시리즈의 2 부에서는 SOAP 기반 단위 변환 웹 서비스를 정의하고 기본 경량 HTTP 서버 (1 부에서 설명)를 통해이 웹 서비스를 로컬에서 빌드 한 다음 확인하고 서비스의 WSDL 문서를 해석합니다. , 단순 클라이언트에서 서비스에 액세스합니다. 단위 변환 웹 서비스 정의 내가 UC라고 명명 한 단위 변환 웹 서비스는 센티미터와 인치 사이, 화씨와 섭씨 사이를 변환하는 네 가지 함수로 구성됩니다. 이 예제는 단일 Java 클래스로 설계 할 수 있지만 Java 인터페이스 및 Java 클래스로 설계하여 모범 사례를 따르

Redis가 캐싱에서 Memcached를 능가하는 이유

Memcached 또는 Redis? 현대의 데이터베이스 기반 웹 애플리케이션에서 더 많은 성능을 끌어내는 것에 대한 모든 논의에서 거의 항상 발생하는 질문입니다. 성능을 개선해야하는 경우 캐싱은 종종 첫 번째 단계이며 일반적으로 Memcached 또는 Redis가 가장 먼저 전환됩니다. 이러한 유명한 캐시 엔진은 여러 유사점을 공유하지만 중요한 차이점도 있습니다. 둘 중 더 새롭고 다재다능한 Redis는 거의 항상 우수한 선택입니다. 캐싱을위한 Redis 대 Memcached 유사점부터 시작하겠습니다. Memcached와 Redis는 모두 메모리 내 키-값 데이터 저장소 역할을하지만 Redis는 데이터 구조 저장소

Android 기기에 Siri를 설치하는 방법

삼성 갤럭시 S II 안드로이드 폰에 만족하지만 Siri가 부러워하는 나쁜 사례도 있습니다. 나도 "3에서 4로 회의 이동"과 같은 자연어 요청에 응답하는 "개인 비서"를 원합니다. "Android 용 Siri"에 대한 수백만 개의 Google 검색 결과가 증명하는 것처럼 저 혼자가 아니라고 확신합니다. Android 스마트 폰에서 Siri와 같은 경험을 만들 수 있습니까? 자유 형식의 자연어를 사용하여 비슷하게 광범위한 요청을 처리 할 수있는 OS에 구운 단일 앱이 없기 때문입니다. 그러나 Siri의 기능 중 상당 부분을 얻을 수 있습니다. 하지만 iPhone 4S 사용자와 달리 Android 기기에서 다양한 음성 명령을 실행하려면 몇 가지

자바 개발자를위한 함수형 프로그래밍, Part 1

Java 8은 Java 개발자에게 람다 식을 사용한 함수형 프로그래밍을 도입했습니다. 이 Java 릴리스는 명령형 객체 지향 관점에서만 Java 프로그래밍에 대해 생각하는 것만으로는 더 이상 충분하지 않다는 사실을 개발자에게 효과적으로 알 렸습니다. Java 개발자는 선언적 기능 패러다임을 사용하여 사고하고 코딩 할 수 있어야합니다. 이 튜토리얼은 함수형 프로그래밍의 기초를 보여줍니다. 용어로 시작한 다음 함수형 프로그래밍 개념을 파헤칠 것입니다. 5 가지 함수형 프로그래밍 기법을 소개하는 것으로 마무리하겠습니다. 이 섹션의 코드 예제는 순수 함수, 고차 함수,

OOP의 연관, 집계 및 구성 설명

UML (Unified Modeling Language)은 객체 지향 시스템을 모델링하기위한 사실상의 표준입니다. UML에는 연관, 집계, 구성, 종속성 및 상속의 다섯 가지 유형의 관계가 있습니다. 이 기사에서는 이러한 개념 중 처음 세 가지 개념에 대해 설명하고 나머지는 다른 블로그 게시물에 남겨 둡니다. 객체 지향 프로그래밍의 연관 연관은 다른 관련되지 않은 객체 간의 의미 상 약한 관계 (의미 적 종속성)입니다. 연결은 개체에 자체 수명이 있고 소유자가없는 둘 이상의 개체 간의 "사용"관계입니다. 예를 들어 의사와 환자의 관계를 상상해보십시오. 의사는 여러 환자와 연관 될 수 있습니다. 동시에 한 명의 환자가 여러 의사를 방문하여 치료 또는

Ubuntu 18.04에 Oracle Java SE 11 설치

이 문서는 현재 LTS (장기 지원) Java 버전 인 Java 11을 설치하는 Ubuntu Linux 사용자를위한 빠른 가이드입니다. 코드베이스를 Java 11로 마이그레이션하는 사례를 간략하게 설명한 다음 Ubuntu 명령 줄을 사용하여 Oracle JDK 11을 설치하는 단계를 안내합니다. 이것은 Java 11을 설치하는 Ubuntu 사용자를위한 빠른 가이드입니다. 다른 곳에서 충분히 다루고있는 Java 11 기능이나 마이그레이션 문제에 대해 자세히 설명하지는 않겠습니다. Java 11로 마이그레이션하는 경우 2014 년 3 월에 출시 된 Java 8은 Java 개

Julia vs. Python : 데이터 과학에 가장 적합한 것은 무엇입니까?

Python이 다루는 많은 사용 사례 중에서 데이터 분석이 아마도 가장 크고 가장 중요해졌습니다. Python 생태계에는 과학 컴퓨팅 및 데이터 분석 작업을 빠르고 편리하게 만드는 라이브러리, 도구 및 애플리케이션이로드되어 있습니다. 그러나 "과학적 컴퓨팅, 기계 학습, 데이터 마이닝, 대규모 선형 대수, 분산 및 병렬 컴퓨팅"을 겨냥한 Julia 언어의 개발자에게는 Python이 충분히 빠르거나 편리 하지 않습니다 . Julia는 과학자와 데이터 분석가에게 빠르고 편리한 개발뿐만 아니라 놀라운 실행 속도를 제공하는 것을 목표로합니다.&

기계 학습이란 무엇입니까? 데이터에서 파생 된 지능

기계 학습 정의 머신 러닝은 데이터에서 모델을 자동으로 생성하는 방법 또는 알고리즘을 포함하는 인공 지능의 한 분야입니다. 명시적인 규칙에 따라 작업을 수행하는 시스템과 달리 기계 학습 시스템은 경험을 통해 학습합니다. 규칙 기반 시스템은 매번 같은 방식으로 작업을 수행하는 반면 (좋든 나쁘 든간에), 알고리즘을 더 많은 데이터에 노출하여 훈련을 통해 기계 학습 시스템의 성능을 향상시킬 수 있습니다. 기계 학습 알고리즘은 종종 감독 됨 (학습 데이터에 답변으로 태그가 지정됨)과 감독 되지 않음 (존재할 수있는 모든 레이블이 학습 알고리즘

처음부터 Java 배우기

그래서, 당신은 자바로 프로그래밍하고 싶습니까? 훌륭합니다. 당신은 바로 이곳에 왔습니다. 자바 101 시리즈는 기초부터 시작하고 생산적인 자바 개발자되기 위해 알아야 할 핵심 개념을 포함, 자바 프로그래밍에 셀프 가이드 소개합니다. 이 시리즈는 기술적이며, 우리가 진행하는 동안 개념을 이해하는 데 도움이되는 많은 코드 예제가 있습니다. Java가 아닌 프로그래밍 경험이 이미 있다고 가정합니다. 이 첫 번째 기사에서는 Java 플랫폼을 소개하고 Java SE, Java EE 및 Java ME의 세 가지 에디션 간의 차이점을 설명합니다. 또한 Java 애플리케

검토 : VirtualBox 5.0 vs. VMware Workstation 11

Oracle VirtualBox와 VMware Workstation은 몇 년 동안이 문제를 해결해 왔습니다. VirtualBox는 링의 "무료 및 오픈 소스"코너를 차지하는 반면 VMware Workstation은 독점 상용 애플리케이션입니다. 가격면에서 Workstation은 일반적으로 기능과 성능을 주도하는 동시에 나머지 VMware 가상화 라인과 긴밀한 통합을 제공합니다. 그러나 근본적으로 두 제품은 매우 유사합니다. 둘 다 Windows 또는 Linux 호스트에서 실행되며 둘 다 광범위한 Windows, Linux 및 Unix 게스트를 지원합니다. (VirtualBox는 OS X에서도 실행되는 반면 VMware는 Mac 용 Fusion을 제공합니다.) VirtualBox와 Workstation 모두

Java 9 출시 : 알아야 할 모든 것

Java 9 (공식적으로 Java Platform Standard Edition 버전 9)가 드디어 출시되었으며 개발자가 JDK (Java Development Kit)를 다운로드 할 수 있습니다. 논란의 여지가있는 새로운 기능이있는 경우 몇 가지 중요한 기능이 있지만 이전 스타일의 Java 제공을위한 마지막 라인이기도합니다. Java 9 JDK 다운로드 위치 Oracle은 개발자가 다운로드 할 수있는 Java SE 9 JDK 및 설명서를 게시했습니다. Java 9의 새로운 주요 기능 Java SE 8이 출시 된 지 거의 3 년이 지난 후 Java SE 9에는 몇 가지 주요 아키텍처 변경 사항과 많은 개선 사항이

R에서 그룹별로 계산하는 방법

여러 그룹 (크로스 탭 보고서라고도 함)별로 계산하는 것은 여론 조사에서 의료 테스트에 이르기까지 다양한 데이터를 보는 데 유용한 방법이 될 수 있습니다. 예를 들어, 사람들은 성별과 연령대별로 어떻게 투표 했습니까? R과 Python을 모두 사용하는 소프트웨어 개발자가 남성 대 여성은 몇 명입니까? R에서 카테고리별로 이러한 종류의 계산을 수행하는 방법에는 여러 가지가 있습니다. 여기에서 제가 좋아하는 몇 가지를 공유하고 싶습니다. 이 기사의 데모에서는 급여에서 사용되는 기술에 이르기까지 수십 가지 주제에 대해 개발자를 대상으로하는 Stack Overflow Developers 설문 조사의 하위 집합을 사용할 것입니다. 사용 된 언어, 성별, 취미로 코딩하는 경우에 대한 열을 작성하겠습니다. 또한

웹 개발자를 좌절시키는 것은 무엇입니까? 웹 브라우저

2019 년 하반기에 Mozilla에서 웹 플랫폼, 도구 및 기능에 대한 경험에 대해 설문 조사한 개발자는 대부분 만족했지만 일부 단점, 특히 브라우저 지원 문제를 언급했습니다. 전체적으로 59.8 %가 웹에 만족한다고 답했으며 16.3은 매우 만족했습니다. 불만족은 6.8 %, 매우 불만족은 2.2 %였다. 이러한 발견은 전 세계 28,000 명 이상의 웹 개발자 및 디자이너의 의견을 바탕으로 한 MDN 웹 DNA (개발자 요구 사항 평가) 보고서 2019의 일부였습니다. MDN 웹 DNA 보고서 2019는 웹 플랫폼의 미래를 형성하기 위해 웹 개발자 및 디자이너

더 안전하고 깨끗한 코드를 위해 상수 유형 사용

이 튜토리얼에서는 Eric Armstrong의 "Create enumerated constants in Java"에 설명 된대로 열거 형 상수 에 대한 개념을 확장합니다 . 열거 형 상수와 관련된 개념에 익숙하다고 가정하고 Eric이 제시 한 예제 코드 중 일부를 확장 할 것이므로이 기사에 몰입하기 전에 해당 기사를 읽는 것이 좋습니다. 상수의 개념 열거 형 상수를 다룰 때이 기사의 끝에서 개념 의 열거 된 부분에 대해 논의 할 것 입니다. 지금은 지속적인 측면 에만 집중하겠습니다 . 상수는 기본적으로 값을 변경할 수없는 변수입니다. C / C ++에서 키워드 const는 이러한 상수 변수를 선언하는 데 사용됩니다. Java에서는 키워드를 사용합니다 final.

JavaScript 및 양식 사용

Javascript는 많은 모자를 쓰고 있습니다. JavaScript를 사용하여 특수 효과를 만들 수 있습니다. 의사 결정 기능을 활용하여 JavaScript를 사용하여 HTML 페이지를 "더 스마트"하게 만들 수 있습니다. 그리고 JavaScript를 사용하여 HTML 양식을 향상시킬 수 있습니다. 이 마지막 적용은 특히 중요합니다. JavaScript가 입을 수있는 모든 모자 중에서 양식 처리 기능이 가장 많이 사용되고 사용됩니다. 웹 게시자의 중심에 CGI라는 세 글자보다 더 큰 두려움을주는 것은 없습니다. CGI (공통 게이트웨이 인터페이스의 약자)는 클라이언트 (브라우저)에서

Getter 및 Setter 메서드가 나쁜 이유

나는 "사악하다"시리즈를 시작할 생각이 없었지만, 몇몇 독자들이 지난달 칼럼 "왜 연장이 악인가"에서 get / set 메소드를 피해야한다고 언급 한 이유를 설명해달라고 요청했습니다. getter / setter 메서드는 Java에서 일반적이지만 특히 객체 지향 (OO)은 아닙니다. 사실, 코드의 유지 보수성을 손상시킬 수 있습니다. 더욱이, 수많은 getter 및 setter 메서드가 존재한다는 것은 프로그램이 OO 관점에서 반드시 잘 설계되지 않았 음을 나타내는 위험 신호입니다. 이 기사에서는 게터와 세터를 사용하지 말아야하는 이유 (그리고 사용할 수있는 경우)를 설명하고 게터 / 세터 정신에서

StringBuffer 대 문자열

Java는 StringBuffer및 String클래스를 제공하며 String클래스는 변경할 수없는 문자열을 조작하는 데 사용됩니다. 간단히 말해, 유형의 객체 String는 읽기 전용이며 변경할 수 없습니다. StringBuffer클래스는 수정 될 수있는 문자를 나타내는 데 사용됩니다. 이 두 클래스 간의 중요한 성능 차이는 단순 연결을 수행 할 StringBuffer때보 String다 빠르다는 것 입니다. 에서 String조작 코드, 문자열은 일상적으로 연결됩니다. String클래스를 사용하여 연결은 일반적으로 다음과 같이 수행됩니다. String str = new S

Java에서 어설 션을 사용하는 방법

런타임에 올바르게 작동하는 프로그램을 작성하는 것은 어려울 수 있습니다. 이는 실행될 때 코드가 어떻게 동작할지에 대한 가정이 종종 잘못되기 때문입니다. Java의 어설 션 기능을 사용하는 것은 프로그래밍 논리가 올바른지 확인하는 한 가지 방법입니다. 이 튜토리얼에서는 Java 어설 션을 소개합니다. 먼저 어설 션이 무엇인지, 코드에서이를 지정하고 사용하는 방법을 배웁니다. 다음으로 어설 션을 사용하여 전제 조건과 사후 조건을 적용하는 방법을 알아 봅니다. 마지막으로, 어설 션을 예외와 비교하고 코드에서 두 가지가 모두 필요한 이유를 알아 봅니다.다운로드 코드 받기이 튜토리얼의 예제를위한 소스 코드를 다

EJB 란 무엇입니까? Enterprise JavaBeans의 진화

EJB (Enterprise JavaBeans)는 Java 플랫폼에서 대규모 분산 비즈니스 애플리케이션을 개발하기위한 사양입니다. EJB 1.0은 1998 년에 출시되었습니다. 최신 릴리스 인 EJB 3.2.3은 Jakarta EE에 포함되도록 채택되었으며, Jakarta Enterprise Beans로 이름이 변경됩니다. EJB 아키텍처 EJB 아키텍처는 EJB (Enterprise Bean), EJB 컨테이너 및 Java 애플리케이션 서버의 세 가지 주요 구성 요소로 구성됩니다. EJB는 EJB 컨테이너 내부에서 실행되고 EJB 컨테이너는 Java 애플리케이션 서버

Java의 클래스 및 객체 초기화

Java의 클래스와 객체는 사용하기 전에 초기화해야합니다. 이전에 클래스 필드가 클래스가로드 될 때 기본값으로 초기화되고 객체가 생성자를 통해 초기화된다는 것을 배웠지 만 초기화에는 더 많은 것이 있습니다. 이 기사에서는 클래스와 객체를 초기화하기위한 Java의 모든 기능을 소개합니다.다운로드 코드 받기이 자습서에서 예제 응용 프로그램의 소스 코드를 다운로드합니다. JavaWorld를 위해 Jeff Friesen이 만들었습니다. Java 클래스를 초기화하는 방법 클래스 초기화에 대한 Java의 지원을 살펴보기 전에 Java 클래스를 초기화하는 단계를 요약 해 보겠습니다. 목록 1을 고려하십시오. Listing 1. 클래스 필드를 기본값으로 초기화 class SomeClass { s

효과적인 Java NullPointerException 처리

NullPointerException이 무엇인지 직접 배우는 데 많은 Java 개발 경험이 필요하지 않습니다. 사실, 한 사람이이 문제를 Java 개발자가 저지르는 가장 큰 실수로 강조했습니다. 원치 않는 NullPointerExceptions를 줄이기 위해 String.value (Object) 사용에 대해 이전에 블로그를 작성했습니다. JDK 1.0 이후로 우리와 함께 있었던 이러한 일반적인 유형의 RuntimeException 발생을 줄이거 나 제거하기 위해 사용할 수있는 몇 가지 다른 간단한 기술이 있습니다. 이 블로그 게시물은 이러한 기술 중 가장 인기있는 몇 가지를 수집하고 요약합니다. 사용하기 전에 각 개체의 Null

Kubernetes 란 무엇입니까? 다음 애플리케이션 플랫폼

Kubernetes는 컨테이너 오케스트레이션을 위한 인기있는 오픈 소스 플랫폼입니다. 즉, 컨테이너라고하는 여러 개의 독립적 인 런타임으로 구축 된 애플리케이션 관리를위한 것입니다 . 컨테이너는 2013 년 Docker 컨테이너화 프로젝트가 시작된 이후로 점점 인기를 얻었지만, 대규모 분산 컨테이너화 애플리케이션은 조정하기가 점점 더 어려워 질 수 있습니다. 컨테이너화 된 애플리케이션을 대규모로 훨씬 쉽게 관리 할 수있게함으로써 Kubernetes는 컨테이너 혁명의 핵심 부분이되었습니다. 컨테이너 오케스트레이션이란 무엇입니까? 컨테이너는 VM과 같은 문제 분리를 지원하지만 오버 헤드는 훨씬 적고 유연성은 훨씬 더 높습니다. 그 결과 컨테이너는 사람들이 소프트웨어 개발, 배포 및 유지 관리에 대해 생각하는 방식을 재편했습니다. 컨테이너화 된 아키텍처에서 애플리케이션을 구성하는 다양한 서비스는 별도의 컨테이너로 패키징되고 물리적

자바 다형성과 그 유형

다형성 은 일부 엔티티가 다른 형태로 발생하는 능력을 나타냅니다. 그것은 애벌레에서 번데기, 성충으로 변하는 나비로 널리 표현됩니다. 다형성은 다양한 피연산자, 인수 및 개체에 대한 단일 인터페이스를 만들 수있는 모델링 기술로서 프로그래밍 언어에도 존재합니다. Java 다형성은 더 간결하고 유지하기 쉬운 코드를 생성합니다. 이 튜토리얼은 하위 유형 다형성에 초점을 맞추고 있지만 알아야 할 몇 가지 다른 유형이 있습니다. 4 가지 유형의 다형성에 대한 개요부터 시작하겠습니다.다운로드 코드 받기이 자습서에서 예제 응용 프로그램의 소스 코드를 다운로드합니다. JavaWorld를 위해 Jeff Friesen이 만들었습니다. 자바의 다형성 유

Windows 10 업그레이드를 롤백하는 방법

수억 명의 Windows 10 사용자가 틀릴 수는 없습니다. 나는 매일 Win10 업그레이드를 시도한 사람들로부터 다양한 이유로-고장난 드라이버, 호환되지 않는 프로그램, 생소함, 스누핑에 대한 두려움, Win10의 미래에 대한 의심-그들의 좋은 Windows 7 또는 8.1로 돌아가고 싶다고 들었습니다. . Microsoft의 도구와 기름 부음 기술을 사용하여 업그레이드를 수행 한 경우 롤백이 쉬워야합니다. 운영 용어 : "해야합니다." 불행히도 많은 사람들은 Win10이 편도 여행이라는 것을 알고 있습니다. 때로는 아주 좋은 이유가 있습니다. 다음은 업그레이드 중,

Java의 데이터 구조 및 알고리즘, Part 4 : 단일 연결 목록

이 튜토리얼 시리즈의 Part 3에서 소개 된 배열과 마찬가지로 연결 목록은 더 복잡한 데이터 구조의 기반이 될 수있는 기본적인 데이터 구조 범주입니다. 그러나 일련의 요소와 달리 링크 된 목록 은 노드의 시퀀스이며 각 노드는 시퀀스의 이전 및 다음 노드에 링크됩니다. 호출이 있는지 노드 자체 참조 클래스로부터 생성 된 목적 및 자기 참조 클래스는 그 참조 타입 클래스 이름, 적어도 하나 개의 필드를 갖는다. 연결 목록의 노드는 노드 참조를 통해 연결됩니다. 예를 들면 다음과 같습니다. class Employee { private int empno; private String name; private double salary; pu

Docker 및 컨테이너를 사용해야하는 이유

1981 년에 출판 된 Nailing Jelly to a Tree 라는 책  은 소프트웨어를 "모호하고 단단히 잡기 어렵다"고 설명합니다. 그것은 1981 년에 사실이었고, 그 이후 거의 40 년이 지나도 사실입니다. 구입 한 응용 프로그램이든 직접 만든 응용 프로그램이든 소프트웨어는 배포와 관리 및 실행이 어렵습니다. Docker 컨테이너는 소프트웨어를 파악할 수있는 방법을 제공합니다. Docker를 사용하여 배포 및 런타임 문제 (네트워크에 노출하는 방법, 스토리지 및 메모리 및 I / O 사용 관리 방법, 액세스 권한 제어 방법)를 처리하는 방식으로 애플리케이션을 래핑 할 수 있습니다. 애플리케이션 자체 외부에서 모든 "컨테이너화 된"앱에서 일관된 방식으로. Dock

바이트 코드 기초

"Under The Hood"의 또 다른 편에 오신 것을 환영합니다. 이 칼럼은 Java 개발자가 실행중인 Java 프로그램 아래에서 무슨 일이 벌어지고 있는지를 간략하게 보여줍니다. 이번 달의 기사에서는 JVM (Java Virtual Machine)의 바이트 코드 명령어 세트를 처음으로 살펴 봅니다. 이 기사에서는 바이트 코드로 작동하는 기본 유형, 유형간에 변환하는 바이트 코드, 스택에서 작동하는 바이트 코드를 다룹니다. 후속 기사에서는 바이트 코드 제품군의 다른 구성원에 대해 설명합니다. 바이트 코드 형식 바이트 코드는 JVM (Java Virtual Machine)의 기계어입니다. JVM이 클

Maven은 무엇입니까? Java 용 빌드 및 종속성 관리

Apache Maven은 Java 개발의 초석이며 Java 용으로 가장 많이 사용되는 빌드 관리 도구입니다. Maven의 간소화 된 XML 기반 구성 모델을 사용하면 개발자가 Java 기반 프로젝트의 개요를 빠르게 설명하거나 파악할 수 있으므로 새 프로젝트를 시작하고 공유하는 것이 매우 간편합니다. Maven은 또한 테스트 중심 개발, 장기 프로젝트 유지 관리, 선언적 구성 및 광범위한 플러그인을 지원하므로 CI / CD에 널리 사용되는 옵션입니다. 이 문서는 Maven POM 및 디렉터리 구조와 첫 번째 Maven 프로젝트를 빌드하기위한 명령을 포함하여 Maven에 대한 간략한 소개입니다. 이 글을 쓰는 현재 가장 최근의 Maven 릴

Java의 상속, Part 1 : extends 키워드

Java는 상속 및 구성을 통해 클래스 재사용을 지원합니다. 두 부분으로 구성된이 튜토리얼은 Java 프로그램에서 상속을 사용하는 방법을 알려줍니다. 1 부에서는 extends키워드를 사용하여 부모 클래스에서 자식 클래스를 파생시키고 부모 클래스 생성자와 메서드를 호출하고 메서드를 재정의 하는 방법을 배웁니다 . Part 2에서는 java.lang.Object다른 모든 클래스가 상속하는 Java의 수퍼 클래스 인 을 살펴볼 것 입니다. 상속에 대한 학습을 ​​완료하려면 컴포지션과 상속을 사용할시기를 설명하는 Java 팁을 확인하십시오. 컴포지션이 상속에 대한 중요한 보완 요소 인 이유와이를 사용하여 Java 프로그램의 캡슐화 문제를 방지하는 방법을 배우게됩니다.다운로드 코드 받기이 자습서에서 예제 응용 프로그램의 소스 코드를 다

GitHub는 개인 저장소를 팀에 무료로 제공합니다.

GitHub는 모든 GitHub 계정에서 무제한 공동 작업자를 사용할 수있는 비공개 저장소를 만들었습니다. 즉, 이제 핵심 기능이 팀을 포함한 모든 사람에게 무료로 제공됩니다. GitHub의 4 월 14 일 발표 이전에 조직은 개인 개발에 GitHub를 사용하려면 유료 요금제에 가입해야했습니다. 새로운 무료 플랜에 따라 팀은 매월 2,000 개의 프라이빗 리포지토리 작업 및 500MB의 프라이빗 리포지토리 패키지 스토리지와 함께 퍼블릭 또는 프라이빗 리포지토리를 원하는만큼 가질 수 있습니다. GitHub의 새로운 계획의 세부 사항은 다음과 같습니다. 개발자에게 무제한 비공개 저장소를 제공하기 위해 2019 년 1 월에 도입 된 Gi

검토 : 6 개의 Python IDE가 매트로 이동

언어의 인기와 성공을 측정하는 데 사용할 수있는 모든 측정 항목 중 하나는 해당 언어에 사용할 수있는 개발 환경의 수입니다. 지난 몇 년 동안 Python의 인기가 높아짐에 따라 일반 프로그래머와 과학 작업 및 분석 프로그래밍과 같은 작업에 Python을 사용하는 사용자를 대상으로하는 도구가 포함 된 IDE 지원의 강력한 물결이 발생했습니다. Python을 지원하는이 6 개의 IDE는 다양한 사용 사례를 다룹니다. 일부는 추가 기능을 통해 Python을 지원하거나 Python 관련 확장이있는 다른 제품의 재 패키징을 지원하는 다국어 IDE입니다. 많은 사람들이 범용 솔루션으로 유용하기 위해 노력하고 있지만 각각은 약간 다른 Python 개발자 청중에게 이익이됩니다. 오늘날 많은 IDE는 특정 언어로 개발을 촉진하기 위해 내부에서 작성된 앱이 아니라 특정 언어 및 작업을위한 플러그인이 장착

Swift vs. Objective-C : 미래가 Swift를 선호하는 10 가지 이유

프로그래밍 언어는 쉽게 죽지 않지만 패러다임에 집착하는 개발 상점은 죽습니다. 모바일 기기 용 앱을 개발 중이고 Swift를 조사하지 않은 경우, Swift는 Mac, iPhone, iPad, Apple Watch 및 향후 기기 용 앱을 개발할 때 Objective-C를 대체 할뿐만 아니라 그러나 그것은 또한 Apple 플랫폼의 임베디드 프로그래밍을 위해 C를 대체 할 것입니다. 몇 가지 주요 기능 덕분에 Swift는 향후 몇 년 동안 몰입 형, 반응 형, 소비자 용 애플리케이션을 만들기위한 사실상의 프로그래밍 언어가 될 가능성이 있습니다. 애플은 스위프트에 대한 큰 목표를 가지고있는 것으로 보인다. 성능을 위해 컴파일러를 최적화하고 개발을 위해 언어를 최적화했으며 Swift의 문서에서 Swift가 " 'hello, world'에서 전체 운영 체제로 확장되도

Angular 10.1의 새로운 기능

Angular 10의 후속 포인트 릴리스 인 Angular 10.1.0이 9 월 2 일에 릴리스되어 새로운 메시지 추출 도구와 함께 컴파일러 및 라우터의 성능이 향상되었습니다.  Angular 10은 6 월 24 일에 프로덕션 릴리스로 정식 출시되었습니다. Google에서 개발 한 TypeScript 기반 프레임 워크의 주요 업그레이드는 새로운 기능보다 품질, 도구 및 에코 시스템 개선에 더 중점을 두었습니다. Angular 10은 이전 버전의 Angular보다 작습니다. 새로운 기능에는 Angular Material UI 구성 요소 라이브러리의 새로운 날짜 범위 선택기와 CommonJS 가져 오기에 대한 경고가 포함됩니다. CommonJS 가져 오기 경고는 CommonJS로 패키징 된 종속성으로 인해 더 크고 느린 애플리케이션이 생성되어 개발자가 ECMAScript 모듈 번들을 대체 할 수있는 경우 개발자에게 경고합니다. 또한 선택

클라우드 네이티브 란? 소프트웨어를 개발하는 현대적인 방법

"클라우드 네이티브"라는 용어는 특히 클라우드 제공 업체에서 자주 사용됩니다. 뿐만 아니라 Linux Foundation에서 2015 년에 시작한 CNCF (Cloud Native Computing Foundation)라는 자체 기반도 있습니다. '클라우드 네이티브'정의 일반적으로 "클라우드 네이티브"는 클라우드 컴퓨팅 제공 모델의 장점을 활용하는 애플리케이션을 구축하고 실행하는 접근 방식입니다. "클라우드 네이티브"는 애플리케이션이 어디에 생성되고 배포 되는지 에 관한 것 입니다. 이는 앱이 온 프레미스 데이터 센터가 아닌 공용 클라우드에 있음을 의미합니다. CNCF는 "클라우드 네이티브"를 조금 더 좁게 정의합니다. 즉, 컨테이너화 할 오픈 소스 소프트웨어 스택을 사용하는 것을 의미합니다. 즉, 앱의 각 부분이 자체 컨테이너에 패키징되고 동적으로 조정되므로 각 부분이 리소스를 최적화하기 위해 능동적으로 예약되고

서버리스 란 무엇입니까? 서버리스 컴퓨팅 설명

개발자는 코드로 비즈니스 문제를 해결하는 데 수많은 시간을 보냅니다. 그런 다음 운영 팀이 셀 수없이 많은 시간을 보낼 차례입니다. 먼저 개발자가 사용 가능한 모든 컴퓨터에서 코드를 작성하고 실행하는 방법을 파악하고, 두 번째로 해당 컴퓨터가 원활하게 작동하는지 확인합니다. 두 번째 부분은 진정으로 끝나지 않는 작업입니다. 그 부분을 다른 사람에게 맡기지 않겠습니까? 지난 20 년 동안 가상 머신, 클라우드 컴퓨팅, 컨테이너 등 IT 분야의 많은 혁신은 코드가 실행되는 기본 물리적 머신에 대해 많이 생각할 필요가 없도록하는 데 초점을 맞춰 왔습니다. 서버를 사용하지 않는 컴퓨팅이 논리적 인 결론이 욕망을 취하는 점점 인기 패러다임 : 서버를 사용하지 않는 컴퓨팅, 당신

모든 Python 개발자를위한 24 개의 Python 라이브러리

Python 프로그래밍 언어의 엄청난 성공에 대한 좋은 이유를 원하십니까? Python에 사용할 수있는 대규모 라이브러리 모음 (네이티브 및 타사 라이브러리 모두) 이상을 보지 마십시오. 하지만 Python 라이브러리가 너무 많기 때문에 일부 라이브러리가 가치있는 모든 관심을받지 못하는 것은 놀라운 일이 아닙니다. 또한 한 도메인에서만 작업하는 프로그래머는 다른 종류의 작업에 사용할 수있는 장점에 대해 항상 알지 못합니다. 간과했을 수도 있지만 주목할만한 가치가있는 24 개의 Python 라이브러리가 있습니다. 이러한 gem은 파일 시스템 액세스, 데이터베이스 프로그래밍, 클라우드 서비스 작업에서 경량 웹 앱 빌드, GUI 생성, 이미지, 전자 책 및 Word 파일 작업에 이르기까지 모든 것을 단순화하여 다양한 유용

검토 : Visual Studio 2017은 역대 최고입니다.

2 년 전 Visual Studio 2015를 검토했을 때 Microsoft의 IDE가 역대 가장 복잡한 제품이되었고 향후에는이를 단순화해야한다고 생각했습니다. 나는 한 가지 측면에서 틀렸다. 마이크로 소프트는 Visual Studio 2017을위한 몇 가지 기능을 내놓았지만 훨씬 더 많은 기능을 추가했다. 하지만 확실히 Microsoft는 기능이 향상 되었음에도 불구하고 Visual Studio 2017에서 더 간단하고 민첩한 IDE를 제공 할 수있었습니다. Windows Communication Foundation 및 Windows Workflow Foundation과 같은 복잡한 새로운 Microsoft 관련 기

MySQL의 10 가지 필수 성능 팁

모든 관계형 데이터베이스와 마찬가지로 MySQL은 복잡한 짐승임을 입증 할 수 있습니다. 즉, 순간적으로 크롤링하여 애플리케이션을 불안정하게 만들고 비즈니스를 중단시킬 수 있습니다. 사실, 일반적인 실수는 대부분의 MySQL 성능 문제의 기저에 있습니다. MySQL 서버가 최고 속도로 윙윙 거리면서 안정적이고 일관된 성능을 제공하려면 워크로드 또는 구성 트랩의 미묘함으로 인해 종종 가려지는 이러한 실수를 제거하는 것이 중요합니다. 다행히도 많은 MySQL 성능 문제에 유사한 솔루션이있는 것으로 밝혀져 MySQL의 문제 해결 및 튜닝을 관리 가능한 작업으로 만듭니다. 다음은 MySQL에서 뛰어난

Node.js 란 무엇입니까? JavaScript 런타임 설명

확장 성, 대기 시간 및 처리량은 웹 서버의 핵심 성능 지표입니다. 지연 시간을 낮게 유지하고 처리량을 높게 유지하면서 확장 및 축소는 쉽지 않습니다. Node.js는 요청 처리에 '비 차단'접근 방식을 취하여 짧은 지연 시간과 높은 처리량을 달성하는 자바 스크립트 런타임 환경입니다. 즉, Node.js는 I / O 요청이 반환되기를 기다리는 데 시간이나 리소스를 낭비하지 않습니다. 웹 서버를 만드는 전통적인 접근 방식에서는 들어오는 각 요청 또는 연결에 대해 서버 가 새 실행 스레드를 생성 하거나 요청을 처리하고 응답을 보내기 위해 새 프로세스 를 분기 하기도 합니다 . 개념적으로 이것은 완벽하게 이해되지만 실제로는 많은 오버 헤드가 발생합니다. 스레드

믿을 수 없을 정도로 단순한 싱글 톤 패턴을 탐색하는 방법

Singleton 패턴은 특히 Java 개발자에게도 믿을 수 없을 정도로 간단합니다. 이 고전적인 JavaWorld 기사에서 David Geary는 Java 개발자가 Singleton 패턴을 사용한 멀티 스레딩, 클래스 로더 및 직렬화에 대한 코드 예제와 함께 싱글 톤을 구현하는 방법을 보여줍니다. 그는 런타임에 싱글 톤을 지정하기 위해 싱글 톤 레지스트리 구현에 대해 살펴보면서 결론을 내립니다. 때로는 정확히 하나의 클래스 인스턴스를 갖는 것이 적절합니다. 창 관리자, 인쇄 스풀러 및 파일 시스템이 전형적인 예입니다. 일반적으로 이러한 유형의 개체 (싱글 톤이라고 함)는 소프트웨어 시스템

개발자가 알아야 할 7 가지 로우 코드 플랫폼

일부 개발자는 Java, .NET 및 JavaScript 환경 외부로 가져 가거나 IDE, 자동화 된 테스트 프레임 워크 및 devops 플랫폼에서 분리하는 로우 코드 플랫폼을 사용하는 것에 대해 불만을 표합니다. 다른 기업들은 신속한 애플리케이션 개발을 가능하게하고 복잡한 통합을 지원하며 모바일 사용자 경험을 제공하는 도구로 로우 코드 플랫폼을 채택했습니다. 그러나 개발자는 단순히 로우 코드 플랫폼과 그 기능을 무시해서는 안됩니다. 비즈니스에는 대부분의 IT 팀이 제공하거나 지원할 수있는 것보다 더 많은 애플리케이션 개발이 필요합니다. IT는 모든 것에 로우 코드 플랫폼을 사용하지 않을 수 있지만 개발을 가속화하고 추가적인 이점을 제공 할 수 있습니다. 저는 거의 20 년 동안 로우 코드, 무 코드, 시민 개발 및 기타 빠른 개발 도구를 다루었습니다. 오늘날의 플랫폼을 통해 팀은 다양한 애플리케이