View all information processing engineer practical content and past exam materials at once

Β· TechΒ· CS
CSCertification

Sujebi Information Processing Technician Practical Book Summary Content + Questions that appeared directly in the exam (1st in 2020 ~ 1st in 2023) are marked with a symbol (πŸ”΄).

Chapter 1. Check requirements

1-1. Current system analysis

Current system identification process

Identify configuration/function/interface - Identify architecture and software configuration - Identify hardware and network configuration

TCP/IP

IP, the Internet protocol, and TCP, the transmission control protocol. TCP guarantees delivery of data and ensures that data is received in the order it was sent.

Software Architecture

The structure or structure of a system that expresses the externally revealed characteristics of various software components and their characteristics and the relationship between the components. Architecture specification, stakeholders, interests, perspectives, views, rationale

  • What are interests? Different opinions and goals of stakeholders regarding the system

Software Architecture 4+1 Views

μœ λ…Όν”„κ΅¬λ°°

A software approach that looks at scenarios summarizing customer requirements from four perspectives

  • Use case view

+1

It is the view that leads the work of deriving and designing the architecture and is used to verify other views.

  • Logical View
  • Abstraction of the design model, views that identify major design packages, subsystems and classes
  • Shows a set of classes and the relationships between them

클래슀 λ‹€μ΄μ–΄κ·Έλž¨

expressed as

  • Process view
  • A view that expresses the relationships between system tasks, threads, and processes at runtime and the interactions between them.
  • Consider non-functional requirements of the system, such as performance and availability
  • Implementation view (component view)
  • Software implementation and management aspects from a developer’s perspective

μ»΄ν¬λ„ŒνŠΈ λ‹€μ΄μ–΄κ·Έλž¨

expressed as

  • Deployment view
  • Physical nodes and their configuration and interconnection relationships

배포 λ‹€μ΄μ–΄κ·Έλž¨

A view expressed as

Analysis output

Information system configuration status / Information system function configuration diagram / Interface status / Status system architecture diagram / Software configuration diagram / Hardware configuration diagram / Network configuration diagram

OSI Layer 7

μ•„νŒŒμ„œ ν‹°λ‚΄λ‹€ ν”Όλ‚˜λ‹€

πŸ”΄ Application, Representation, Session, Transport, Network, Data Link, Physics

tier Description protocol Transmission unit network equipment
Application Layer Application service connection between user and network, data generation HTTP, FTP data host
Presentation Layer Data format setting and code exchange, encryption/decryption JPEG, MPEG data host
Session Layer Connection and synchronous control SSH, TLS data host
Transport Layer Responsible for ensuring reliable communication, data division and reassembly, flow control, error control, congestion control, etc. TCP, UDP segment L4 switch
Network Layer Provides an optimized path for data transmission between devices IP, ICMP packet router
Datalink Layer Provides data transmission between adjacent systems, transmission error control, error detection, and retransmission Ethernet frame Bridges, switches
Physical Layer πŸ”΄ Electrical signal conversion to send 0 and 1 bit information over a line RS-232C bit Hubs, repeaters
  • SSH πŸ”΄
  • An application or protocol that allows you to log in to another computer on a network, run commands on a remote system, and copy files to another system.
  • Provides rsh, rcp, rlogin, rexec, telnet, ftp, etc. through secure connection, and provides a function to prevent IP spoofing (IP spoofing, one of IP forgery/falsification techniques)
  • By default, port is 22
  • ICMP (Internet Control Message Protocol) πŸ”΄πŸ”΄
  • This is a protocol that reports problems that occur when processing IP packets. The message format is divided into an 8-byte header and a variable-length data area.
  • The destination unreachable message is used to notify the host that the recipient or service is unreachable.
  • Performs the function of notifying that an error has occurred through the implementation of the ping utility using the ICMP protocol

Middleware

Software that controls smooth communication between an application program and the environment in which the program operates in a distributed system environment. +WAS A server that provides an environment in which applications can operate at the server layer, supports stable transaction processing and management, and application interoperability with other heterogeneous systems.

1-2. Check requirements

Classification of requirements

  1. Functional requirements Requirements for functions and services provided by the system
  2. Non-functional requirements Requirements regarding matters other than the functions performed by the system and constraints on system construction

Requirements Development Process

도뢄λͺ…ν™•

Requirements derivation - Requirements analysis - Requirements specification - Requirements confirmation +

λ„μΆœ

: Interview, survey, brainstorming, workshop +

뢄석

: Data flow-oriented analysis, object-oriented analysis +

λͺ…μ„Έ

: Method using natural language, method of using formalization techniques +

확인

: Peer review, walk-through (distributed before meeting), inspection (expert)

Requirements analysis

Requirements classification, concept modeling, requirements allocation, requirements negotiation, formal analysis

Requirements verification technique

Requirements review, prototyping, model validation, acceptance testing

Classification of cost estimation models

  1. Top-down cost estimation model

Expert judgment, Delphi technique 2. Bottom-up cost estimation model LoC(Line of Code), Man Month, COCOMO, Putnam, Function Point Model +

Man Month

The time it takes for one person to work on a project, regardless of the number of people involved in the project +

COCOMO(COnstructive COst MOdel)

Cost is calculated according to the size of the program with the model type proposed by Bohem - simple, medium, embedded +

Putnam

A model that assumes the distribution of manpower required for each stage of the software development cycle +

κΈ°λŠ₯점수 λͺ¨ν˜•

A method of selecting the cost by calculating the function score by assigning weight to each factor that increases the required function

1-3. Check the analysis model

Stereotypes of analysis classes

Know each stereotype of boundary, entity, and control.

Systemization feasibility analysis process of analysis model

Add feasibility review opinion column - Write feasibility review opinion - Verify feasibility analysis results - Check and distribute/share feasibility analysis results

Unified Modeling Language (UML)

Function) Use case diagram Structural/static) class diagram Dynamic) state/sequence diagram A standardized general-purpose modeling language created by integrating modeling techniques and methodologies used to specify, visualize, and document output during the object-oriented software development process. +

사물

,

관계 ,

λ‹€μ΄μ–΄κ·Έλž¨

πŸ”΄ UML relationships

  • Association
  • Association
  • Directional solid line notation
  • Direct direct relationship
  • Only the reference side is recognized
  • Aggregation set operation relationship πŸ”΄
  • Expression of a relationship in which one object is included in another object
  • A relationship in which multiple independent objects are composed of one object
  • Expressed by connecting a hollow diamond from the included side (Part) to the included side (Whole)
  • When the entire thing is destroyed, the part can be used
  • Composition Composition Association πŸ”΄
  • When the entire thing disappears, part of it also disappears.
  • Dependency Dependency relationship
  • Extend extended dependency relationship
  • Clan changes affect other classes
  • Do not keep references
  • Optional expanding relationships
  • Include Include dependency relationship
  • Class changes affect other classes
  • Do not keep references
  • Must-include relationship
  • Generalization Generalization relationship πŸ”΄
  • A generalization relationship expresses whether one thing is more general or specific than another thing.
  • The general concept is called the parent (parent), and the specific child concept is called the child (child).
  • Expressed by connecting a hollow arrow from a specific (lower) object to a general (higher) object
  • The generalization relationship is also called an inheritance relationship.
  • Realization Realization relationship
  • Interface and implementation class relationship
  • Child implements parent's imperfect behavior UML diagram types

Use Case, Activity, Sequence, Collaboration, Class, Component, Deployment diagram

  • Class diagram πŸ”΄πŸ”΄
  • Diagram including properties and methods
  • A diagram that defines the object types used in the system and expresses the static relationships between them in various ways
  • Use case diagram
  • Among the requirements, a diagram that expresses functional requirements in units of use cases and expresses the relationship between actors and the system
  • Package diagram
  • You can determine whether it is a package diagram by looking at the folder-shaped package, the dependencies indicated by dotted lines, and the stereotype notation <>.
    Class diagram Component diagram Deployment Diagram
    class_diagram.png component_diagram.gif uml_diagram.png
    Use case diagram package diagram
    ------------- -----------
    usecase_diagram.svg package_diagram.png
    Interface πŸ”΄
  • Other model elements, such as classes, or model elements that define a set of operations that a component must implement
  • One of the things expressed in UML, such as a class, is a collection of actions of classes or components, and expresses externally visible behavior. It is never used alone, but is used together with classes or components to implement interfaces.

Glossary of terms

Terminology Description
IPS (Intrusion Prevention System) A system that blocks network attacks or intrusions in real time and actively takes action against harmful traffic
router Network equipment used in the OSI layer 3 connects switches to establish a cost-optimized routing path between networks and delivers traffic along the determined path.
secure container Electronic security device for safe distribution of originals in copyright management
Clearing House Copyright management performs key management and license issuance management.
thread The basic unit of execution responsible for the execution part of the process
process A system program with a PCB processed by a processor as an execution unit managed by the operating system
protocol A set of communication protocols to facilitate data exchange between two entities in different systems
SSO πŸ”΄ Integrated login technology that allows access to multiple information systems without re-authentication through one system authentication
Backbone network A part of a computer network that interconnects various networks and provides a path for exchanging information between different LANs or subnetworks.
router Network equipment that specifies the optimal path to deliver layer 3 data packets from the source to the destination and forwards the data packets to the next device along this path
switch As a layer 2 device, it is a network device that quickly forwards data frames from the source within the same network based on the destination MAC address.
gateway Network equipment that enables communication between networks using different communication networks and protocols in a computer network
Garbage collection, GC As one of the memory management techniques, it is a function to release an area of ​​memory that is no longer needed among the memory areas dynamically allocated by the program.
transaction This is a characteristic that a DBMS must have to protect data from unauthorized users, and it is the basic unit of work to properly perform a logical function in the database.
Operations Per Second (OPS) This refers to the computing power processed per second and is a unit used to quantify computer performance.
prototyping The process of creating complete software by implementing key functions requested by users as a prototype and improving and supplementing them through user feedback
Interoperability The ability of a system to operate effectively by exchanging information and services between two or more systems with different purposes
Kilo Delivered Source Instruction (KDSI) The total number of source code lines grouped into 1,000 lines
Use case A function that the system must provide to actors, which is a system requirement and a function of the system from the user's perspective

Chapter 2. Data input/output implementation

2-1. Check logical data store

DB design procedure

κ°œλ…Όλ¬Ό

Requirements Analysis - Conceptual Design - Logical Design - Physical Design - Implementation

  • Conceptual design πŸ”΄
  • Expresses a conceptual data model based on the requirements specification and can be expressed as an E-R diagram
  • Logical design πŸ”΄
  • Perform normalization process to design schema and transaction interface suitable for target DBMS
  • Physical design πŸ”΄
  • This is the process of considering the characteristics and performance of a specific DBMS and converting it to a database storage structure. The resulting specifications include table definitions, etc.

Logical data modeling

A technique to clearly express the structural rules of business information as a basic design step in the database design process A model that specifically expresses the business data and rules of the business area from the conceptual model

학생(ν•™λ²ˆ, ꡐ수번호(FK), 이름, μ£Όμ†Œ)
ꡐ수(ꡐ수번호, 이름, 전곡과λͺ©)
  • Logical data modeling characteristics -

μ •κ·œν™”

,

ν¬μš©μ„±

,

μ™„μ „μ„±

,

독립성

  • Logical data modeling properties -

개체

,

속성

,

관계

  • Entity-Relationship (E-R) model diagram symbols
  • Entity (square), relationship (diamond), property (ellipse), multivalued property (double ellipse), relationship-property connection (line)

Normalization anomaly

μ‚½μ‚­κ°±

πŸ”΄ +

μ‚½μž…μ΄μƒ

When saving information, you must enter unnecessary details about the information. +

μ‚­μ œμ΄μƒ

When deleting information, other unwanted information is also deleted πŸ”΄ +

갱신이상

When only a specific part of duplicate data is modified and duplicate values cause contradictions

Normalization

원뢀이 κ²°λ‹€μ‘°

In the design of a relational database, the process of structuring tables to minimize duplication. Even the voice-code normal form belongs to the basic normal form.

  • Superkey: A set of one or more attributes that uniquely identifies each row,

μœ μΌμ„±

Only satisfied πŸ”΄

  • Candidate key: A minimum set of attributes that can uniquely identify each row in the table, candidates that can become a primary key.

μœ μΌμ„±

and

μ΅œμ†Œμ„±

Satisfied at the same time πŸ”΄

  • Primary key: One of the candidate keys, an attribute that satisfies minimum and uniqueness; cannot have NULL or duplicate values.
  • Alternative keys: Candidate keys other than those designated as primary keys
  • Determinator: When x corresponds to Y, X is the determiner and Y is the dependent.
    steps Conditions Example
    1 Normal Form (1NF) Composed of atomic values ​​ If there are two emails in the email column, separate them
    2Normal Form (2NF) Remove partial functional dependencies (full functional dependencies) Separation of other dependent relationships that exist within a dependent relationship
    3Normal Form (3NF) Transition function dependency removal Separation of tables with A->B and B->C relationships
    Voice-Code Normal Form (BCNF) Excluding things that are determinant functions but are not candidate keys Separate if there is an attribute that is a determinant but is not a candidate key (see case description below)
    4Normal Form (4NF) Remove multivalued (median) attribute When each developer has attributes such as certification and language, remove multi-value dependency
    5Normal Form (5NF) Remove join dependencies 4In normalization, the certificate and language tables are also separated, making it possible to restore them to their original state when joined
    About determinants and candidate keys
    For example, let's assume that the student table has student number and name as attributes. The student number can be a candidate key, and the student's name can be determined through the student number. However, the name is not a candidate key and may determine other determinants (e.g. phone number).
    For cases where there is an attribute that is a determinant but is not a candidate key
    If the primary key is the student number and subject name, these can affect the professor name. However, although the professor name itself is a determinant that affects the subject name, it cannot be a candidate key. Therefore, this situation violates the voice-code normal form.

Functional dependencies####

  • Full Functional Dependency πŸ”΄
  • Depends only on the primary key, and if the primary key consists of multiple properties, it depends on a subset of the primary key that includes all the properties that make up the primary key.
  • Identifying is only possible if you know the id value.
  • Partial Functional Dependency πŸ”΄
  • If a dependency in a relation depends on an attribute other than the primary key, or if the primary key consists of multiple attributes and is dependent on only some of the attributes that make up the primary key
  • If there are two primary keys, you can identify them even if you only know one.
  • Transitive Functional Dependency πŸ”΄
  • When X->Y, X->Z, dependency when X->Z

2-2. Physical data storage design

Physical data modeling

The process of detailing the logic model to fit the technology to be applied

CREATE TABLE STUDENT
(
s_id INT PRIMARY KEY,
p_id INT REFERENCES PROFESSER(p_id),
name VARCHAR(20),
addr VARCHAR(100)
)

CONSTRANINT Rules established for each column to ensure that only correct data is entered into the table and incorrect data is not entered.

Database file structure

  • Sequential method
  • A method of storing records sequentially so that the physical order of records is the same as the logical order of records
  • Index method
  • How to access the desired record by following the address indicated by the index
  • Hashing approach
  • A method to access records by substituting the kit value into the hash function and using the calculated result as the address.

Physical data storage configuration

  1. Constraint design – referential integrity constraints Conditions for ensuring consistency of references between relations
  • Limit (operation rejection), chain (batch deletion), null value (Null processing)
  1. Index πŸ”΄ A data structure in the form of <ν‚€κ°’, μ£Όμ†Œ> in the database that consists of information about columns in the database to optimize search operations.
  • Application criteria: Distribution 10~15%
  • Columns with indexes are

HAVING

Index not used when using clause +

CREATE [UNIQUE] INDEX 인덱슀λͺ… ON ν…Œμ΄λΈ”λͺ…(컬럼λͺ…1, 컬럼λͺ…2, ...)

πŸ”΄ 3. View

  • View properties

REPLACE

,

FORCE

,

NOFORCE

,

WITH CHECK OPTION

,

WITH READ ONLY

  1. Cluster It is a unit that gathers several elements of the target range (population) and is used when the index has a wide distribution.
  2. Partition Partitioning has the advantages of improving performance, improving availability, enabling backups, and reducing contention.

Range Partitioning / Hash Partitioning / List Partitioning / Composite Partitioning

  • Range Partitioning - Partitioning technique based on consecutive numbers or dates.
  • Hash Partitioning - Partitioning technique using the hash function value of the partition key
  • List Partitioning - A partitioning technique that allows explicit control over data to be stored in a specific partition.
  • Composite Partitioning - A partitioning technique that re-partitions by applying a hash function after range division.

2-3. Writing data manipulation procedures

Data manipulation procedures

Manipulating generated data using SQL PL/SQL is a data manipulation language developed by Oracle based on standard SQL.

CREATE OR REPLACE PROCEDURE INPUT_EMP
(
p_name IN VARCHAR2,
p_empno IN NUMBER
)
IS
BEGIN
INSERT INTO EMPLOYEE(NAME, EMPNO)
VALUES(p_name, p_empno);
COMMIT;
END;
EXEC INPUT_EMP('홍길동','31512');

Connection procedure

  • Driver loading - Database connection - Passing query - Receiving results

Testing data manipulation procedures

Use the DBMS_OUTPUT package. This package provides an interface for storing messages in a buffer and reading messages from the buffer. In order to run

SET SERVEROUTPUT ON;

and the procedure you want to run

EXECUTE

I do.

CREATE OR REPLACE PROCEDURE INPUT_EMP
(
p_name IN VARCHAR2,
p_empno IN NUMBER
)
IS
BEGIN
DBMS_OUTPUT.ENABLE; -- 데이터 μ‘°μž‘ ν”„λ‘œμ‹œμ € ν…ŒμŠ€νŠΈ
INSERT INTO EMPLOYEE(NAME, EMPNO)
VALUES(p_name, p_empno);
DBMS_OUTPUT.PUT_LINE(p_name); -- 데이터 μ‘°μž‘ ν”„λ‘œμ‹œμ € ν…ŒμŠ€νŠΈ, λ§ˆμ§€λ§‰μ— EOL 문자λ₯Ό μΆ”κ°€
COMMIT;
END;
EXEC INPUT_EMP('홍길동','31512');

When a PL/SQL error occurs

SHOW ERRORS

You can check the error details with the command.

2-4. Optimizing data manipulation procedures

Optimizer

It is a core database module that creates the optimal processing path to execute the SQL written by the developer most quickly and efficiently. In this case, the optimal processing path is

μ‹€ν–‰κ²½λ‘œ

It is said.

  • Rule Based Optimizer (RBO)
  • Optimizer that selects a query execution plan according to pre-registered rules in the absence of statistical information
  • Cost Based Optimizer (CBO)
  • Optimizer that selects a query execution plan that considers all access paths from statistical information

Hint

A key part of improving SQL performance is allowing you to change the optimizer execution plan at will.

SELECT /*+ RULE */ ENAME, SAL
FROM EMP
WHERE EMPNO > 9000;

Key optimizer hints

Hint Description

/*+ RULE */

        | Specify to use a rule-based approach |

|

/*+ CHOOSE */

      | Oracle optimizer defaults |

|

/*+ INDEX(데이블 인덱슀λͺ…) */

| Force use of specified index | |

/*+ USE_HASH(ν…Œμ΄λΈ”λͺ…) */

| Encourage specified tables to be joined in Hash Join format | |

/*+ USE_MARGE(ν…Œμ΄λΈ”λͺ…) */

| Encourage the join of specified tables to occur in Sort Merge format | |

/*+ USE_NL(ν…Œμ΄λΈ”λͺ…) */

| Enable joins of specified tables to occur in nested loop format |

Other SQL

  1. Add column
ALTER TABLE ν…Œμ΄λΈ”λͺ… ADD 컬럼λͺ… λ°μ΄ν„°νƒ€μž… [μ œμ•½μ‘°κ±΄]; πŸ”΄
  1. Edit column
ALTER TABLE ν…Œμ΄λΈ”λͺ… MODIFY 컬럼λͺ… λ°μ΄ν„°νƒ€μž… [μ œμ•½μ‘°κ±΄]; πŸ”΄
  1. Delete column
ALTER TABLE ν…Œμ΄λΈ”λͺ… DROP 컬럼λͺ… λ°μ΄ν„°νƒ€μž… [μ œμ•½μ‘°κ±΄]; πŸ”΄

Glossary of terms

Terminology Description
Conceptual model A model for defining relationships between subject areas and core data sets, a model for falsifying entities and relationships
relation Table consisting of rows and columns
Interests Different opinions and goals of stakeholders regarding the system
perspective Patterns or forms that serve as a foundation for developing individual views
view Represent the entire system in terms of a set of interrelated concerns
Online Transaction Processing (OLTP) Systems Basic data survey items for defining the technological environment include system construction type, number of users, number of transactions, etc.
Requirements Specification Creating documents that can be systematically reviewed, evaluated, and approved
Semi-normalization (denormalization) πŸ”΄ A data modeling technique that performs duplication, integration, and separation of normalized entities, properties, and relationships to improve performance and simplify development operations
Data Definition Language (DDL) Commands used to define data structures such as tables in a data definition language
Data Manipulation Language (DML) Language for entering, modifying, deleting, and searching data stored in the database (SELECT, INSERT, DELETE, UPDATE)
Disk Striping Technology that allows data to be stored on more than one disk drive and use the drives in parallel to improve performance
Application Performance Monitoring (APM) Performance monitoring tool for the purpose of identifying load, connected users, and diagnosing faults for stable system operation
Selectivity Proportion of records expected to be selected by certain conditions among all target records
Hint Grammar that provides information in advance about the SQL statement to be executed, resulting in quick results in SQL statement execution
hash join How to perform joins using hashing function techniques
Sort Merge Join A join method to reduce random access that occurs when the target range of the join is wide or to solve the problem when an appropriate index does not exist in the link
Nested iterative join A method of combining the other rows in two or more tables sequentially based on one set to obtain the desired result

Relational Data Model Components

νŠœμΉ΄μ†μ°¨

Component Description
relation Table consisting of rows and columns
tuple rows in relational database
Attribute Columns in relational databases
Cardinality πŸ”΄ number of tuples
Degree πŸ”΄ number of attributes
schema Basic structure containing information such as database structure and constraints
instance A set of data actually stored in a table created according to a defined schema

Components of the data model

μ—°κ΅¬μ œ

  • Operation πŸ”΄
  • Specification of operations for processing actual data stored in the database
  • Structure πŸ”΄
  • Relationships between logically expressed entity types
  • Constraint
  • Logical constraints on the actual data that can be stored in the database

Target of DDL

λ„μŠ€ν…Œλ·°μΈ

  • domain
  • A set of atomic values that a property can have
  • Information such as property data type, size, constraints, etc.
  • Schema πŸ”΄
  • Basic structure containing information such as database structure and constraints
  • Composed of three layers: external/conceptual/internal
  • table
  • Data storage space
  • view
  • Virtual table derived from one or more physical tables
  • index
  • Data structures to speed up searches

Types of schema

  • External schema πŸ”΄
  • Logical structure of the database required from the user or developer's perspective
  • Indicates user view
  • Called subschema
  • Conceptual schema πŸ”΄
  • Overall logical structure of the database
  • Overall view
  • Internal schema πŸ”΄
  • Database structure from the perspective of physical storage devices
  • Defines the record format that will actually be stored in the database, expresses the method of expressing stored data items, and the physical order of internal records, etc.

Chapter 3. Integrated Implementation

3-1. Linked data configuration

Linkage requirements analysis

Analysis techniques - interviews, checklists, questionnaires, Delphi technique, brainstorming Analysis reference documents - code definition, table definition, application configuration diagram, system configuration diagram

  • The linkage system can be composed of a sending system and a receiving system, and a relay server can be installed depending on the linkage method.

3-2. Linkage mechanism configuration

Linkage mechanism

Flow for designing the linkage method and cycle considering the requirements when linking data between application software and linked modules

Linkage method classification

Direct connection - DB link, DB connection, API/OPEN API, JDBC, hyperlink Indirect connection - connection solution (EAI), Web Service/ESB, socket

3-3. Implementation of internal and external linkage modules

Enterprise Application Integration (EAI)πŸ”΄

A solution that enables information transfer, connection, and integration between different platforms and applications operated in a company. This is a commercially available solution for system integration, and deployment types include Point to Point, Hub & Spoke, and Message Bus.

Enterprise Service Bus (ESB)

Architecture or technology that aims for service-oriented integration so that different platforms and applications operated in a company can be managed and operated as a single system A method of supporting application integration in a loosely coupled manner so that each protocol is compatible around the bus

Web service method

SOAP, UDDI, WSDL

  • SOAP (Simple Object Access Protocol) πŸ”΄
  • Protocol for exchanging XML-based messages in a network state using HTTP, HTTPS, SMTP, etc.
  • UDDI (Universal Description, Discovery and Integration)
  • A publicly accessible and searchable registry for registering and searching WSDL, information about web services.
  • WSDL (Web Service Description Language) πŸ”΄
  • A language implemented in XML format that describes web service name, provision location, message format, protocol information, and detailed information about the web service
  • Used in combination with SOAP and XML schema to provide web services on the Internet
  • WSDL consists of service interface and service implementation

Glossary of terms

Terminology Description
instance In OOP, an entity allocated from computer storage space as a structure of its class
object Space allocated to storage and has a value or is referenced by an identifier
Loosely Coupled Flexible structure where changes to a specific service do not affect other connected services
REST (Representational State Transfer) This means specifying a resource through an HTTP URI and applying commands such as creation, inquiry, update, and deletion to the resource through HTTP methods.
JSON πŸ”΄ An open standard format that uses human-readable text to transmit data objects consisting of 'property-value pairs' and 'key-value pairs' for asynchronous browser/server communication. A major data format widely used in AJAX and replacing XML

Chapter 4. Server program implementation

4-1. Establishment of development environment

Development environment construction

Build tools, implementation tools, test tools, configuration management tools

  • web server
  • Handles requests/responses using HTTP
  • Process static content on the web
  • Apache web server, ISS web server, Nginx, etc.
  • Web application server
  • Used to process dynamic content (Servlet, JSP)
  • Tomcat, Resin, etc.
  • database server
  • file server

Configuration ManagementπŸ”΄

Configuration management is an activity to manage changes to all items throughout the entire software development process. Configuration management procedures Shape identification - Shape control - Shape audit - Shape recording

  • Shape identification
  • Activities to define and identify configuration management targets
  • Enter ID and management number to provide traceability
  • When change management issues occur, they are handled using ID and management number.
  • Shape control πŸ”΄
  • Operation of a configuration control committee for version management of formation items
  • Control support such as change request management, change control, configuration management, etc.
  • Geometry Audit
  • Assess the integrity of the software baseline
  • Review whether it matches requirements when changing the baseline
  • Geometry record
  • Record various performance results for software configuration and change management
  • Create shape result report

4-2. Common module implementation

Common module implementation

  • module
  • Refers to one largely independent software or hardware unit
  • Common modules
  • Executable code that can handle specific functions within the overall program. Can be compiled on its own and used in other programs

Software module cohesion

As a concept that represents the independence of modules, the degree of coupling should be low, the degree of cohesion should be high, and the size of the module should be small.

  • Cohesion

μš°λ…Όμ‹œμ ˆ ν†΅μˆœκΈ°

πŸ”΄

  • An extended concept of information hiding, meaning that one module performs one function
  • The one with the highest degree of cohesion is

κΈ°λŠ₯적 응집도

Type Description
Accidental cohesion When each component inside a module is unrelated
Logical cohesion When processing elements with similar characteristics or classified into a specific type are processed in one module
Temporal cohesion When processing activities that need to be processed at a specific time rather than related functions in one module
Procedural cohesion πŸ”΄ When a module has multiple related functions and the components within the module perform their functions sequentially, there is no correlation between input and output, but they need to be performed in order
Communicative (commutative) cohesion πŸ”΄ When activities that perform different functions using the same input and output are gathered
Sequential cohesion When output from one activity within a module is used by another activity
Functional cohesion πŸ”΄ If all functions within a module are performed for a single purpose, all functions are related, grouped
  • binding degree

내곡 μ™Έμ œ 슀자

πŸ”΄

  • Association or interdependence with external modules
  • The lowest binding degree is

자료 결합도

Type Description
Content Combination When a variable inside another module uses a function in another module
Common bond diagram When interacting by referencing a global variable declared outside a module rather than a parameter and updating the global variable
external coupling When two modules share an externally introduced data format, communication protocol, or device interface
Control coupling πŸ”΄ When not only the value to be processed is delivered, but also a control element indicating how to process it is delivered
Stamp combination diagram When arrays, objects, structures, etc. are passed through the interface between modules
data combination diagram When interaction between modules occurs only through parameters passed to the interface between modules

Fan-In and Fan-OutπŸ”΄πŸ”΄

System complexity can be measured by fan-in and fan-out.

  • fan-in: number of modules controlling which module
  • Fanout: number of modules controlled by which module

Common module tests

Common module testing uses white box techniques. +

JUnit

πŸ”΄ White box testing / method-based testing / screen-based testing / test drivers & test stubs

  • White box testing
  • A software testing method that understands the logic of a program and examines its internal structure and operation.
  • Test drivers & test stubs
  • Perform integration testing with test drivers & test stubs if no screen or submodule implementation is implemented to test the functionality
  • When the driver has a sub-module but no upper-level module
  • Stub is used when there is a parent module but no child modules πŸ”΄

4-3. Server program implementation

Backend and frontend Implemented in order of VO, SQL statement, DAO, Service, Controller (?)

4-4. Batch program implementation

A batch program is a method of grouping a series of tasks into work units and performing them on a regular basis or in batches according to set rules without user interaction. Event batch, on-demand batch, scheduled batch

Batch Scheduler

Tools that support tasks that occur periodically or repeatedly for batch processing Batch supports high-capacity processing and Quartz supports various scheduling functions, so they are used interchangeably.

  • spring batch
  • Scheduler that provides large-capacity processing that can use all three major elements of the Spring Framework, including DI, AOP, and service abstraction
  • Quartz Scheduler
  • An open source-based scheduler that plugs into the Spring framework and provides flexibility by separating the tasks performed and the triggers that define the execution schedule.
  • Open source-based scheduler that provides flexibility by separating tasks and triggers that define execution schedules
  • Cron expression (Cron expression)

μ΄ˆλΆ„μ‹œμΌ μ›”μš”μ—°

* /10 * * * *

Run every 10 minutes +

0 0 12 * * *

Run every day at 12 o'clock

Glossary of terms

Terminology Description
table definition A design product created during the logical and physical modeling process that documents the characteristics, indexes, and business rules of the columns that make up the table.
Interface Definition Create a status record that records the interface method and cycle between the transmitting system and the receiving system
Java Virtual Machine (JVM) Software that provides a portable execution environment for Java-based applications while managing system memory
container Software that can run JSP and servlet
socket A technique for communicating by creating a connection, allocating a port, and connecting a client's request
baseline Standards for controlling changes such as reviewing, evaluating, adjusting, and processing the output of each stage of the development process

Chapter 5. Interface Implementation

5-1. Check interface design

Interface Design

The interface design is a document that defines the exchanged data, tasks, and sending/receiving subjects of each system for data exchange and processing between heterogeneous systems and components. Refer to Common module linkage method

EAI

ν¬ν—ˆλ©”ν•˜

Integration between heterogeneous application modules within the enterprise, enterprise internal network Core technologies:

μ–΄λŒ‘ν„°

,

브둜컀

,

λ©”μ‹œμ§€ 큐

  • Point to point πŸ”΄
  • 1:1 simple integration method
  • Hub and spoke πŸ”΄
  • Centralized way to transfer data through a hub system with a single point of contact
  • Message Bus
  • Middleware integration method that connects middleware between applications
  • Excellent scalability and large data processing capability
  • Hybrid
  • Integration method that uses a hub-and-spoke method within a group and a message bus method between groups

ESB

Integration with standard API for service exchange between companies, loosely coupled channel network outside the company Data standards can be confirmed by understanding interface meaning and checking interface functions.

5-2. Implementing interface functions

Component specification

Define the outline of the component, the behavior of the inner class, and the specification for communicating with the outside through the interface.

Interface Specification

A specification that specifies the detailed conditions and functions of the interface class specified in the component specification.

Secure Coding Guide

Input data verification and expression / Security functions / Time and status / Error handling / Code errors / Encapsulation / API misuse

Database encryption

encryption algorithm

  • Symmetric key encryption algorithm: Use the same algorithm for encryption and decryption
  • SEED, ARIA 128/192/256
  • Asymmetric key algorithm: Algorithm that requires a public key and a private key
  • RSA, ECC, ECDSA
  • Hash encryption algorithm: An algorithm with one-way characteristics in which the original input value cannot be found using the hash value.
  • SHA-256/384/512, HAS-160 encryption technique
  • API method, Plug-In method, Hybrid method When transmitting sensitive information through a communication channel, it must go through an encryption and decryption process.

IPSec

,

SSL/TLS

Transmitted using a secure channel.

  • IPSec (IP Security) πŸ”΄
  • IP security protocol using authentication header to ensure integrity and authentication at the IP layer and encryption to ensure confidentiality
  • Main protocols
  • Authentication (AH) protocol
  • Encryption (ESP) protocol
  • IKE (IKE) Protocol
  • SSL/TLS
  • Public key period security protocol that guarantees confidentiality when encrypting and transmitting web data between the application layer and the TCP/IP layer

TKIP, Temporal Key Integrity ProtocolπŸ”΄

A security protocol created to replace WEP encryption in wireless routers. AES is used for optimal security, but the Temporal Key Integrity Protocol is used for compatibility with some devices.

5-3. Interface implementation verification

Interface implementation verification tool

xUnit, STAP, FitNesse, Selenium, watir To continuously check whether the interface is operating properly, you can monitor the operation status using an application monitoring tool (APM, Application Performance Management).

Glossary of terms

Terminology Description
FTP (File Transfer Protocol) Protocol for transferring files between servers and clients using the TCP/IP protocol
adapter EAI's core device that connects various packaged applications and applications developed independently by companies
Broker Solution for converting data format and code when data is transferred between systems
message queue Technology for sending and receiving data between different applications using asynchronous messages
MyBatis A development framework that helps make relational DB programming in Java, an object-oriented language, easier
iBatis A development framework that connects SQL-based databases with Java, .Net, Ruby, etc.
component A software program that is independently developed and distributed to perform a specific function, has a well-defined interface, and is assembled with other components to build an application system
AJAX (Asynchronous Java Script and XML) πŸ”΄ Asynchronous communication technology using JavaScript, a technology to exchange XML data between a client and a server
serialization The process of converting a data structure or object into a format that can be stored and reconstructed in another computer environment
XML πŸ”΄ A multipurpose markup language developed by W3C to solve the problems of incompatibility between web browsers and the complexity of SGML
Inter-Process Communication (ICP) πŸ”΄ Technology for communicating between processes, such as shared memory, sockets, semaphores, and message queues

Chapter 6 Screen Design

6-1. Check UI Requirements

UI(User Interface)

A physical or virtual medium designed to enable communication between users and systems UX (User Experience) includes UI.

  • Command Line Interface (CLI)
  • User interface operated by entering commands as text
  • Graphical User Interface (GUI)
  • User interface using a mouse or electronic pen based on a graphical environment
  • NUI(Natural User Interface) πŸ”΄
  • User interface using body parts without keyboard or mouse
  • Organic User Interface (OUI)
  • User interface that allows any object existing in reality to be transformed into an input/output device UI design principles Intuitiveness / Effectiveness / Learnability / Flexibility
  • Intuitive πŸ”΄
  • Anyone can easily understand and use it
  • Validity πŸ”΄
  • Designed to accurately and completely achieve the user's goals
  • Learnability
  • Designed to be easy to learn and use for both beginners and experts
  • Flexibility
  • Designed to accommodate user interaction as much as possible and prevent mistakes

UI screen design classification

  • wireframe
  • Designing a screen-level layout to discuss screen composition with stakeholders or share the simple flow of the service
  • Storyboard
  • Design output containing all information for service construction, including policy, process, content composition, wireframe, function definition, and database linkage
  • prototype
  • A model that can be simulated as if it were actually implemented by applying dynamic effects to a wireframe or storyboard designed as a static screen

6-2. UI design

UI flow design, UI detailed design, UI design tool

Glossary of terms

Terminology Description
Interaction A series of communication processes between digital systems and people through input/output devices
UX The total experience that users feel and think while directly or indirectly experiencing products, systems, services, etc.
profile A grouped value that characterizes a system within a certain range
Usability Testing A test in which users directly use the product, perform tasks according to pre-written scenarios, and then answer questions
Actor A person or system that is external to the system and interacts with it
Use case A function that the system must provide to actors, which is a system requirement and a function of the system from the user's perspective
Mockup Model made before the actual product is released

Chapter 7 Application Test Management

7-1. Application test case design

Software Testing

Activities to check whether the developed application or system satisfies the functions, performance, usability, and stability required by users, and to find hidden, unexposed software defects

  • Classification according to whether the program is running or not
  • Static testing (static analysis tool testing) - peer review, walk-through, inspection πŸ”΄
  • Dynamic testing - white box testing, black box testing
  • Classification according to testing techniques
  • White box test / Black box test
  • Classification according to test time
  • Verification/Confirmation
  • Classification according to test purpose
  • Recovery / Safety / Strength / Rescue / Reversion / Parallel
  • Classification by test type
  • Specification-based testing / Structure-based testing / Experience-based testing

Source quality analysis tool

  • Static Analysis πŸ”΄
  • Analyzes raw code to analyze potential errors, and verifies coding standards, runtime errors, etc.
  • Dynamic Analysis πŸ”΄
  • Detects errors that occur during program execution. It is possible to analyze memory leaks and synchronization errors.

White box testing

Also called structural testing, it is a test performed while looking at the internal logic.

  • Statement coverage, decision coverage, condition coverage, change condition/decision coverage, multi-condition coverage testing, etc.
  • Tests used in Common Module Test
  • Sentence (syntax) coverage πŸ”΄
  • Perform every statement at least once
  • Decision (quarter) coverage πŸ”΄
  • Since the entire conditional expression within the decision point of each branch must result in true and false at least once, the first branch statement must also contain true and false once, and the second branch must also contain true and false once.
  • Also called decision verification criteria. Performed when conditions are True/False
  • Condition Coverage πŸ”΄
  • Performed on True/False of individual conditional expressions regardless of the entire conditional expression

Black box test

λ™κ²½κ²°μƒμœ λΆ„νŽ˜

πŸ”΄πŸ”΄ This is a test performed while looking at the requirements specifications of users outside the program, also called specification-based testing.

  • Equivalence split test πŸ”΄
  • A technique to derive and test representative value test cases by grouping valid values/invalid values by similar domains in the input data area.
  • Boundary value analysis tests πŸ”΄πŸ”΄
  • A technique for designing test cases including boundary values because the probability of errors occurring in the boundary value portion after equivalence division is high.
  • Cause-effect graph testing πŸ”΄
  • A technique to select and test test cases with high utility by using graphs to analyze relationships between input data and their impact on output
  • Test the decision table
  • A technique to test by combining both conditions and actions by listing the logic and occurrence conditions of requirements in table form
  • State transition test
  • A testing technique that distinguishes the states of the test object/system or object and counts the number of cases in which one state transitions from one state to another due to an event.
  • Use case testing
  • A testing technique that specifies and performs test cases based on the process flow when the system is modeled with actual use cases
  • Classification tree test
  • A technique to design and test test cases by expressing part or all of SW in a tree structure
  • Pairwise test
  • This is a method of combining test data values at least once, and this is a testing technique to construct a test set with a relatively small amount compared to all combinations of the functional range to be covered.

Verification and confirmation

  • Verification
  • The process of testing the software process and determining whether the software performs the specified functions correctly from the perspective of the developer or tester.
  • Validation
  • Testing software results, user-initiated, to prove that the right software has been developed

Test Oracle

A technique of inputting and comparing a predefined true value to determine whether the test result is true or false.

  • True Oracle
  • An oracle that can detect all errors by generating the expected results for all input values
  • Sampling Oracle πŸ”΄
  • Oracle provides expected results only for a few specific input values
  • Heuristic Oracle
  • This is an oracle that is an improved sampling oracle that provides correct results for specific input values and processes the remaining values using heuristics.
  • Consistency Check Oracle
  • Oracle checks whether the results before and after execution are the same when there is an application change

Test level

Unit Testing - Integration Testing - System Testing - Acceptance Testing πŸ”΄ (V diagram)

  • Unit testing πŸ”΄
  • Test unit modules, subroutines, etc. according to user requirements
  • Integration testing πŸ”΄
  • Test phase to verify interfaces between modules that have passed unit tests and interactions between integrated components
  • System testing
  • Test phase to verify whether the functions of the integrated unit system are performed normally in the system
  • Acceptance testing
  • Testing to ensure that contractual requirements have been met
  • Alpha testing πŸ”΄
  • Acceptance testing conducted by selected users (other users within the company or actual users) together with the developer under controlled conditions in a developer environment
  • The first tests during the development of a new product.
  • In other words, it is a means of evaluating the results of initial operation at the stage of the new product research and development process while the prototype is in operation, and includes unit tests, configuration tests, system tests, etc. as tests conducted within the development company.
  • Beta testing πŸ”΄
  • Acceptance testing by having a certain number of users use the target software in a real environment and receiving feedback
  • Product testing conducted during the development stage of hardware or software before commercialization. Conducted to evaluate whether a product is defective and its value as a product
  • Correct and supplement various errors that appear after allowing selected potential customers to use the service for free for a certain period of time. The final inspection process before releasing the product as an official product.

Test Scenario

A document that describes the operation sequence of test cases as a set of several test cases for test performance and a document that specifies procedures for testing

7-2. Application integration testing

Integration test

Application integration testing is a systematic testing technique to find errors and defects related to the interface between each software module.

  • Big Bang Test
  • Perform testing after integrating all modules simultaneously
  • Proceed with actual modules without test drivers/stubs
  • Short-term testing possible, advantageous for small systems
  • Available after all modules are developed
  • Bottom-up testing
  • Progress gradually from the lowest level modules
  • Test driver required πŸ”΄
  • Easy to locate faults, but critical modules are likely to be tested last
  • Top-down testing
  • Testing while integrating sub-modules starting from the top-level module
  • Test stub required
  • Easy to locate faults, but requires many stubs

Test Harness

Code and data to support testing as part of the environment for testing application components and modules, written by code developers for use in unit or module testing.

  • test driver
  • Required for bottom-up testing, such as calling the sub-module under test, passing parameters, and deriving results after performing module testing
  • test stub
  • A tool that simply performs the functions of other modules called by the control module and is necessary for top-down testing
  • Test suite
  • A set of test cases used for the component, module, or system under test
  • test case
  • Set of input values, execution conditions, expected results, etc.
  • test script
  • Specification of automated test execution procedures
  • neck object
  • If the user's actions are conditionally entered in advance, an object that performs the actions scheduled for that situation

Test coverage type

It is a test quality metric that measures the scope of software testing performed by test cases, and serves to improve the accuracy and reliability of testing.

  • Function-based coverage, line coverage, code coverage

Code coverage type

Same as structural test type.

  • Syntax coverage
  • Coverage of executing all statements in a program at least once, calculated as the number of statement executions
  • Crystal coverage
  • Coverage where all decisions within a program execute a true or false result at least once
  • Condition Coverage
  • Coverage that ensures that each condition in a decision statement results in a true or false result at least once
  • Condition/Decision Coverage
  • Coverage that performs not only the entire conditional expression but also individual conditional expressions so that the result is true once and once false
  • Change condition/decision coverage
  • Coverage that improves condition/decision coverage by allowing each individual conditional expression to independently affect the entire conditional expression without being affected by other individual conditional expressions
  • Multi-condition coverage
  • 100% guaranteed coverage of all possible combinations of all development condition expressions within the decision conditions

7-3. Improved application performance

Causes of database-related performance degradation

Database locks, unnecessary database patches, connection leaks, inadequate connection pool size, commit related issues.

Clean code

Well-written, highly readable, simple, cleanly organized code with fewer dependencies and minimal duplication.

Glossary of terms

Terminology Description
Peer review A review technique conducted in the form of a review conducted by 2 to 3 people in which the writer of the requirements specification explains the requirements specification and stakeholders discover defects while listening to the explanation
Walkthrough A technique for detecting and documenting errors through review in the form of distributing review materials before the meeting, conducting a preliminary review, and then holding a meeting for a short period of time
Inspection A formal review technique in which software requirements, design, source code, etc. are examined by an expert or team other than the author to find errors
V model Test model to support verification of the process from the developer's perspective and confirmation of the final product from the user's perspective at each stage of the SW life cycle
VLAN Network technology that arbitrarily divides the transmission range of broadcast packets without being restricted by physical distribution by using a logically divided switch network, a LAN switch with virtual functions, or an ATM switch
depth-first How to start at the root node and completely explore that branch before moving on to the next branch
width-first How to start from the root note and explore adjacent nodes first
stub A dummy module that replaces the module and all its subcomponents, so you only need to pass the return value of the submodule
driver Dummy module to check the input and output of data from the parent module
Persona A virtual user that combines the various purposes and observed behavior patterns of potential users
Lightweight Directory Access Protocol (LDAP) An application protocol for querying and modifying a directory service, a collection of objects with similar characteristics organized on top of TCP/IP
script Program that can be run without compilation
Ramp-up load A load test conducted by steadily increasing the expected traffic from a low level of load to a high level of load for the purpose of measuring the limit

Chapter 8. SQL application

8-1. Writing procedural SQL

Procedure

A transaction language that can perform specific functions by leveraging procedural SQL Declaration part (DECLARE), start/end part (BEGIN/END), control part (CONTROL), SQL, exception part (EXCEPTION), description part (TRANSACTION)

CREATE PROCEDURE SALES_CLOSING
(V_CLOSING_DATE IN CHAR(8))
IS
V_SALSE_TOT_AMT NUMBER := 0;
BEGIN
IF V_CLOSING_DATE < "20000101"
SET
V_CLOSING_DATE < "20200101";
END IF;
SELECT SUM(SALES_AMT)
INTO V_SALES_TOT_AMT
FROM SALES_LIST_T
WHERE SALES_DATE = V_CLOSING_DATE;
EXCEPTION
WHEN NO_DATA_FOUND
SET V_SALES_TOT_AMT = 0;
INSERT INTO
SALES_CLOSED_T
(SALES_DATE,
SALES_TOT_AMT)
VALUES (V_CLOSING_DATE,
V_SALES_TOT_AMT);
COMMIT;
END;
EXECUTE SALES_CLOSING('20170425');

User-defined function

In addition to common functions provided by DBMS, users define and write their own Unlike procedures, instead of an explanation part,

λ°˜ν™˜λΆ€(RETURN)

Defines a single value returned to the query calling the user-defined function.

Trigger

This is a program implemented to automatically run in DBMS when a data change event such as insert, modify, or delete occurs in a specific table. Unlike the procedure

μ„€λͺ…λΆ€(TRANSACTION)

There is no. and in the middle

EVENT

This is the added form.

  • Things to keep in mind when creating triggers
  • TCL not available
  • Compilation error occurs when using COMMIT, ROLLBACK
  • Beware of errors

8-2. Writing applied SQL

Aggregate functions

A function that returns a single result from multiple rows or all rows of a table

  • COUNT, SUM, AVG, MAX, MIN, STDDEV (standard deviation), VARIAN (variance)

Group function

A function that groups all rows of a table according to column values based on one or more columns and outputs results by group. +ROLLUP

  • Group function to calculate intermediate aggregate values such as subtotals of specified columns
  • CUBE
  • Create multidimensional aggregation of all values
  • GROUPING SETS
  • You can obtain individual aggregates for columns subject to aggregation, and obtain results regardless of the column order.

Window function

OLAP, a function added to standard SQL for use in online analysis processing using a database

  • Ranking function
  • RANK, DENSE_RANK (equal ranking), ROW_NUMBER
  • row order function
  • FIRST_VALUE, LAST_VALUE, LAG, LEAD
  • Proportion within group function
  • RATIO_TO_REPORT
  • PERCENT_RANK

Data Control Language (DCL)

A control language used by database administrators (DBAs) to ensure data security, maintain integrity, parallel control, and recovery.

  • GRANT πŸ”΄
  • Database commands to grant privileges to specific users
GRANT κΆŒν•œ ON ν…Œμ΄λΈ” TO μ‚¬μš©μž [WITH κΆŒν•œ μ˜΅μ…˜];
  • REVOKE
REVOKE κΆŒν•œ ON ν…Œμ΄λΈ” TO μ‚¬μš©μž [CASCADE CONSTRAINTS];

Glossary of terms

Terminology Description
TRUNCATE Command to return to the state in which the original table was created, with no data remaining and only the table structure left
Pesticide Paradox πŸ”΄ Software testing principle that repeated testing with the same test case does not find new bugs
Error - the sophistry of absence Software testing principle that if requirements are not met, the quality cannot be considered high even if there are no defects
Walkthrough It is a type of static test and is an unstructured test that is conducted based on requirements, source code, and test type when a review request occurs
Inspection A formal review method for reviewing output at each development stage as a type of static test
Regression Testing πŸ”΄ A test that evaluates whether new defects are found in changed or modified code, a test often used during maintenance
Structure-based testing Testing technique to create and verify test cases according to the internal logic flow of the software
acceptance testing Testing phase to ensure contractual requirements are met during the testing level
Integration Testing Systematic testing technique to find interface-related errors and defects between each software module
neck object If the user's actions are conditionally entered in advance as one of the test device components, an object that performs the actions scheduled for that situation
OnLine Analytical Processing (OLAP) Technology that helps users perform multidimensional data analysis by looking at the same data in various ways using multiple criteria as a decision support system

Software testing principles

  • Testing is about uncovering the existence of defects.
  • Perfect testing is impossible
  • Start testing early in development
  • Defect concentration
  • Pesticide Paradox
  • Testing is context dependent
  • Error - the sophistry of absence

Chapter 9. Building software development security

9-1. Software development security design

SW development security

Requirements specification - design - implementation - testing - maintenance

  • Confidentiality
  • Features that block information disclosure and exposure due to unauthorized individual or system access
  • Availability πŸ”΄
  • Specific information that ensures that authorized users or applications can continue to use the desired service
  • Integrity
  • Characteristics that ensure that data cannot be changed without following a legitimate method, and that the data is accurate and complete and has not been intentionally/maliciously altered, damaged or destroyed.

Security Solutions

  • SIEM (Security information and event management) πŸ”΄
  • It is a security solution that responds to threats in advance by integrated management and analysis of large amounts of logs generated from IT systems using machine learning technology.
  • Logs and events from different types of security solutions can be centrally collected and analyzed, and network status monitoring and abnormal signs can be detected in advance.
  • It is a security solution that integrates and manages logs and security events occurring from various devices. It has the feature of saving costs and resources by integrating and managing logs and security events occurring from firewalls, IDS, IPS, web firewalls, VPNs, etc. Additionally, a comprehensive security management system can be established through interconnection between security solutions.

SIM(Security Information Management)

SEM(Security Event Management)

  • Enterprise Security Management (ESM)
  • Same functionality as SIEM, but

짧은 κΈ°κ°„

Security solution that manages logs and security events

  • firewall
  • Intrusion prevention system with the function of selecting and accepting/rejecting/modifying information transmitted between the network within a company or organization and the Internet
  • Intrusion Detection System (IDS)
  • A system that detects abnormal use, misuse, and abuse of computer systems in real time
  • Intrusion Prevention System (IPS)
  • Security solution that takes defensive measures such as actively blocking and isolating abnormal traffic
  • Data leak prevention (DLP, Data Leakage/Loss Prevention)
  • Security solution to prevent external leakage of internal information
  • Web Firewall
  • A firewall specialized for web servers designed to defend against web-based attacks such as SQL injection attacks and Cross-Site Scripting (XSS) that general firewalls cannot detect.
  • VPN (Virtual Private Network)
  • Security solution that uses public networks and encryption technology to make users feel as if they were using their own dedicated line
  • Network Access Control (NAC)
  • A security solution that provides consistent security management functions after registering the MAC address of the internal PC connecting to the network to the IP management system +Trustzone
  • It is a hardware-based security technology developed by ARM that protects important information by creating an independent security zone within the processor. It is a hardware-based security technology that protects important information by creating an independent security zone within the processor.

3A, AAA

information protection technology

  • Authentication
  • Verifies the identity of the user attempting access before accessing the system
  • Authorization
  • Allow any level of permissions and services to verified users
  • Accounting Account Management πŸ”΄
  • Collect usage information about users' resources (time, information, location, etc.)

DoS attack

An attack that maliciously attacks a system and depletes its resources, preventing it from being used for its intended purpose.

  • Local system attack / remote network attack

DDoS attack

Another form of DoS attack is a technique that attacks a specific site by distributing multiple attackers and having them operate simultaneously. Unlike DoS, it does not attack directly, but instead instructs attacks and carries out attacks through numerous infected hosts.

Resource depletion attack

SYN Flirting / UDP Flooding / Smurf / PoD (Point of Death)

  • SYN Flirting
  • An attack that makes the server unusable for other users by occupying the number of concurrent users on the server by sending only SYN packets
  • The attacker continues to request new connections without sending an ACK, so the server only consumes resources without canceling resource allocation, resulting in resource depletion.
  • UDP flooding
  • An attack that continuously depletes resources by creating a large number of UDP packets and sending them to a random port number to generate a response message (ICMP)
  • ICMP packets are modified and not delivered to the attacker, so they wait.
  • Smurfs
  • An attack that paralyzes the network by directly broadcasting ICMP Echo packets to the entire network by setting the source address to the IP of the attack target
  • PoD (Point of Death)
  • An attack that intentionally sends large-sized packets to the target system, rendering the system unserviceable.
  • Break abnormal packets into small pieces and transmit

Application Attack

HTTP GET Flooding / Slowloris(Slow HTTP Header DoS) / RUDY(Slow HTTP POST DoS)

  • HTTP GET Flooding
  • Cache Control Attack
  • Denial of service attack that exhausts web server resources by manipulating HTTP cache options to induce the web server to process directly rather than the caching server
  • Slowloris (Slow HTTP Header DoS)
  • A newline string that signals the end of the header using the HTTP GET method.

\r\n\r\n

without transmitting

\r\n

A denial-of-service attack that transmits only the target web server and maintains the connection for a long time and exhausts all connection resources.

  • RUDY (Slow HTTP POST DoS)
  • An attack that maintains the connection by sending a very small amount of the message body by setting the content-length of the request header to an abnormally large size.

Network service attack

Sniffing / Network Scanner, Sniffer / Password Cracking / IP Spoofing / ARP Spoofing / Trojan Horse

  • Sniffing πŸ”΄
  • Passive attack technique that secretly looks at data without directly attacking the target
  • Network scanner, sniffer
  • Tools used by attackers to identify vulnerabilities in network hardware and software configurations
  • Password cracking
  • Discover network passwords using dictionary cracking and brute force cracking methods
  • John the Ripper is a representative attack tool
  • IP spoofing
  • Methods used to gain unauthorized access to servers
  • An intruder forges the IP address of an authenticated host by modifying the packet header.
  • ARP Spoofing πŸ”΄
  • ARP spoofing is an attack technique in which an attacker creates an ARP Reply that forges the MAC address of a specific host with its own MAC address and continuously sends it to the victim, changes the MAC information of a specific host in the victim's ARP Cache Table to the attacker's MAC information, and allows the attacker to sniff packets going from the victim to a specific host.
  • ICMP Redirect Attack
  • ICMP redirect is an attack technique that changes the flow of packets by notifying the sniffing system at layer 3 that it is another router existing in the network.
  • An attack technique in which the attacker sniffs packets destined for a specific destination by creating an ICMP Redirect message in the form desired by the attacker.
  • Trojan Horse πŸ”΄
  • A program with hidden malicious routines, which looks like a normal program on the outside, but executes malicious code when run.
  • It masquerades as a normal program so that the user can directly install it on the computer, and creates a backdoor to allow attackers to infiltrate or destroy the system.

  • A program that disguises itself as a normal program, resides in RAM from start to finish, and steals internal system information to the attacker's computer.
  • A type that can not only leak internal information but also control it, like a zombie PC; a type that can simply leak internal data
  • No ability to replicate itself after infection
  • Worm πŸ”΄
  • Malicious program that can replicate itself on an infected computer system and spread copies to other computers
  • Runs on its own, does not require any other executable programs, and is designed to exploit file transfer functionality
  • self-replication and

λ„€νŠΈμ›Œν¬

It is also possible to spread through

  • Virus πŸ”΄

λŒ€μƒ(μ •μƒνŒŒμΌ)

It is executed in the form of infecting, does not run when there is no target to infect, and has the function of self-replication to other normal files.

  • Malicious code that intrudes into a computer system, parasitizes the program, and changes or renders the system unusable.
  • It does not spread through the network and is divided into several forms depending on the method and location.

Vulnerability Attack

Land Attack / Bonk, Boink / Tear Drop

  • Land Attack πŸ”΄
  • Send the source IP and destination IP to the same packet address
  • An attack method in which an attacker arbitrarily changes the source address or port of a packet to make the source and destination addresses the same, thereby slowing down the execution speed of the target computer or paralyzing its operation, resulting in a denial of service state.
  • Bonk, Boink
  • This is an attack technique using protocol error control, which causes overload by retransmitting and reassembling packets in the system.

봉크

: Continue sending the same sequence number +

λ³΄μž‰ν¬

: Create empty space in sequence number at regular intervals

  • Tear drop
  • DoS attack that causes receiving system problems due to incorrect Fragment Offset information during IP packet reassembly

Cipher algorithm

  • Symmetric key encryption method
  • Algorithm that uses the same encryption key for encryption and decryption
  • Block encryption method: AES, DES, ARIA, SEED, HIGHT, IDEA
  • Stream encryption method: RC4
  • Asymmetric key encryption method
  • An encryption method that encrypts the public key and decrypts it using the private key corresponding to the public key.
  • Diffie-Hellman, RSA
  • Hash method
  • A one-way algorithm that maps arbitrary data to data of a fixed length.
  • SHA, MD5 Data Encryption Standard (DES) πŸ”΄
  • American standard encryption algorithm using a block cipher method that creates 64-bit ciphertext blocks using a 56-bit key developed by IBM
  • It is a type of block cipher and is a cipher set as a national standard by the U.S. NBS (National Bureau of Standards, currently NIST).
  • It is a symmetric key encryption algorithm that encrypts 64-bit plaintext into 64-bit ciphertext. The + key contains 1 bit of information for error detection every 7 bits, so in reality,

56λΉ„νŠΈ

It is. Advanced Encryption Standard (AES) πŸ”΄

  • Advanced encryption standards
  • Replaces DES,

128λΉ„νŠΈ

Symmetric key encryption method with block size and key size of 128,192,256 bits SEED

  • 128-bit symmetric key encryption algorithm with excellent stability and reliability IDEA πŸ”΄
  • This algorithm was created by Xuejia Lai and James Messey, and was changed from PES (Proposed Encryption Standard) to IPES (Improved PES). It is a block cipher algorithm created in 1991 and is currently used as an international data encryption algorithm.
  • A 64-bit block consists of 8 rounds using a 128-bit key.
  • Algorithm developed in Switzerland to replace DES SKIPJACK, skipjack πŸ”΄
  • This is a block algorithm built into the Clipper chip developed by the U.S. NSA. It is mainly used to encrypt voice such as on a telephone, and has a total of 32 rounds of 80-bit keys for 64-bit input and output. Rivest Shamir Adleman
  • This is the most widely used asymmetric key encryption method that takes advantage of the difficulty of prime factorization. Secure Hash Algorithm (SHA)
  • U.S. national standard designated hash encryption algorithm, SHA-1, SHA-2, designed by the U.S. National Security Agency MD5 (Message-Digest Algorithm 5) πŸ”΄
  • 128bit hash encryption algorithm used to replace MD4 HAS-160
  • An algorithm developed for the domestic standard signature algorithm, a hash algorithm developed by taking advantage of MD5 and SHA-1

9-2. Implementing software development security

Input data validation and representation attacks

  • SQL Injection πŸ”΄
  • An attack technique that uses security vulnerabilities in an application to insert and execute malicious SQL statements to steal or manipulate information through database access.
  • Cross-site scripting (XSS)
  • Malicious code is executed in the browser due to unverified external input
  • Cross-site request forgery (CSRF)
  • An attack that causes a user to request a specific website to perform an action intended by the attacker regardless of his/her will
  • Path manipulation and resource insertion
  • When external input values are not pre-validated or are processed incorrectly
  • Insert operating system commands
  • An attacker manipulates operating system commands when operating system command parameter input values are used without proper prior verification.

Glossary of terms

Terminology Description
Diffie-Hellman A method of exchanging cryptographic keys that allows two people to share a common secret key over an unencrypted communication network
Secure Socket Layer (SSL) A public key-based security protocol that guarantees confidentiality when encrypting and transmitting web data between the application layer and the TCP/IP layer
Salt Random string of bytes added when generating a digest from a one-way hash function
Session Hijacking πŸ”΄ An attack that uses TCP reliability-based connections to spy on communication content or intercept sessions, bypassing the normal authentication process and illegally accessing the system.
Mutex Mutual Exclusion Technology that allows threads with critical sections to run independently without overlapping execution times
LEAD Function that returns the value of the next row in a partition-specific window
session Logical connection between client and server
Singleton pattern A pattern that allows you to create only one object without using global variables, and allows you to refer to the created object anywhere
model checking A technique for verifying that a model specified in a formal language satisfies the characteristics to be verified
A session is a concept used in web development to maintain state between a client and a server, and IP is an addressing system used in network communications to identify a device on the Internet.

Chapter 10. Utilize programming languages

10-1. Use basic grammar

Utilizing variables

  • binding
  • Static binding - a way to bind properties before program execution time
  • Dynamic binding - a way to bind properties at program run time
  • Data structure
  • Logical spatial structure that allows you to insert, delete, and modify data on your computer
  • Simple structure / linear structure / non-linear structure / file structure

float

represents 4 bytes up to 6 decimal places,

double

represents 8 bytes up to 15 decimal places.

  • Algorithm
  • A solution to find an answer to a problem
  • data type
  • A form that identifies various types of data such as real values and integer data types
  • Exists to efficiently use memory space and use binary data in various forms
  • variable
  • When there is a value to be stored, it refers to the space for storing that value in the main memory.
  • It is a space used to store a certain value in the main memory, and the data type is the length and nature of the attribute value that the variable can have.

operator

Symbols that express operations for program execution include arithmetic operators, shift operators, relational operators, logical operators, bitwise operators, assignment operators, and increment/decrement operators. +

&

An operator that operates on two values bitwise and returns true if both values are true, and returns false otherwise. +

|

An operator that operates on two values bitwise and returns true if one is true, and returns false otherwise. +

^

An operator that operates on two values bitwise and returns true if they are different, and returns false otherwise.

User-defined data types

A data type created by the user by combining existing data types to suit the situation.

  • Enumeration
  • A set of interrelated integer constants
  • Structure
  • User data type that allows users to newly define basic types
struct ꡬ쑰체λͺ…{
char gender;
int age;
int school_name;
}
  • Union
  • User-defined data type in which all member variables share one memory space
  • Unlike a structure in which all variables are allocated in different memory, all variables in a union are allocated in the same memory.
union ꡬ쑰체λͺ…{
char gender;
int age;
int school_name;
}

Abstraction and Inheritance

  • Abstraction is a technique that excludes details and simplifies focusing on important parts.
  • Inheritance is a technique in which a lower-level group inherits all the characteristics of a higher-level group and reuses or extends them.
  • Reification is how a lower-level group materializes the abstract parts of a higher-level group.

10-2. Take advantage of language features

Classification according to implementation technique

  • Compiled language
  • A language that translates high-level language into machine language
  • FORTRAN, PASCAL, C, C++
  • Interpreter type language
  • A language that translates and executes high-level language statements one by one
  • BASIC, Prologue, LISP
  • Hybridized language
  • A language that compiles a high-level language, converts it to an intermediate language, and then executes the translation by an interpreter.
  • Java

Characteristics of each programming language

  • Procedural programming language
  • ALGOL, C, BASIC, FORTRAN
  • Object-oriented programming language
  • Implement programs through object-to-object communication
  • Objects, classes, messages
  • Components of an object - #### Object, properties, methods ####
  • C++, C, JAVA, Delphi
  • Script language
  • PHP, Perl, Python, JS
  • Declarative language
  • Haskell, Lisp, Prolog, SQL

Library

A collection of programs, modules and packages necessary for efficient program development

10-3. Programming Examples and Algorithms

C language

#includ<stdio.h>
void main(){
char a = 'B';
printf("a\n");  // a
// printfλ§ŒμœΌλ‘œλŠ” 띄어쓰기 μ•ˆλ¨
}
πŸ”΄
void main(){
char *p="KOREA";
printf("%s\n", p);        // KOREA
printf("%s\n", p+3);      // EA
printf("%c\n", *p);       // K
printf("%c\n", *(p+3));   // E
printf("%c\n", *p+2);     // M
}
// pλΌλŠ” ν¬μΈν„°λŠ” KOREAλΌλŠ” μ €μž₯곡간이 ν• λ‹Ήλœ 곳을 κ°€λ¦¬ν‚€λŠ”λ°, 문자 λ§ˆμ§λ§‰μ—λŠ” NULL이 μžλ™μœΌλ‘œ 생성
// %sλŠ” λ¬Έμžμ—΄μ„ 좜λ ₯ν•˜κ³ , %cλŠ” 문자λ₯Ό 좜λ ₯
// pλ₯Ό 좜λ ₯ν•˜λ©΄ p μ£Όμ†ŒλΆ€ν„° NULLκΉŒμ§€μ˜ 값을 μ½μ–΄μ˜€λ―€λ‘œ, 'KOREA'κ°€ 좜λ ₯
// p+3을 좜λ ₯ν•˜λ©΄ Kμ—μ„œ 3번째인 EλΆ€ν„° NULLκΉŒμ§€ μ½μœΌλ―€λ‘œ 'EA'κ°€ 좜λ ₯

C++ language

using namespace std;

Because we used

std::cout

You don't need to write anything. (Specifies that it is included in the namespace)

#includ<iostream>
using namespace std;
void main(){
cout << "Hello world";
}
cout << endl;
cout << hex << a << endl; // a λ³€μˆ˜κ°’μ„ 16μ§„μˆ˜λ‘œ 좜λ ₯
cout << (a<<2) << endl;   // aλ₯Ό μ™Όμͺ½μœΌλ‘œ 2λΉ„νŠΈ μ΄λ™ν•œ κ²°κ³Όλ₯Ό 10μ§„μˆ˜λ‘œ 좜λ ₯

Python

Python functions πŸ”΄

  • extend: means extending an element, adding all items as one element
  • pop: A function that takes out an element inside a list, deletes that element from the list and returns its value.
  • reverse: Reverses the order of elements in the list
print(oct(a)); // a λ³€μˆ˜κ°’μ„ 16μ§„μˆ˜λ‘œ 좜λ ₯
print(7/3);    // 2.33333 νŒŒμ΄μ¬μ—μ„œλ§Œ '/' κΈ°ν˜Έκ°’μœΌλ‘œ μ†Œμˆ˜μ κΉŒμ§€ λ‹€ 좜λ ₯
// '%' 연산은 λ‹€λ₯Έ μ–Έμ–΄λ“€κ³Ό 동일
for i in range(1,10): // 1~9κΉŒμ§€ μ—°μ‚°
print(ai)
class A:
def fnA():
print('A클래슀')
class B(A):       // A 클래슀 상속
def fnB():
print('B클래슀')
a.update({'홍콩', 'ν•œκ΅­', 'νƒœκ΅­'})  // κΈ°μ‘΄ aμ—μ„œ 쀑볡 μ œμ™Έ μΆ”κ°€
print(a)
// {'홍콩', 'ν•œκ΅­', 'νƒœκ΅­'} μ΄λ ‡κ²Œ {}κΉŒμ§€ 좜λ ₯ πŸ”΄
lol=[[1,2,3],[4,5],[6,7,8,9]]
print(lol[0])
print(lol[2][1])
for sumb in lol:
for item in sub:
print(item, end='')
print()
[1,2,3] πŸ”΄
7
123
45
6789
a = 100
result = 0
for i in range(1,3);  // i = 1 or 2
result = a >> i
result = result + 1
print(result)
// 26

range(1,3)

Substitute only 1 and 2, excluding the end value.

  • Even in the case of list

[0:3]

In case , only 1 and 2 are substituted, excluding the end value.

  • When i is 1,

1100100

value

>>

If you process it

110010

, and this value becomes the result.

  • Proceeds the same way even when i is 2! The point to note here is that the value of a remains unchanged at 100. πŸ”΄

Java

public class Conv{
public Conv(int a) {
this.a = a;
}
int func() {
int b =1;
for (int i=1; i<a; i++){
b = a * i + b;
}
return a + b;
}
}
public static void main(String[] args){
Conv obj = new Conv(3);
obj.a=5;
int b = obj.func();
system.out.print(obj.a + b);  // 61
}
  • b is a problem of finding the return value of func() when a is 1 to 4.
  • If you look at the operations of func() in order, πŸ”΄
  • b = 5*1+1 = 6
  • b = 5*2+6 = 16
  • b = 5*3+16 = 31
  • b = 5*4+31 = 51
  • The return value is 5+51=56.
  • So obj.a+b = 5+56 = 61
public class testco {
public static void main(String[] args) {
int a = 3, b = 4, c = 3, d = 5;
if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) {
a = b + c;
if(7 == b ^ c != a) {
System.out.println(a);     // 7
} else {
System.out.println(b);
}
} else {
a = c + d;
if(7 == c ^ d != a) {
System.out.println(a);
} else {
System.out.println(d);
}
}
}
}
// 7

^

As an XOR operator, it returns False if the two values are the same, and True otherwise. +

1 == b ^ c != d

The part is

1 == b

Wow

c != d

Think about it by dividing it into

1 == b

is false but

c != d

is true, so as a result

^

The operation becomes true. πŸ”΄

public class ClassA {
public static void main(String args[]) {
System.out.println(check(1));
}
static String check(int num){
}
}
// static
  • static πŸ”΄ used when declaring a method that can be used without creating a class
class Parent{
public int compute(int num){
if(num<=1) return num;
return compute(num-1)+compute(num-2);
}
}
class Child extends Parent{
public int compute(int num){
if(num<=1) return num;
return compute(num-1)+compute(num-3);
}
}
class Main{
public staic void main(String[] args){
Parent obj = new Child();
System.out.print(obj.compute(4));
}
}
  • Execute Child’s compute method by overriding πŸ”΄
  • compute(1) + compute(-1) + compute(0) + compute(1) = 1

Logical operators

Typically in programming languages if it is 0

False

, and values other than 0 are

True

Judging by

Access control directive

  • private - Instance variables and methods can be accessed inside the declared class
  • protected - Allow access to inherited classes
  • public - instance variables and methods accessible from anywhere
  • in python

_

(private),

__

(protected)

Overloading

A characteristic that allows defining multiple methods with the same name

  • The method name is the same, but the number and type of parameters are different.
  • Return type can be the same or different
  • Python does not support method overloading

Overriding

Traits that allow a subclass to override a superclass

  • Method is the same as the parent class (all parameters, method name, and return type)

Interface

Grammar to reduce development code modifications and increase program maintainability by maximizing Java's polymorphism

Abstract class

A syntax that has one or more unimplemented abstract methods and forces child classes to implement those abstract methods. Even if the inherited class does not implement an abstract method, no error occurs until it is imported, but an error occurs when creating an object.

Glossary of terms

Terminology Description
compiler FORTRAN, a program and tool that translates high-level languages ​​such as C into machine language
interpreter A program that allows you to translate and execute program sentences one by one

Chapter 11. Utilization of applied SW basic technology

11-1. Features of the operating system

Unix operating systemπŸ”΄

It is an operating system created through Bell Labs by Dennis Ritchie and Ken Thompson, and is more than 90% implemented in C language. The system program is modularized, so it can be easily ported to other hardware models. It has a hierarchical tree structure, making integrated file management easy. A general-purpose multi-user quadruple operating system used in educational and research institutions. Interactive operating system, provides multi-tasking functionality, provides multi-user functionality, provides portability, provides hierarchical tree structure file system.

  • Linux operating system
  • Mac operating system
  • Android operating system πŸ”΄
  • It is an operating system developed by Google that runs on Linux and is a software stack and Linux mobile operating system that includes an operating system, middleware, user interface, and standard operating program for portable devices, including mobile phones.

Operating system core functions

  • Memory management
  • Ability to maintain and manage memory usage until the program ends execution
  • Programs in memory are moved to the CPU for processing
  • Import technique, placement technique, allocation technique, replacement technique
  • Process management
  • Comprehensive management techniques for the process, including current memory usage, memory input/output order, and securing memory space when transmitting and receiving data with the CPU process-status.png

Process status

  • Creation state, preparation state, execution state, waiting state (no priority exists), completion state πŸ”΄

Process state transition

  • Dispatch
  • Allocate CPU by selecting the process to be executed among several processes in ready state - Context switch occurs
  • Timer run out
  • Contrary to dispatch, when the process assigned to the CPU exceeds the specified time, the scheduler saves the PCB, returns the CPU, and returns to the ready state.
  • Block/Sleep
  • In the running state, if I/O or other events occur before the process exceeds the designated allocated time, the CPU is released by itself and goes to a standby state until the I/O is completed.
  • Wake-up
  • When input/output ends at any moment, the process in the waiting state is notified of the end of input/output through wait & signals, etc., and transitions to the ready state. +Swap-in
  • When memory is allocated again to the process
  • From delayed ready/delayed waiting state to ready or waiting state
  • Swap-out
  • When the process loses memory

Process Scheduling

A technique for managing priorities among processes trying to use the CPU

  • Preemptive scheduling, non-preemptive scheduling

Preemptive Scheduling

A scheduling method in which when one process is occupying the CPU, another process with a higher priority interrupts the current process and takes up the CPU. Round robin, SRT, multi-level queue, multi-level feedback queue

  • Round Robin RR πŸ”΄
  • Processes are allocated the same amount of CPU time. If a process cannot complete processing within the allocated time, it is sent to the back of the ready queue list and the CPU moves on to the next waiting process.
  • Shortest Remaining Time First (SRT) πŸ”΄
  • The process that takes the shortest time is performed first, and if a process that is judged to have a shorter remaining processing time appears in the ready queue, the process is preempted at any time.
  • Multi-level queue
  • Tasks are divided into various types of groups, and lower-level tasks are preempted by upper-level tasks by using multiple queues.
  • Multi-level feedback queue
  • Different CPU time allocations are assigned to each queue depending on the input/output-oriented and CPU-oriented characteristics of the process.

Non-preemptive scheduling

A scheduling method in which once a process is assigned a CPU, no other process can occupy the CPU until the CPU is returned after the task is completed. Priority, deadline, FCFS, HRN, SJF

  • Priority
  • Priority is given to each process and CPU is allocated according to priority, FCFS has the same priority
  • Deadline
  • Plan tasks to be completed within specified time or deadline
  • First Come First Service (FCFS) = FIFO
  • Allocate CPU according to the order in which processes arrived at the wait queue
  • Shortest Job First (SJF) πŸ”΄
  • Depending on when the process arrives, the process with the smallest service time at that time will occupy the resource until termination.
  • Starvation phenomenon occurs
  • Highest Response Radio Next (HRN)
  • Select the one with the highest current response rate among waiting processes
  • Reducing inequality between long and short work hours with a technique that complements the starvation phenomenon, a weakness of SJF

(λŒ€κΈ°μ‹œκ°„ + μ„œλΉ„μŠ€μ‹œκ°„)/μ„œλΉ„μŠ€μ‹œκ°„

πŸ”΄

Virtualization

Technology that makes physical resources appear to the user as one, or makes one physical resource appear as multiple With virtualization, usage of just 20% of server capacity can be increased to over 60-70%.

Cloud Computing

Technology that provides virtualized computer system resources through the Internet and processes information not on one's own computer but on another computer connected to the cloud Cloud Computing Types

  • Infrastructure-type service (IaaS, Infrastructure as a Service)
  • Service that provides system resources such as servers and storage through the cloud
  • Platform-type service (PaaS, Platform as a Service)
  • A service that provides a platform that allows you to develop, run and manage applications without the complexity of creating and managing infrastructure
  • Software-type service (SaaS, Software as a Service)
  • A service where software and related data are centrally hosted and users access the software as a service by accessing it through a client such as a web browser.

11-2. Using database basics

database

File system, hierarchical database, mesh database, relational database

DBMS(Database Management System)

Software that addresses the complexities of data management while supporting functions such as adding, changing, retrieving, deleting data, as well as backup, recovery, and security.

  • Key-value DBMS
  • Column-based data storage DBMS
  • Document storage DBMS
  • Graph DBMS Data Integrity / Consistency / Resilience / Security / Efficiency

Leverage relational databases

ERD(E-R Diagram) Diagram that schematizes the entities (entities) derived as a result of business analysis and the relationships between entities, entity / attribute / relationship

Transaction

A characteristic that a DBMS must have to protect data from unauthorized users, and the basic unit of work to properly perform a logical function in a database system. Characteristics of Transaction

ACID

  • Atomicity πŸ”΄
  • Minimum unit of work that cannot be disassembled
  • The entire operation succeeds or fails
  • Characteristics in which the configuring operations themselves must all be executed normally or all must be cancelled.
  • Consistency
  • Attributes that require preservation of improved batched database state after successful transaction execution
  • Isolation
  • A characteristic that makes it impossible for other transactions to access the intermediate results of operations generated during transaction execution
  • Durability πŸ”΄
  • The result of a successful transaction is permanently stored in the database. Transaction Control Language (TCL) +COMMIT
  • ROLLBACK πŸ”΄
  • When an error occurs during transaction processing, a command that returns to a specific point in time before the error
  • CHECKPOINT

Types of recovery techniques

  • Log-based recovery techniques
  • Deferred Update recovery technique
  • Technique of not recording the transaction in the database until it is completed
  • Immediate Update Recovery Technique πŸ”΄
  • Technique to immediately reflect update results in DB during transaction execution
  • Among database recovery techniques, this is a transaction processing method that executes both Redo and Undo during rollback, and updates results are immediately reflected in the DB during transaction execution.
  • REDO πŸ”΄: Record the events before an error occurs in a log, return to the previous state, and re-execute the process until the failure occurred.
  • UNDO πŸ”΄: Use logs to undo and recover error-related contents
  • Checkpoint recovery technique
  • When a failure occurs, a recovery technique that restores only transactions processed after the checkpoint to the state before the failure occurred
  • Shadow phasing recovery technique
  • A technique to create a replica when performing a database transaction and use it to recover in the event of a database failure

Database isolation level

+Read Uncommitted

  • Allows another transaction to read data being operated on in one transaction, but operations on data being operated on are not permitted
  • Read Committed
  • When performing an operation in one transaction, reading of the data to be operated is restricted until the operation is completed, and data committed after the operation is completed is allowed to be read by other transactions.
  • Repeatable Read
  • When a preceding transaction reads characteristic data, update/delete of that data is restricted until the transaction ends.
  • Serializable Read
  • When a preceding transaction reads a specific data area sequentially, access to the entire data area is restricted

Big data

Unstructured data of petabyte (PB) size that exceeds the data range that can be processed within a given cost and time by systems, service organizations, etc.

NoSQL(Not Only SQL)

A DBMS that cannot use JOINs and is horizontally scalable, a term used to refer to a DBMS that is different from a traditional RDBMS

Data MiningπŸ”΄

Technology to systematically and automatically find statistical rules or patterns in large-scale stored data

SELECT COUNT(COL2)
FROM TBL
WHERE COL1 IN (2,3) OR COL2 IN (3,5);
COL1 COL2 COL3
2 NULL 1
3 7 NULL
4 5 5
5 3 NULL
NULL 3 9
  • In count(), count excluding NULL values.

11-3. Leveraging Network Basics

Network

Infrastructure for accurately transmitting desired information to desired recipients or devices

  • WAN, broadband network: routing algorithm is required
  • LAN, local area network: a network that covers one building or a small area VPN (Virtual Private Network)
  • Creates a private network connection between devices over the Internet and is used to transfer data securely and anonymously over public networks.
  • It also masks user IP addresses and encrypts data to make it unreadable to unauthorized recipients.

OSI layer 7

All control information is added each time it passes through a layer on the transmitting side, and is removed each time it passes through a layer on the receiving side, according to the protocol provided by the operating system. Tier 1

  • hub
  • Equipment for connecting multiple computers and sending them over a network, or for sending information received through a single network to multiple computers
  • repeater
  • Equipment that amplifies digital signals so that they are received by the computer without being weakened 2nd tier
  • bridge
  • A communication network connection device that connects two local area networks (LANs) to each other
  • L2 switch
  • A data link layer communication device that quickly transmits frames from the source based on the destination MAC address to improve the shortcomings of bridges and hubs with slow transmission speeds 3rd tier
  • router
  • Internet networking equipment to connect LANs to LANs or LANs to WANs
  • Equipment that extracts the location of the packet, specifies the optimal path to that location, and transmits the data packet to the next device along this path
  • gateway
  • A device that allows protocols to connect to different communication networks
  • Acts as an gateway for LANs to send data to or receive data from other networks
  • L3 switch
  • Communication equipment that connects network units at layer 3
  • Performs switching at the IP layer and transmits to the outside 4th tier
  • L4 switch
  • Communication equipment that connects network units at the 4th layer
  • Perform switching such as TCP/UDP
  • Load balancing function that separates and switches FTP, HTTP, etc.

Ad Hoc NetworkπŸ”΄

  • A network without infrastructure that is autonomously configured by nodes and does not require infrastructure devices such as base stations or access points to configure and maintain
  • Nodes communicate with each other using a wireless interface, and the multi-hop routing function overcomes the communication distance limitations of the wireless interface. Since nodes can move freely, the network topology changes dynamically.
  • Application areas include emergency rescue, emergency meetings, and military networks in battlefields.

ProtocolπŸ”΄

Standardized communication protocols to facilitate data exchange between different systems or devices Psychologist Tom Maril calls a protocol a 'technical slang' for a set of methods by which a computer delivers messages, checks to see if they arrive properly, and retransmits them if they don't. Basic elements of protocol

κ΅¬μ˜νƒ€

πŸ”΄

  • Syntax: Specification of data format, coding, signal level, etc. for information transfer between systems
  • Meaning: Control information for information transfer between systems and regulations for coordination and error handling
  • Timing: Regulates speed control and sequence management for information transfer between systems network protocol A system of formats and rules for exchanging messages between computers or telecommunication equipment
  • IP (Internet Protocol)
  • Communication protocol used to send and receive information in a network that exchanges data in packets between transmission and reception
  • ARP(Address Resolution Protocol)
  • Protocol that converts IP address to MAC address (physical address) on IP network
  • Reverse Address Resolution Protocol (RARP) πŸ”΄
  • A protocol used to request an IP address from a server when an IP host knows its physical network address but does not know its IP address.
  • Internet Control Message Protocol (ICMP)
  • The protocol message format that reports problems that occur when processing IP packets is divided into an 8-bit header and a variable-length data area.
  • Internet Group Management Protocol (IGMP)
  • Internet Group Management Protocol is a communications protocol used by host computers and adjacent routers to configure multicast group membership.
  • Routing Protocol
  • Intercommunication protocol between routers that establishes the optimal path among multiple paths to the destination for data transmission Transmission Control Protocol (TCP) Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. A protocol located at the transport layer that allows a series of octets to be exchanged reliably, in order, and without errors between programs running on computers connected to a local area network, intranet, or Internet. UDP (User Datagram Protocol) A transport layer communication protocol that provides connectionless, unreliable, unordered datagram services. IPv4 A network layer protocol with a 32-bit address system for exchanging data on a packet-switched network used on the Internet.
  • 32bit (can be expressed in four parts, 8bit each) πŸ”΄
  • Variable header
  • IPSec protocol provided separately IPv6 πŸ”΄ A next-generation Internet protocol redefined as version 6 Internet Protocol as a protocol at the network layer of the Internet protocol stack.
  • 128bit πŸ”΄
  • Fixed header
  • Security provided as standard in extended functions L2TP πŸ”΄
  • One of the tunneling technologies implemented at layer 2 (data link layer)
  • A protocol that combines L2F and PPTP, used by VPNs and Internet Service Providers (ISPs)
  • When used with IPsec, it is much more secure than PPTP, but better suited for anonymization than security Circuit exchange method
  • Method of sending and receiving data after setting the transmission path
  • Both the sending and receiving sides must be ready for data exchange and the line is exclusive.
  • Video, video packet exchange method
  • Method of sending data in packet units
  • Excellent line efficiency and asynchronous transmission possible
  • Unsuitable for real-time transmission and causes network delay
  • Email, messages, etc.
  • Virtual line method πŸ”΄πŸ”΄
  • Connection-type exchange method that communicates after pre-connecting with the destination host
  • Fix the optimal route with the first packet, and once the route is fixed, the next packet is divided into packets and transmitted at high speed
  • Datagram method πŸ”΄πŸ”΄
  • A connectionless exchange method that attaches a header and delivers it individually
  • Effective and reordering function is required when transmitting packets of short messages

Routing Protocol

Data passes through various physical devices in the process of transferring data from the transmitter to the receiver. Method for calculating the optimal route to the destination algorithm

  • Distance vector algorithm
  • Routing protocol algorithm that shares information with neighboring routers to determine the distance and direction to the destination
  • Link state algorithm (OSPF, Open Shortest Path First) πŸ”΄
  • Routing algorithm that constructs a shortest path tree by passing link state information to all routers
  • Use Dijkstra's algorithm
  • Specify routing metrics
  • Administrators specify routing metrics such as minimum delay, maximum throughput, etc.
  • Use AS splitting
  • Divide autonomous systems into regions to effectively handle routing
  • Unlimited hop count
  • There is no limit to hop count. type +RIP
  • The first routing protocol
  • Utilize distance vector algorithm
  • IGP (Interior Gateway Protocol)
  • A set of multiple networks interconnected by routers is called a domain or Autonomous System (AS).
  • A router that exists within the same domain becomes an internal router, and a router that exists outside the domain becomes an external router. Here, it refers to the internal route configuration in the domain.
  • Developed by Cisco to improve RIP issues
  • Consider network conditions and route
  • OSPF (Open Shortest Path First)
  • As a type of IP routing protocol, it can be used in networks larger than RIP (routing information protocol).
  • As a routing protocol that improves the shortcomings of RIP in large-scale and complex TCP/IP networks, it allows for more detailed control than RIP and also reduces management information traffic.
  • Use link state algorithm
  • Faster updates than RIP about changes that have occurred
  • Exterior Gateway Protocol (EGP)
  • Protocol used to exchange routing information, etc. between systems
  • There is little organized management when routing between different domains, and in many cases, reliability is very low, so the original purpose is security and control rather than fast performance.
  • Border Gateway Protocol (BGP)
  • Interconnection of large-scale networks
  • An external gateway protocol (EGP) used to exchange routing information between routers in different autonomous systems (AS).
  • Contains complete routes to each destination and maintains a database of network reachability information that is exchanged with other systems.
  • Use network reachability information to construct an AS connectivity graph, which allows you to eliminate routing loops and execute policy decisions at the AS level.

Network address splitting

πŸ”΄
첫번째 λ„€νŠΈμ›Œν¬ μ£Όμ†Œκ°€ 192.168.1.0/24μΌλ•Œ FLSM 3개둜 λΆ„ν• ν–ˆμ„λ•Œ
λ‘λ²ˆμ§Έ λ„€νŠΈμ›Œν¬ λΈŒλ‘œλ“œμΊμŠ€λ“œ IPλ₯Ό 10μ§„μˆ˜λ‘œ λ³€ν™˜ν•œ 값을 μž‘μ„±ν•˜μ‹œμ˜€.
// 192.168.1.127
  • FLSM refers to dividing a fixed size equally.

/24

means 24 1s from the beginning, so it can be used as an IP address by changing only the last 8 bits.

  • In other words, 256 IP addresses from 0 to 255 can be created in the last digit.

11111111 11111111 11111111 11000000

but last

11000000

Because the FLSM is divided into three

2<super>2</super>

Since it blocks the first two digits, you can divide it by 64. +

192.168.1.0 ~ 192.168.1.63

When the first group is decided like this, the first address is the network ID address and the last address is the broadcast IP address.

  • So the broadcast address of the second group is

192.168.1.127

This happens.

πŸ”΄
IP μ£Όμ†Œκ°€ 139.127.19.132이고 μ„œλΈŒλ„·λ§ˆμŠ€ν¬ 255.255.255.192일 λ•Œ μ•„λž˜μ˜ 닡을 μž‘μ„±ν•˜μ‹œμ˜€.
// (1) κ΄„ν˜Έμ•ˆμ— λ“€μ–΄κ°ˆ λ„€νŠΈμ›Œν¬ μ£Όμ†Œ : 139.127.19.(128)
// (2) ν•΄λ‹Ή λ„€νŠΈμ›Œν¬ μ£Όμ†Œμ™€ λΈŒλ‘œλ“œμΊμŠ€νŠΈ μ£Όμ†Œλ₯Ό μ œμ™Έν•œ 호슀트 개수 : 62
  • The network address is obtained through AND operation. If you AND the IP address and the ID of the subnet mask, the subnet mask is 255 anyway, so it follows the IP address excluding the HOST ID.
  • In other words, based on the number at the end, the IP address is 132, so

10001000

, the subnet mask is 192, so

1100000000

This happens.

  • Therefore, if you perform AND operation,

10000000

= 128 becomes the last number of the network address.

  • The number of hosts is divided into 6 bits excluding the two digits that separate the subnets, so 26 - 2 =

62

It is.

  • Since the network address and broadcast address are excluded here, it is calculated by subtracting 2.

11-4. Establishing a basic development environment

Development environment infrastructure configuration method

  • On-premise method
  • A method of building a development environment using only the intranet network while the external Internet network is blocked
  • Cloud method
  • A method of building a development environment by renting services from companies that provide cloud services such as Amazon, Google, and Microsoft
  • Hybrid method
  • On-premise + Cloud

Glossary of terms

Terminology Description
Memory Management Unit (MMU) A component of computer hardware that manages CPU access to memory, a device that translates virtual memory addresses into real memory addresses
process Currently running program, usually a program processed by the CPU
Context Switch The process of saving the context state of the process currently being executed by the CPU in the process control block and restoring the context from the PCB of the next process is called context exchange.
starvation phenomenon A phenomenon in which low-level processes in the ready queue wait indefinitely due to high system load
declaration The task of giving properties such as name and data type to a variable
Ontology A knowledge base that describes all concepts that exist in the real world, their properties, and relationship information between concepts in a way that computers can understand
Semantic Web A web that uses ontology to describe services and automates service search, combination, and mediation functions using ontology's semantic interoperability
Multicast Application in Internet video conferencing, etc., in which one or more senders transmit data to one or more specific recipients.
Unicast A transmission technology that transmits traffic or messages 1:1 to a single network destination identified by a unique address
Broadcast A technology in which one transmitter transmits data to all recipients on the same subnetwork
Anycast A transmission technology that connects datagrams from a single sender to the nearest node in a group of potential recipients in the topology

Chapter 12. Product Software Packaging

Digital Rights Management

  • Content Provider: Copyright Holder
  • Content Distributor: Provides encrypted content
  • Packager: Ability to bundle content into distributable units with metadata
  • Secure container: Electronic security device for safe distribution of originals
  • DRM Controller: Controls usage rights of distributed content
  • Clearing House: Key management and license issuance management

Release Notes

  • Header πŸ”΄: Information such as document name, product name, version, release date, reference date, note version, etc.
  • Overview: A brief general overview of the product and changes
  • Purpose: A list of new features in the release version and an overview of the purpose of the release notes, bug fixes and descriptions of new features
  • Issue Summary: A brief description of the bug or summary of release additions
  • Reproduction items: Reproduction step description according to bug discovery
  • Modifications/improvements
  • User influence
  • Software support impact
  • notes
  • Disclaimer
  • Contact information

Glossary of terms

Terminology Description
module In software design, units are broken down into functional units and abstracted to a level that can be reused and shared
ISAM The content of the data is recorded in the main repository, and the index of the data is recorded in the index book along with the location where the data is recorded.
VSAM File management system used in large operating systems
Component Repository As a repository that registers certified components, users can easily use components through the repository.

Chapter 13. Other additional information

Application performance metrics

  • throughput
  • Number of transactions the application can process at any given time
  • For web applications, expressed as pages per hour
  • Response time πŸ”΄
  • Time from when user input ends to when application response output begins
  • In the case of applications, the time it takes for the menu to appear when clicking the menu
  • Elapsed time πŸ”΄
  • The time it takes from the time a user enters a request into the application until the transaction is processed and the output of the result is completed
  • Resource utilization
  • CPU usage, memory usage, and network usage used by the application while processing transactions

Business Continuity Plan (BCP)

  • Business Impact Analysis (BIA)
  • Business impact analysis to build a BCP that examines the impact and loss assessment over time, assuming major operational losses due to failures or disasters
  • Recovery Time Objective (RTO), disaster recovery time πŸ”΄
  • A term that refers to the time from the point of emergency or business interruption until business is restored and operating normally again
  • Recovery Point Objective (RPO)
  • When data is recovered from the point of business interruption and resumes normal operation, data loss is acceptable.
  • Selection of recovery target point in case of disaster
  • DRP(Diaster Recovery Plan)
  • Disaster recovery plan in case the facility is unable to operate for a long period of time due to a disaster
  • Disaster Recovery System (DRS)
  • A disaster recovery center that integrates human and material resources and a continuous management system for them that are normally secured to support the smooth implementation of the disaster recovery plan.

Software Development Methodology####

  • Structured methodology
  • Divide and conquer approach methodology that divides and develops the entire system according to function and integrates it
  • Information engineering methodology
  • Systematized methodology of management procedures and work techniques required for information system development
  • Object-oriented methodology
  • Methodology for analyzing and designing systems based on basic units called objects
  • Component-based methodology
  • A methodology for creating a new application program by assembling the components that make up software
  • Agile Methodology πŸ”΄
  • A quick adaptive lightweight development methodology that focuses on people rather than procedures and enables efficient system development while flexibly and quickly adapting to changes.
  • Product line methodology
  • Methodology for defining and developing common functions to be applied to specific products

Object-Oriented Design Principles (SOILD)

Five design principles: SRP, OCP, LSP, ISP, DIP Single Responsibility Principle (SRP)

  • A class should have only one responsibility. OCP (Open/Closed principle), open-closed principle
  • Software elements must be open for extension but closed for modification. Liskov Substitution Principle (LSP)
  • Objects in a program must be able to be converted into instances of subtypes without breaking the correctness of the program. ISP (Interface Segregation Principle), interface separation principle πŸ”΄
  • Multiple interfaces for specific clients are better than one general-purpose interface.
  • The principle is that clients should not depend on methods they do not use.
  • By separating large chunks of interfaces into specific, small units, clients can use only the methods that are absolutely necessary.
  • Make sure that other methods are not affected even if the logic changes.
  • Clients should not establish dependencies on methods they do not use.
  • The principle of designing the interface separately to be client-specific
  • For example, since clients rarely use all functions of the multifunction device class at the same time, it is designed so that only one function among print, fax, and copier clients can be used when necessary. DIP (Dependency Inversion Principle)
  • Programmers should rely on abstraction, not concreteness. - Dependency injection

Design Patterns

Common, iterative solutions to frequently encountered problems in software design It refers to a typical solution or example that can be referred to when designing relationships and interfaces between modules.

GoF (Gang of Four) design pattern

생ꡬ행

generative pattern Pattern defining class/object creation and referencing process

Abstract Factory, Builder, Factory Method, Prototype, Singleton

Abstract Factory

pattern, abstraction pattern

  • Expressed abstractly to create a group of objects that are related/dependent on each other through an interface rather than relying on a concrete class.

Builder

pattern

  • Create objects by combining small, separate instances as if building them. Since the object creation process and expression method are separated, different results can be produced even when creating the same object.

Factory Method

Pattern πŸ”΄

  • A virtual constructor pattern is a pattern that separates and encapsulates object creation so that it is handled by a subclass. Only the interface is defined in the upper class, and the actual creation is handled by the subclass.
  • It is a pattern that creates a concrete class that is unknown to the parent (parent) class, and is also a pattern that allows the child (child) class to decide which object to create. It is also used as a way to hide the concrete class name in the parent (higher) class code.

Prototype

pattern

  • This is a pattern for creating objects by duplicating the original object. Objects are created in a general way and are mainly used when the cost is high.

Singleton

pattern

  • If you create an object, you can refer to the created object anywhere, but multiple processes cannot refer to it at the same time, and it guarantees that there is only one instance within the class, minimizing unnecessary memory waste. structural pattern A pattern created by combining classes or objects into a larger structure to make it easier to develop systems with complex structures.

Adapter, Bridge, Proxy, Composite, Decorator, Facade, Flyweight

Adapter

pattern

  • This is a pattern that converts the interfaces of incompatible classes so that other classes can use them. It is used when you want to use an existing class but the interfaces do not match.

Bridge

Pattern πŸ”΄

  • Distinguish between classes that handle functions and abstract classes that are responsible for implementation.
  • Use the bridge pattern when independent changes are required not only in the implementation but also in the #### abstraction.
  • It is useful when continuously adding new additional functions to the existing system, and by defining a new interface, you can expand functions without changing the existing program.

Composite

pattern

  • This is a pattern used when you want to handle complex objects with multiple objects and single objects without distinction. By configuring objects in a tree structure, you can implement a structure where complex objects are included within complex objects, just as there are directories within directories.

Decorator

pattern

  • A pattern that can actively expand functions through combination between objects, implemented by adding other objects to add additional functions to an arbitrary object.

Facade

pattern

  • This is a pattern that allows you to easily use the functions of subclasses by configuring an interface at a higher level to avoid complex subclasses. A wrapper object that provides an integrated interface between subclasses is required.

Flyweight

pattern

  • This is a pattern that saves memory by sharing instances as much as possible rather than creating them every time they are needed, and can be useful when creating or manipulating multiple similar objects.

Proxy

Pattern πŸ”΄

  • This is a pattern that acts as an interface between an object that is difficult to access and the object to be connected to it, and is mainly used for network connection and access to large objects in memory. Behavior/Behavior Pattern πŸ”΄πŸ”΄

Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Observer, State, Strategy, Visitor

Chain of Responsibility

pattern

  • It is a pattern in which there are two or more objects that can handle a request, and if one object cannot handle it, it moves on to the next object. Each object that can handle a request is tied into a chain, and responsibility is passed along the chain until the request is resolved.

Command

pattern

  • This is a pattern that encapsulates the request in the form of an object and stores or logs the information needed for the request so that it can be reused or canceled. It simplifies the various commands used in the request by separating them into abstract classes and concrete classes.

Interpreter

pattern

  • A pattern that defines grammatical expressions in a language, used when developing things such as SQL or communication protocols

Iterator

pattern

  • This is a pattern that uses the same interface for frequently accessed objects, such as data structures, allowing sequential access without exposing the internal expression method.

Mediator

pattern

  • It is a pattern that encapsulates complex interactions between numerous objects and defines them as objects, which can reduce the degree of coupling by reducing the dependency between objects.

Mememto

pattern

  • This is a pattern that provides the ability to return an object to its current state upon subsequent request by objectifying the internal state of an object at a specific point in time. It is mainly used when developing revert functions such as [Ctrl]+[Z].

State

pattern

  • This is a pattern used when the same action needs to be handled differently depending on the state of the object, and is handled by encapsulating the object state and referencing it.

Observer

Pattern πŸ”΄πŸ”΄

  • When the state of one object changes, it is a pattern that transmits the changed state to other objects inherited from the object.
  • It has a one-to-many relationship and is mainly used when events need to be created, published, and received between distributed systems.

Strategy

pattern

  • This is a pattern that defines algorithms of the same series to be individually encapsulated and interchangeable, allowing clients to independently select and use the desired algorithm, and changing the algorithm without affecting the client.

Template Method

pattern

  • It is a structural pattern that defines the skeleton in the upper class and specifies detailed processing in the lower class. It reduces the amount of code and makes maintenance easier by grouping similar subclasses and defining common content in the upper class.

Visitor

pattern

  • This is a pattern that separates the processing function from the data structure of each class and configures it into a separate class. The separated processing function is performed by visiting each class.

Linux commands####

  • Commands related to ownership
chown            // νŒŒμΌμ΄λ‚˜ λ””λ ‰ν„°λ¦¬μ˜ μ‚¬μš©μž μ†Œμœ κΆŒκ³Ό κ·Έλ£Ή μ†Œμœ κΆŒμ„ λ³€κ²½ν•˜λŠ” λͺ…λ Ήμ–΄
chgrp            // νŒŒμΌμ΄λ‚˜ λ””λ ‰ν„°λ¦¬μ˜ κ·Έλ£Ή μ†Œμœ κΆŒμ„ λ³€κ²½ν•˜λŠ” λͺ…λ Ήμ–΄

chgrp -R kait data/

: The process of changing the group ownership of all files and directories within a directory, including subdirectories of the data directory, to kait.

  • Permission-related commands
// ν—ˆκ°€κΆŒμ€ 읽기, μ“°κΈ°, μ‹€ν–‰μœΌλ‘œ ꡬ뢄
chmod            // νŒŒμΌμ΄λ‚˜ λ””λ ‰ν„°λ¦¬μ˜ ν—ˆκ°€κΆŒμ„ λ³€κ²½ν•˜λŠ” λͺ…λ Ήμ–΄
umask            // μƒˆλ‘œ μƒμ„±λ˜λŠ” νŒŒμΌμ΄λ‚˜ λ””λ ‰ν„°λ¦¬μ˜ κΈ°λ³Έ ν—ˆκ°€κΆŒμ„ μ§€μ •ν•˜λŠ” λͺ…λ Ήμ–΄
chmod 751 a.txt πŸ”΄
// μ‚¬μš©μžμ— λŒ€ν•œ 읽기(4), μ“°κΈ°(2), μ‹€ν–‰(1) κΆŒν•œ
// 그룹에 λŒ€ν•œ 읽기(4), μ‹€ν–‰(1) κΆŒν•œ
// κ·Έ 외에 λŒ€ν•œ μ‹€ν–‰(1) κΆŒν•œ

Refactoring

Refactoring is a technique to improve the maintainability of software by simplifying the internal structure and relationships of a software module without modifying its external functions. Purpose of Refactoring πŸ”΄ Simplification of complex code, improved maintainability through source readability, improved productivity, improved quality, etc.

Relationship interpretationπŸ”΄

  • Calculation formulas are used when defining desired information as a way to express operations on relational data.
  • It is a non-procedural language that describes the desired information and how to derive that information.
  • It is based on the predicate calculus of mathematics, and was created by codd, the proponent of the relational data model, specially proposing it for relational databases based on a foundation close to mathematics.

νŠœλΈ” 관계해석

and

도메인 관계해석

There is.

Relational algebra

Relational algebra is a procedural language used to efficiently determine how to process data, while relational analysis is used to more simply define what data is needed.

operator symbol Description
SELECT Οƒ Return a tuple that satisfies a condition in relation R
PROJECT Ο€ πŸ”΄πŸ”΄ Returns a tuple consisting of only the values ​​of the properties given in relation R
JOIN ▷◁ πŸ”΄ Returns a tuple created by concatenating tuples of R and S using common properties
DIVISION Γ· πŸ”΄ Return tuples in R associated with all tuples in relation S
operator symbol operator
------------------------- ---- --------------------------
UNION (union) βˆͺ πŸ”΄ OR
INTERSECTION ∩ AND
DIFFERENCE (difference) - πŸ”΄ NOT
CARTESIAN PRODUCT (Cross Product) X πŸ”΄ FOR ALL (uniform quantifier) ​​
THERE EXISTS
  • PROJECT is an operation that creates a new relation by extracting only the attribute values presented in the attribute list from a given relation.
// κ΄€κ³„λŒ€μˆ˜μ‹
Ο€ ttl (EMPLOYEE)
  • Print columns of ttl attribute from EMPLOYEE table β†’ Vertical subset

Identifier notation

  • camel notation

inputFunction

  • Pascal notation

InputFunction

  • snake notation

input_function

  • Hungarian notation

nScore

πŸ”΄

  • A notation for attaching a data type to an identifier
  • When displaying identifiers, int is

n

, char is

c

, the string is

s

Attach

NAT(Network Address Transformation)πŸ”΄

Usually used by multiple hosts in a private network to access the Internet using one public IP address.

  • Static NAT
  • Configuration where private IP address and public IP address are connected 1:1
  • Dynamic NAT
  • Configuration where private IP and public IP addresses are connected in N:1 or N:M
  • A method of connecting to the Internet by dynamically assigning a public IP address table upon request from a device with a private IP

HadoopπŸ”΄

It is a distributed computing platform based on open source, a Java software framework developed to form a large virtualized storage with general PC-class computers and process huge data sets stored therein in parallel, a technology applied to Google, Yahoo, etc. Distributed computing platform based on open source with big data technology

  • Hadoop Distributed File System (HDFS)
  • Hadoop distributed file system that stores large files on distributed servers and allows the stored data to be processed quickly
  • Map Reduce
  • A software framework purpose-built for processing or generating large data sets in distributed parallel computing.
  • Organize all data into key-value pairs, classify data

Server access control type

  • Discretionary Access Control (DAC) πŸ”΄
  • Control access to the system by user/group

μ‹ λΆ„

How to limit based on

  • Users using DAC are granted permission to resources by modifying the ACL (Access Control List) related to the resource.
  • Mandatory Access Control (MAC)
  • of system information

ν—ˆμš©λ“±κΈ‰

A method of restricting access to the system based on the access permissions the user has.

  • Role Based Access Control (RBAC)
  • The central administrator controls the interrelationship between users and the system and takes responsibility for

μ—­ν• 

How to restrict access to resources based on

️RAID(Redundant Array of Independent Disks)

  • Technology that recognizes multiple physical hard disks as one logical disk
  • Mainly used in servers containing important data, a technology that stores the same data in different locations on multiple hard disks
  • Hardware RAID, software RAID
  • Methods for saving data vary depending on the level
  • When a disk array is configured with multiple hard disks and the data blocks that make up a file are distributed and stored on different disks, the disk speed is greatly improved because the blocks can be read or written from multiple disks simultaneously. This technology is called RAID. RAID level
  • RAID 0:

μŠ€νŠΈλΌμ΄ν•‘

A technology that divides and stores data into multiple logically consecutive physical disk drives πŸ”΄

  • RAID configuration method in which data recovery is impossible if any one of the configured disks fails
  • Farthest from dealing with disk errors.
  • RAID 1: Two or more disks

미러링

Technology for making copies, using them as one

  • RAID 0+1: At least 4 disks are first grouped into 2 disks as RAID 0, and then combined into RAID 1.
  • RAID 2: for data error detection

ν•΄λ°μ½”λ“œ

, which is a technology installed by default on recent disks and is rarely used.

  • RAID 3/4: One disk

νŒ¨λ¦¬ν‹°

Used for information and storing data evenly distributed across the remaining disks

  • Parity: A bit added to check whether an error occurred during the information transmission process.
  • Similar to RAID 0, but writes have some performance degradation due to parity processing
  • Unlike RAID 3, RAID 4 does not store all blocks equally.

블둝 λ‹¨μœ„ λΆ„μ‚° μ €μž₯

  • If a bottleneck occurs, there is a risk of performance degradation.
  • RAID 5: Use three or more disks as one disk,

각각의 λ””μŠ€ν¬μ— νŒ¨λ¦¬ν‹° 정보

How to have

  • Since a separate parity disk is not used, bottlenecks do not occur.
  • RAID 6: One parity distributed across two disks
  • Dual storage of parity allows recovery even if two disks fail
  • It may be slower, but stability increases. HTTP πŸ”΄
  • On the Internet, it refers to a communication protocol used to transmit documents/multimedia between a web server and the user's Internet browser.
  • It is a communication protocol used to exchange hypertext documents on the Internet. Developed in accordance with this protocol, information can now be exchanged. Hypertext πŸ”΄

Hypertext

A connection between other documents is called a link.

  • It is a method of providing information that connects text, graphics, audio, and video together like a web of associations, allowing users to search for related information regardless of the order in which it is presented.
  • In other words, it refers to a method in which users can easily access the information they want by clicking on it regardless of the order of links on a page. HTML πŸ”΄
  • It is the dominant markup language developed for displaying web pages. It also provides a way to create structured documents with links, citations, and other items as well as indicating structural meaning for text such as titles, paragraphs, lists, etc.

Glossary of terms

Terminology Description
Linked Open Data (LOD) πŸ”΄ Data that aims for an interconnected web by individually identifying data existing on the web and assigning link information to each URI Data that is open so that anyone can freely use and reproduce the data by utilizing web standards such as HTTP, RDF, and URI
Constructor πŸ”΄ A special kind of method that is automatically called when an object of that class is created
Blockchain πŸ”΄ A technology to prevent data forgery and falsification based on distributed computing technology, which stores data to be managed in a distributed data storage environment called a 'block' formed by connecting small data based on the P2P method, so that no one can arbitrarily modify it and anyone can view the results of the change
Locking πŸ”΄ Serialization technique that ensures sequential progress of transactions to maintain DB consistency and integrity in a multi-transaction environment accessing the same resource
ISMS (Information Security Management System), information security management system πŸ”΄ A system in which government-designated certification agencies and review agencies review whether the information protection management system established/managed/operated by a company to protect key information assets meets the certification standards and grant certification
Social engineering πŸ”΄ From a security perspective, it is a technique to obtain secret information by deceiving people based on basic trust between people rather than a technical method.

μŠ€ν”Όμ–΄ ν”Όμ‹±(Spear Phishing)

: As a technique of social engineering, a specific target is selected and then emails disguised as regular emails are continuously sent to the target and the user's personal information is stolen by inducing them to click on the link in the body of the email or the attached file. | | Dark Data πŸ”΄ | Similar to Big Data, it is unstructured and refers to β€˜dead’ data that is no longer used. In general, it is not data that is used for analysis or special purposes after information is collected and stored. It only occupies storage space, and for this reason, it can pose a serious security risk | | Typosquatting πŸ”΄ | It is also called URL hijacking, which involves pre-registering similar famous domains to take advantage of netizens' mistakes in entering addresses or missing spellings when accessing a site. | | APT (Advanced Persistent Treatments), intelligent persistent risk | A type of attack that uses various IT technologies and methods to systematically infiltrate a specific company or organization's network, establish a base for operations, wait for the right moment, disable security, collect information, and then steal it to the outside world | | watering hole πŸ”΄ | This attack is mainly used in APT attacks. It infects legitimate websites that the target may visit in advance, then stays in hiding and installs malware on the target's computer when the target visits. | | Trustzone πŸ”΄ | A hardware-based security technology developed by ARM that protects important information by creating an independent security zone within the processor. A hardware-based security technology that protects important information by creating an independent security zone within the processor. |

Comments

No comments yet. Be the first!

    164 posts in ν…Œν¬

    1–5 / 164