본문 바로가기

전체 아티클136

JSX와 Babel JSX와 Babel JSX : 자바스크립트도 아니고, HTML도 아닌 그 중간인 새로운 표현식 Babel : JSX를 이해하기 위해서, 자바스크립트로 변환하기 위해서는 Babel이라는 자바스크립트 컴파일러가 필요하다. 반복적인 것들은 Function 형태의 컴포넌트로 찍어낸다. 바닐라 JS의 경우, 변경으로 인해 Elements를 다시 그리는 반면 리액트는 리액트의 비교 알고리즘을 통해 Elements에서 변경된 요소만을 그려준다. (Reconciliation) 리액트의 Virtual Dom은 다른 elements의 속성이 들어왔을 때 이를 비교할 때 활용된다. 2022. 12. 3.
Input 타입이 file인 디자인은 어떻게 커스텀할까? 사이드 프로젝트를 진행하면서 input type이 file인 디자인을 변경할 일이 생겼다. input type을 file로 지정을 하면, 기본 default로 설정되어져 있는 파일 업로드 버튼과 업로드가 되었을 때 파일 명을 보여주는 텍스트가 생성이 되는데 기존 제공되어지는 UI를 커스텀해서 디자인을 하기에는 번거로운 점이 많다. input type='file'을 디스플레이 상에서 숨겨놓고, 내가 디자인하고 만들어놓은 요소를 눌렀을 때 그 요소에 연결된 input을 실행시키면 자연스럽게 UI상으로 보여지지 않을까? → 바로 여기서 사용하는 것이 태그를 도와주는 태그를 활용한 방법이다. 먼저, 다음과 같이 구성을 해보자, 태그의 기본 기능들과 `업로드 버튼` 이라는 이름의 이 나올 것이다. 그리고 의 id.. 2022. 11. 12.
[프로그래머스] 옹알이(1) 오늘은 여러 기업의 코딩테스트를 준비하면서, 연습할겸 코딩테스트 문제를 풀어보았다. 가장 눈에 들어온 것이 문제 제목이 귀여운 옹알이라는 녀석이었는데, 문제도 참 귀엽다. 말그래도 아이가 말할 수 있는 단어를 하나하나 분리하여 아이가 말을 할 수 있는지에 대한 판단 여부를 출력하는 문제이다. 처음에는 해당 babbling 각 배열 요소에 아이가 말할 수 있는 단어가 포함이 되어있는지를 확인을 하였다. 정상적으로 결과 값이 출력되는 것을 확인할 수 있었으나, 추가적으로 `wyeoo`와 같이 사이에 `ye`를 포함하게되고 이는 또 `woo`로 줄여져 카운팅되는 문제점을 확인할 수 있었다. 이를 해결하기 위해 기존 반복문 안에 해당 단어의 인덱스를 찾고, 그 인덱스가 0으로 시작하는 것이 아니면 카운팅 되지 .. 2022. 11. 8.
XII. 제품 소프트웨어 패키징 01. 사용자 중심의 패키징 수행 제품 소프트웨어 패키징(Product Software Packaging) 개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 포장하는 과정 제품 소프트웨어 패키징 적용 시 특성 - 전체 내용을 포함 : 설치와 사용에 필요한 과정 및 환경 등의 전체 내용을 포함하는 메뉴얼을 작성 - 비전 관리 및 릴리즈 노트 : 제품 소프트웨어에 대한 패치 개발과 업그레이드 수행 - 고객 중심 : 제품 소프트웨어 패키징은 개발자가 아닌 사용자 중심, 고객 편의성 중심으로 진행 - 모듈화 : 신규 및 변경 개발 소스를 식별하고, 이를 모듈화하여 상용 제품으로 패키징 제품 소프트웨어 패키징은 모듈들을 통해 수행되므로, 최초 소스 개발 시 해당 모듈 단위 및 모듈화를 통해 제품 소프.. 2022. 10. 12.
XI. 응용 SW 기초 기술 활용 01. 운영체제의 특징 운영체제(OS; Operating System) 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어 한정된 시스템 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함으로써 사용자에게 편리성을 제공한다. 운영체제의 특징 - 사용자 편리성 제공 : 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영 - 인터페이스 기능을 담당 : 컴퓨터 시스템과 사용자를 연결 - 스케줄링 담당 : 다중 사용자와 다중 응용 프로그램 환경하에서 자원의 현재 상태를 파악하고 자원 분배를 위한 스케줄링을 담당 - 자원 관리 : CPU, 메모리 공간, 기억 장치, 입출력 장치 등의 자원을 관리 - 제어 기능 : 입출력 장치와 사용자 프로그램을 제어 운영체제에.. 2022. 10. 11.
X. 어플리케이션 테스트 관리 01. 어플리케이션 테스트 케이스 설계 소프트웨어 테스트 개발된 응용 어플리케이션이나 시스템이 사용자가 요구하는 기능과 성능, 사용성, 안정성 등을 만족하는지 확인하고, 노출되지 않은 숨어있는 소프트웨어의 결함을 찾아내는 활동 소프트웨어 테스트 필요성 - 오류 발견 관점 : 프로그램에 잠재된 오류를 발견하고 이를 수정하여 올바른 프로그램을 개발하기 위해 필요 - 오류 예방 관점 : 프로그램 실행 전에 동료 검토, 워크 스루, 인스펙션 등을 통해 오류를 사전에 발견하는 예방 차원의 필요 - 품질 향상 관점 : 사용자의 요구사항 및 기대 수준을 만족하도록 반복적인 테스트를 거쳐 제품의 신뢰도를 향상하는 품질 보증을 위해 필요 소프트웨어 테스트 원리 (1) 결함 존재 증명 : 결함이 존재함을 밝히는 활동 (2.. 2022. 10. 10.
IX. 소프트웨어 개발 보안 구축 01. 소프트웨어 개발 보안 설계 SW 개발 보안 개념 소스 코드 등에 존재하는 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동 SW 개발 보안 생명주기 요구사항 명세 → 설계 → 구현 → 테스트 → 유지보수 SW 개발 보안의 구성요소 (3대 요소) (1) 기밀성(Confidentiality) : 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성 (2) 무결성(Integrity) : 정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의 / 악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성 (3) 가용성(Availability) : 권한을 가진 사용자나 .. 2022. 10. 9.
VIII. 서버 프로그램 구현 오늘의 용어 * MyVatis : 객체 지향 언어인 자바의 관계형 DB 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임워크 01. 개발환경 구축 개발 도구의 종류 - 빌드 도구 : 작성한 코드의 빌드 및 배포를 수행하는 도구 (Eclipse, IntelliJ ...) - 구현 도구 : 개발자의 코드 작성과 디버깅, 수정 등과 같은 작업을 지원하는 도구 (xUnit, PMD ...) - 테스트 도구 : 코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구 (CVS, Git ...) - 버전 관리 도구 : 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위한 도구 (Ant, Maven ...) 서버 하드웨어 개발 환경 - 웹 서버 : 웹 상의 정적 콘텐츠(CSS, JS, Im.. 2022. 10. 8.
VII. SQL 응용 01. 데이터베이스 기본 트랜잭션 인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위 트랜잭션의 특성 (1) Automatically(원자성) : 트랜잭션을 구성하는 연산 전체가 모두 정상적으로 실행되거나 모두 취소되어야 하는 성질 (2) Consistency(일관성) : 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야하는 성질 (3) Isolation(고립성) : 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야한다는 성질 (4) Durability(영속성) : 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터 베이스에 저장되어야 하는 성.. 2022. 10. 6.