View all information processing engineer practical content and past exam materials at once
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
- Functional requirements Requirements for functions and services provided by the system
- 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
- 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
Use case diagram package diagram ------------- -----------
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
- Constraint design β referential integrity constraints Conditions for ensuring consistency of references between relations
- Limit (operation rejection), chain (batch deletion), null value (Null processing)
- 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
- Cluster It is a unit that gathers several elements of the target range (population) and is used when the index has a wide distribution.
- 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
- Add column
ALTER TABLE ν
μ΄λΈλͺ
ADD 컬λΌλͺ
λ°μ΄ν°νμ
[μ μ½μ‘°κ±΄]; π΄
- Edit column
ALTER TABLE ν
μ΄λΈλͺ
MODIFY 컬λΌλͺ
λ°μ΄ν°νμ
[μ μ½μ‘°κ±΄]; π΄
- 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
- 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 2
6 - 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 ν ν¬
- 2233D Gaussian Splatting vs Unreal Engine: Two Ways to Build a 3D World β and Where Each One Ships
- 222LLMs Inside Unreal Engine: The New Skills Game Developers Need in 2026
- 220Living With Claude Fable 5: How the Most Capable Model Changes the Way You Actually Work
- 219Luma's Bet: From Video Generator to a Single Model That Thinks in Pixels
- 215The Best AI Video Models in 2026: Types, Differences, and Where This Is All Going