728x90
300x250

[회계(Account)] 기업 운영하기 - 실무(관리회계) - 입문 [1부]


오랜만에 글을 연재하게 되었다.

이번에 소개할 내용은 많은 사람들이 가장 어려워하는 실무 중 하나로 기업이 어떻게 운영되는지 시스템에 대해서 이론을 토대로 소개하려고 한다.


It has been a long time since I have been writing serials.

This time, I am going to introduce a system based on the theory of how a company operates as one of the most difficult practices for many people.




1. 관리회계 (원장부 작성) / Management accounting


장부 작성은 크게 몇 가지 항목을 토대로 작성해보면 된다.

결코 어려운 건 아니다.


몇 가지 윤곽만 소개해드릴까 한다.


Book creation can be largely based on several items.

It is by no means difficult.

I would like to introduce only a few outlines.



그림 1. 기업 현황 작성하기


기업의 살림은 크게 가정 살림처럼 꾸려진다고 보면 된다.

아버지와 어머니가 월급을 벌어오시면, 그 돈으로 집도 사고, 책도 사고, 학용품도 사고 그렇게 운영된다.

경영학이라는 것은 관리의 측면과 운영의 측면 두 가지가 있다.


지금 여기에서 소개하는 경영학은 운영과 관리 두 가지 측면을 큰 틀로 해서 소개하는 것이다.


It can be considered that corporate housing is largely organized like family housing.

When father and mother earn a salary, the money is used to buy houses, books, and school supplies.

There are two aspects of business administration: management and management.

The business administration introduced here is to introduce two aspects of operation and management as a large frame.



그림 2. 기업 현황 요약 (회계)


순수한 IFRS 회계 방식은 아니다.

건물 등 남을 수 있는 자산은 산출하지 않았다.


감가상각비 등으로 처분 등을 해야 하는 게 이론적으로는 맞긴 하는데 실질적으로는 팔리지도 않으면서 시세는 있는 늦게 팔리긴 하겠지만, 언젠가는 팔린다는 전제하에 재산으로 잡아도 크게 무방하다는 것이다.


It is not pure IFRS accounting.

We have not calculated any remaining assets such as buildings.


It is theoretically correct to have to dispose of it for depreciation expenses, etc., but it is not practically sold, but the market price may be sold late, but it is very safe to hold it as a property under the premise that it will be sold someday.



그림 3. 회사현황(2)



그림 4. 회사현황(3)



그림 5. 회사현황(4)



그림 6. 회사현황(5)


기업은 이러한 재무적인 시나리오를 토대로 운영된다고 보면 될 것 같다.


It seems that companies operate based on these financial scenarios.



2. 관리회계 (원장부 작성) - 인건비 / Management accounting - Labor costs


관리회계 세부항목 중 하나로 인건비 산출에 대한 것이다.

세부 항목 산출에 있어서 어려움이 많은 게 사실이다.

흔히 관리의 측면에서 살펴보면 이런 형태로 추출될 수 있을 것으로 보인다..


One of the management accounting details is about labor cost calculation.

It is true that there are many difficulties in calculating detailed items.

Often, from a management standpoint, it seems that it can be extracted in this form.



그림 7. 관리회계 - 인건비 산정하기




3. 관리회계 (원장부 작성) - 체재비 / Management accounting (preparing the ledger) - staying expenses


체재비를 인건비로 포함해야 할지, 분리해야 할지 논란이 많은 부분이다.

외부에 나가서 업무를 보는 것으로 봐야 하므로 인건비로 보면 안 된다는 의견이 있고, 출장의 성격이 가깝다.

상여금으로 정산해서 체재비를 인건비로 해서 세무처리를 하는 회사도 있을 수는 있다.

근로자도 충분히 고민을 해봐야 하는 문제이다. 근로자 관점으로 보면, 종합소득세 세금 비율이 높아질 수 있다는 것이다.

There is a lot of controversy over whether the cost of staying should be included as labor costs or should be separated.

There is an opinion that it should not be viewed in terms of labor costs because it should be viewed as going outside to see work, and the nature of business trips is close.

There may be companies that settle as bonuses and handle tax treatment using staying expenses as labor expenses.

It is a problem that workers should also consider enough. From a worker's point of view, the global income tax rate could be higher.



그림 8. 관리회계 - 체재비 부문




4. 관리회계 (원장부 작성) - 초기 회사 창업 물품구매 / Management accounting (preparation of ledger)-initial purchase of company startup items


몇 가지 기자재를 구비하면, 회사의 윤곽은 설립할 수 있을 것으로 보인다.

초기 투자하면, 5~7년 정도는 거뜬히 지탱할 수 있다.


With a few equipments in place, it seems that the company profile can be established.

With initial investment, it can easily last 5 to 7 years.


그림 9. 관리회계 - 회사 물품 구매방법


몇 가지 기자재만 자금이 있어서 구매한다면, 여러분도 충분히 회사를 만들 수 있다.

If you only have the money to buy a few equipment, you can build a company.


초기 투자 금액 대비로는 매우 가성비가 높은 회사이다.

It is a very cost-effective company compared to the initial investment amount.


물론 예를 들면, 그렇다는 이야기이다.

Of course, for example, yes.



[첨부(Attachments)]


201222_회사운영하기(일반).pptx

201223_회사운영하기_Excel(일반).zip


(GNU/GPL v3 Licenses)를 적용 받는다.



* [맺음글(Conclusion)]


2부에서는 차량, 금융이자 취득 등에 대해서 소개하도록 하겠다.


[회계(Account)] 기업 운영하기 - 실무(관리회계) - 매출, 비용 [2부], https://yyman.tistory.com/1476, 2020-12-22.
[회계(Account)] 근로자 관점에서 급여 산출하기, https://yyman.tistory.com/1475, 2020-12-23.



* 참고자료(References)


1. Profit and Loss Account under the IFRs | Blog Antonio Alcocer. ,http://www.antonioalcocer.com/the-income-statement-pl-interntional-financial-reporting-standards/, Accessed by 2020-12-22, Last Modified 2020-12-22.

반응형
728x90
300x250

[JSP] 27. Java 스타일의 트랜젝션 구현하기(은행 계좌)


트랜젝션 처리에 대해서 소개하려고 한다.

이 주제는 사실 몇 가지 키워드가 있다.


ACID(원자성, 일관성, 고립성, 지속성)을 만족해야 한다.


기본적인 DML만 조작하다가 갑자기 접근하게 되면, 이 내용은 조금 난해할 수도 있다.


1. 자료처리에 있어서 4가지를 모두 충족해야 한다.


원자성(Atomicity)
트랜젝션은 분해가 불가능한 최소의 단위인 하나의 원자처럼 동작한다는 의미. 

트랜젝션 내의 모든 연산들은 반드시 한꺼번에 완전하게 전체가 정상적으로 수행이 완료되거나 아니면 연산자체를 수행하지 않음.


일관성(Consistency)
트랜잭션 작업이 시작되지 전에 데이터베이스 상태가 일관된 상태였다면 트랜잭션 작업이 종료된 후에도 일관성 있는 데이터 베이스 상태를 유지해아한다.

예를 들어서 게시판에 글을 쓰는데 제목의 글자 제한이 255자라고 하자.

트랜잭션이 일어나면 이러한 조건을 만족해야하는 것이다. 만약 이를 위반하는 트랜잭션이 있다면 롤백 처리해야 한다.

(문제가 있는 작업이라면, 입력자체를 시키면 안 되는 것이다.)


고립성(Isolation)
트랜잭션 작업 수행 중에는 다른 트랜잭션에 영향을 주어서도 안 되고, 다른 트랜잭션들에 의해 간섭을 받아서도 안 된다는 것을 의미. 


다른 트랜잭션의 영향을 받게 되면 영향을 주는 트랜잭션에 의해 자신의 동작이 달라 질 수 있기 때문이다.

트랜젝션 자신은 고립된 상태에서 수행되어야 한다는 것을 의미. 즉 다수의 트랜잭션이 동시에 수행중인 상황에서 하나의 트랜잭션이 완료될 때까지는 현재 실행 중인 트랜잭션의 중간 수행결과를 다른 트랜잭션에서 보거나 참조 할 수 없다.


지속성(Durablility)
일련의 데이터 조작(트렌젝션 조작)을 완료 하고 완료 통지를 사용자가 받는 시점에서 그 조작이 영구적이 되어 그 결과를 잃지 않는 것을 나타낸다. 시스템이 정상일 때 뿐 아니라 데이터베이스나 OS의 이상 종료, 즉 시스템 장애도 견딜 수 있다는 것을 말한다.




2. "은행 계좌"라는 주제


은행 계좌 구현의 문제를 놓고 보면, 돈을 이체시켰는데 시스템 장애로 돈이 빠져나가고 이체가 되지 않아버리면 입금자는 돈을 잃어버리게 된다.

물론 트랜젝션만 가지고 은행 시스템이 구축된 것은 아닐 것이다.


이런 경우를 컴퓨터 프로그래밍으로 표현해보려고 한다.




3. JSP/Servlet으로 구현해도 되고, JUnit 태스트 도구로 접근해도 상관없다.


이 프로젝트를 자습하는 데 있어서, 자유롭게 원하는 형식에서 태스트해도 무방하다.

자바 기반이면, 스프링프레임워크에서도 가능하고, Dynamic Web Project를 생성해도 무방하고 Java Project로 따라해도 괜찮다는 이야기를 하고 소개하겠다.


[태스트 환경]

IDE: Eclipse 2020-06

DB: Oracle 11g XE(Express Edition)
- Maven Projects(Spring 포함)

- JUnit 5



4. 데이터베이스 설계


-- Transaction 실습 DB (은행 - Account)
-- Oracle 11 - 자동번호 생성 테이블 정의
-- Table 생성 (FOODMENU_TBL)
-- NEW.ID (Table의 id를 가리킴)

CREATE TABLE account_tbl
(
    idx NUMBER PRIMARY KEY,
    name VARCHAR2(30),
    balance NUMBER,
    regidate TIMESTAMP
);


-- Sequence 정의
CREATE SEQUENCE account_sequence
START WITH 1
INCREMENT BY 1;


-- Trigger 생성
-- BEFORE INSERT on '테이블명'
CREATE OR REPLACE TRIGGER account_trigger
BEFORE INSERT
    ON account_tbl
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT account_sequence.nextval INTO :NEW.IDX FROM dual;
END;


트리거 작성과 스퀀스 번호 생성에 대해서도 적혀져 있으니깐, 잘 사용해도 무방하다.


파일명: account_tbl.sql


[첨부(Attachments)]

AccountTbl.zip




5. 프로젝트 구성도


아래 그림은 프로젝트 구성도이다.

HomeController.java 등은 생략해도 된다.



그림 1, 그림 2. 프로젝트 구성도



6. AccountVO.java(com.website.example.vo)


package com.website.example.vo;

import java.sql.Timestamp;

public class AccountVO {

 private int idx;
 private String name;
 private int balance;
 private Timestamp regidate;
 
 public int getIdx() {
      return idx;
 }
 
 public void setIdx(int idx) {
     this.idx = idx;
 }
 
 public String getName() {
     return name;
 }
 
 public void setName(String name) {
     this.name = name;
 }
 
 public int getBalance() {
     return balance;
 }

 public void setBalance(int balance) {
     this.balance = balance;
 }

 public Timestamp getRegidate() {
     return regidate;
 }
 
 public void setRegidate(Timestamp regidate) {
     this.regidate = regidate;
 }
 
}


파일명: AccountVO.java


[첨부(Attachments)]

AccountVO.zip




6-1. db.properties (/src/main/resources)


MYSQL_DB_URL=jdbc:mysql://localhost:3306/dbanme?useUnicode=true&characterEncoding=utf8
MYSQL_DB_USERNAME=
MYSQL_DB_PASSWORD=
ORACLE_DB_URL=jdbc:oracle:thin:@127.0.0.1:1521:xe
ORACLE_DB_USERNAME=HR
ORACLE_DB_PASSWORD=1234


파일명: db.properties


[첨부(Attachments)]

db.zip




7. JDBCUtil.java(com.website.example.common)


이 프로젝트에서는 close()만 사용하였다. 예비 태스트 용도로 자바 표준의 SQL 방식도 두고 있다.


package com.website.example.common;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.sql.DataSource;


public class JDBCUtil {
 
      private static final String driverName = "oracle.jdbc.driver.OracleDriver";
      private static final String jdbcUrl = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
      private static final String userId = "{사용자 계정명}";
      private static final String userPwd = "{비밀번호}";
 
 public static Connection getConnection() {


  try {
   
       Class.forName(driverName); 
        return DriverManager.getConnection(jdbcUrl, userId, userPwd);
   
  } catch (Exception e) {
        e.printStackTrace();
  }
  
  return null;
  
 }


 public static void close(PreparedStatement stmt, Connection conn) {
  
  if (stmt != null) {
   
   try {
    
    if (!stmt.isClosed())
     
       stmt.close();
    
   } catch (Exception e) {
    
        e.printStackTrace();
    
   } finally {
    
        stmt = null;
    
   }
   
  } // end of if
  
  if (conn != null) {
   
   try {
    
    if (!conn.isClosed())
         conn.close();
    
   } catch (Exception e) {
    
    e.printStackTrace();
    
   } finally {
    
    conn = null;
    
   }
   
  } // end of if
  
 }

 public static void close(ResultSet rs, PreparedStatement stmt, Connection conn) {
  
  if (rs != null) {
   
   try {
    
    if (!rs.isClosed())
     rs.close();
    
   } catch (Exception e) {
    
    e.printStackTrace();
    
   } finally {
    
    rs = null;
    
   }
   
  } // end of if
  
  if (stmt != null) {
   
   try {
    
    if (!stmt.isClosed())
     stmt.close();
    
   } catch (Exception e) {
    
    e.printStackTrace();
    
   } finally {
    stmt = null;
   }
   
  } // end of if
  
  if (conn != null) {
   
   try {
    
    if (!conn.isClosed())
     conn.close();
    
   } catch (Exception e) {
    
    e.printStackTrace();
    
   } finally {
    
    conn = null;
    
   }
   
  } // end of if
    
 }

}



파일명: JDBCUtil.java


[첨부(Attachments)]

JDBCUtil.zip

AccountVO.zip




8. MyDataSourceFactory.java(com.website.example.common)


DataSourceFactory이다.



package com.website.example.common;

import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import com.mysql.cj.jdbc.MysqlDataSource;

import oracle.jdbc.pool.OracleDataSource;

public class MyDataSourceFactory {
 
 private InputStream is = null;
 
 public MyDataSourceFactory()  {
  
        String resource = "db.properties";
        is = getClass().getClassLoader().getResourceAsStream(resource);
 }
 
 public DataSource getMySQLDataSource() {
  
        Properties props = new Properties();
       
        MysqlDataSource mysqlDS = null;
       
        try {
         
            props.load(is);
            mysqlDS = new MysqlDataSource();
            mysqlDS.setURL(props.getProperty("MYSQL_DB_URL"));
            mysqlDS.setUser(props.getProperty("MYSQL_DB_USERNAME"));
            mysqlDS.setPassword(props.getProperty("MYSQL_DB_PASSWORD"));
           
        } catch (IOException e) {
            e.printStackTrace();
        }
       
        return mysqlDS;
       
    }
    
    public DataSource getOracleDataSource(){
     
        Properties props = new Properties();
        OracleDataSource oracleDS = null;
       
        try {
         
            props.load(is);
            oracleDS = new OracleDataSource();
            oracleDS.setURL(props.getProperty("ORACLE_DB_URL"));
            oracleDS.setUser(props.getProperty("ORACLE_DB_USERNAME"));
            oracleDS.setPassword(props.getProperty("ORACLE_DB_PASSWORD"));
           
        } catch (IOException e) {
         
            e.printStackTrace();
           
        } catch (SQLException e) {
         
            e.printStackTrace();
           
        }
       
        return oracleDS;
       
    }

}


파일명: MyDataSourceFactory.java


[첨부(Attachments)]

MyDataSourceFactory.zip


JDBCUtil.zip

AccountVO.zip



9. AccountDAO.java (com.website.example.dao)


AccountDAO에 대한 명세이다. DAO는 Data Access Object의 약자이다.


package com.website.example.dao;

import java.sql.SQLException;

import com.website.example.vo.AccountVO;

public interface AccountDAO {

 // 계좌 생성
 public void create(AccountVO vo) throws SQLException;
 
 // 잔액 조회
 public int getBalance(String name) throws SQLException;
 
 // 플러스 계좌
 public void plus(String name, int money) throws SQLException;
 
 // 마이너스 계좌
 public void minus(String name, int money) throws SQLException;
 
 // 거래
 public void transfer(String sender, String receiver, int money) throws SQLException;
 
}


파일명: AccountDAO.java


[첨부(Attachments)]

AccountDAO.zip


JDBCUtil.zip

AccountVO.zip



10. AccountDAOImpl.java (com.website.example.dao)


AccountDAO에 대한 명세이다. DAO는 Data Access Object의 약자이다.


package com.website.example.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.website.example.common.JDBCUtil;
import com.website.example.vo.AccountVO;

// Transaction - 자바
public class AccountDAOImpl implements AccountDAO {


 private final String CREATE_ACCOUNT = "insert into account_tbl" +
        "(name, balance, regidate) values(?, ?, ?)";
 
 private final String SELECT_BALANCE = "select * from account_tbl where name = ?";
 
 private final String UPDATE_MINUS = "update account_tbl set balance = (select balance from account_tbl where name = ?) - ? " +
          "where name = ?";
 
 private final String UPDATE_PLUS = "update account_tbl set balance = (select balance from account_tbl where name = ?) + ? " +
            "where name = ?";
 
 private DataSource ds = null;
 
 public AccountDAOImpl(DataSource ds) {
       this.ds = ds;
 }
 
 // 단일 쿼리에서의 트랜젝션 방법
 @Override
 public void create(AccountVO vo) throws SQLException {


       Connection conn = ds.getConnection();
       PreparedStatement pstmt = null;
  
  try {
   conn.setAutoCommit(false); // 트랜젝션 시작
   
   pstmt = conn.prepareStatement(CREATE_ACCOUNT);
   pstmt.setString(1, vo.getName());
   pstmt.setInt(2, vo.getBalance());
   pstmt.setTimestamp(3, vo.getRegidate());
   
   pstmt.executeUpdate();
   
   conn.commit();
   
  }catch(SQLException e) {
   
   conn.rollback();
   e.getMessage();
   
  }finally {
   JDBCUtil.close(pstmt, conn);
  }
  
 }

 @Override
 public int getBalance(String name) throws SQLException {
  
  Connection conn = ds.getConnection();
  PreparedStatement pstmt = null;
  ResultSet rs = null;
  
  int result = 0;
  
  try {
        conn.setAutoCommit(false); // 트랜젝션 시작
        pstmt = conn.prepareStatement(SELECT_BALANCE);
   
   pstmt.setString(1, name);
   
   rs = pstmt.executeQuery();
   
   if ( rs.next() ) {
         result = rs.getInt(3);
   }
   
   conn.commit();
   
  }catch(SQLException e) {
   
   conn.rollback();
   e.getMessage();
   
  }finally {
   JDBCUtil.close(pstmt, conn);
  }
  
  return result;
 }

 @Override
 public void plus(String name, int money) throws SQLException {


      Connection conn = ds.getConnection();
      PreparedStatement pstmt = null;
  
  try {
   
   conn.setAutoCommit(false);
   
   // plus, minus 다 확인 후에 commit처리 해야 함.
   // 그래서 지금 바로 트랜젝션을 구현하면 안 됨
   pstmt = conn.prepareStatement(UPDATE_PLUS);
   pstmt.setString(1, name);
   pstmt.setInt(2, money);
   pstmt.setString(3, name);
   
   pstmt.executeUpdate();
      System.out.println(money);

   conn.commit();
   
  }catch(SQLException e) {
   System.out.println(e.getMessage());
   conn.rollback();
   
  }finally {
   JDBCUtil.close(pstmt, conn);
  }
  
 }

 @Override
 public void minus(String name, int money) throws SQLException {
  

       Connection conn = ds.getConnection();
       PreparedStatement pstmt = null;
  
  try {
   
   conn.setAutoCommit(false);

      // 예외 발생시키기(트랜젝션 의도적 발생)
      if(true){
             throw new SQLException(); // 의도적 예외 발생
       }
        
   // plus, minus 다 확인 후에 commit처리 해야 함.
   // 그래서 지금 바로 트랜젝션을 구현하면 안 됨
   pstmt = conn.prepareStatement(UPDATE_MINUS);
   pstmt.setString(1, name);
   pstmt.setInt(2, money);
   pstmt.setString(3, name);
   
   pstmt.executeUpdate();
   
   conn.commit();
   
  }catch(SQLException e) {
   
        conn.rollback();
        System.out.println(e.getMessage());
    
  }finally {
        JDBCUtil.close(pstmt, conn);
  }
  
  
 }

 @Override
 public void transfer(String sender, String receiver, int money) throws SQLException {

  Connection conn = ds.getConnection();
  PreparedStatement pstmt = null;
  
  try {
   
   conn.setAutoCommit(false);

   /*
      // 예외 발생시키기(트랜젝션 의도적 발생)
      if(true){
       throw new SQLException(); // 의도적 예외 발생
         }
         */
        
   // plus, minus 다 확인 후에 commit처리 해야 함.
   // 그래서 지금 바로 트랜젝션을 구현하면 안 됨
   pstmt = conn.prepareStatement(UPDATE_MINUS);
   
   // 주는 분
   pstmt.setString(1, sender);
   pstmt.setInt(2, money);
   pstmt.setString(3, sender);
   
   pstmt.executeUpdate();
   
   // 받는 분
   pstmt = conn.prepareStatement(UPDATE_PLUS);
   pstmt.setString(1, receiver);
   pstmt.setInt(2, money);
   pstmt.setString(3, receiver);
   
   pstmt.executeUpdate();
   
        conn.commit();
   
  }catch(SQLException e) {
   
        conn.rollback();
        System.out.println(e.getMessage());
   
  }finally {
       JDBCUtil.close(pstmt, conn);
  }
  
 }

}


파일명: AccountDAOImpl.java


[첨부(Attachments)]

AccountDAOImpl.zip



JDBCUtil.zip

AccountVO.zip



11. AccountService.java (com.website.example.service)


AccountService에 대한 명세이다.

서비스에 대한 정의이다. DB를 정의하는 영역은 아니다.

하지만, Spring Framework로 구현할 때, Spring JDBC 등을 적용하여 트랜젝션 동기화 기능을 구현부에 구현하면, Connection을 사용할 수도 있다.

질의문을 정의하는 영역은 아니다.


package com.website.example.service;

import java.sql.SQLException;

import com.website.example.vo.AccountVO;


public interface AccountService {
 
     public void accountCreate(AccountVO vo) throws SQLException;
     public void accountTransfer(String sender, String receiver, int money) throws SQLException;
 
}


파일명: AccountService.java


[첨부(Attachments)]

AccountService.zip



12. AccountServiceImpl.java (com.website.example.service)


AccountServiceImpl.java는 AccountService의 구현부이다.

인터페이스의 역할을 정의해보면, 하나의 통로와 같은 역할을 한다고 볼 수 있다.


package com.website.example.service;

import java.sql.SQLException;

import javax.sql.DataSource;

import com.website.example.dao.AccountDAO;
import com.website.example.dao.AccountDAOImpl;
import com.website.example.vo.AccountVO;

public class AccountServiceImpl implements AccountService {


     private AccountDAO accountDAO;
     private DataSource ds = null;
 
 public AccountServiceImpl(DataSource ds) {
  
        accountDAO = new AccountDAOImpl(ds);
        this.ds = ds;
 }

 @Override
 public void accountCreate(AccountVO vo) throws SQLException {
  
        accountDAO.create(vo);
  
 }
 
    public void accountTransfer(String sender, String receiver, int money) throws SQLException{
       
     int balance = accountDAO.getBalance(sender); // 보내는 사람 잔액 체크
     
        if(balance >= money){ // 보내는 돈이 잔액보다 많으면
 
                   accountDAO.transfer(sender, receiver, money);
         
        } else{
                   System.out.println("돈 없음");
                   //throw new NoMoneyException();
        }
       
    }

 
}


파일명: AccountServiceImpl.java


[첨부(Attachments)]

AccountServiceImpl.zip




13. TestMain.java (com.website.example.unit)


JUnit의 태스트 영역이다.


package com.website.example.unit;

import static org.junit.jupiter.api.Assertions.*;

import java.sql.SQLException;

import javax.sql.DataSource;

import org.junit.jupiter.api.Test;

import com.website.example.common.MyDataSourceFactory;
import com.website.example.service.AccountService;
import com.website.example.service.AccountServiceImpl;
import com.website.example.vo.AccountVO;

class TestMain {


       @Test
       void test() throws SQLException {
   
                 DataSource ds = new MyDataSourceFactory().getOracleDataSource();
                 AccountService service = new AccountServiceImpl(ds);
  
  // 1. 계정 생성 (계정이 없는 경우라면, 주석 풀고 작업해보면 됨.
  /*
  AccountVO vo = new AccountVO();
  vo.setName("홍길동");
  vo.setBalance(10000);
  vo.setRegidate(Timestamp.valueOf("2020-10-01 10:30:00"));
  
  service.accountCreate(vo);

  vo.setName("홍길자");
  vo.setBalance(0);
  vo.setRegidate(Timestamp.valueOf("2020-10-04 23:20:00"));

  service.accountCreate(vo);
  */
  
  // 2. 금전 거래
  service.accountTransfer("홍길동", "홍길자", 500);
  
 }

}


파일명: TestMain.java


[첨부(Attachments)]

TestMain.zip




14. 태스트 해보기 - 결과


코드로 구현하여 태스트를 해봐도 좋을 듯 싶다.



그림 3. 태스트 하기



그림 4. 태스트 하기


트랜젝션을 한번 해보면, 무슨 일이 일어나는지 구경을 조금해보면 좋을 듯 싶다.




15. 맺음글(Conclusion)


setAutoCommit(), conn.commit(), conn.rollback() 사소해보이는 이 코드가 반응하는 것을 관찰해보면, 트랜젝션이 중요하다는 사실을 알 수 있다.



* 참고자료(References)


1. JDBC 트랜젝션 동기화, https://joont.tistory.com/158, Accessed by 2020-10-09, Last Modified 2016-07-11.

-> 추천(50점): 정말 잘 설명해주고 있다.

2. Data Access - Transaction, https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/data-access.html#transaction, Accessed by 2020-10-09, Last Modified 2020-09-15.


3. 

반응형
728x90
300x250

[UI(User Interface), C++] 은행 통장명세서 및 계좌 구현, 사용자 인터페이스 설계

 

                                             은행 통장명세서 및 계좌 구현, 사용자 인터페이스 설계

                     Bank account details and account implementation, user interface design

 

                                                                                                  도도  {#i}

                                                                                              ( dodo at 127.0.0.1 )

 

사용자 인터페이스 설계를 소개하려고 한다. 일상생활에서 쉽게 살펴볼 수 있는 주제로 글을 담았다.

은행 통장명세서 및 계좌 구현 그리고 사용자 인터페이스 설계 등을 효율적으로 하는 방법과 더불어 몇 가지 가설을 바탕으로 공부를 진행하였다.

공부의 내용에는 크게 몇 가지 사항이 있는데 하나는 사회과학 관점에서의 가설을 바탕으로 한 몇 가지 공부를 수행하였다.

가설을 실질적인 사용자 체감 관점 기준으로 설계하려고 하였으며 학생, 직장인, 사업자 등의 체감적인 인터페이스를 실증적으로 다뤄보려고 하였다.

 

참고할 점: 정부 조직 개편 등이 있다면, 부처, 관계기관 등의 명칭이 달라질 수도 있음. 링크된 URL이 달라지거나 등의 현상이 발생할 수도 있음.
-> 시스템에 의한 예기치 못한 경우도 있어요.

 

글을 읽기 전에 도도는 연구원이냐? 아니에요.

 


1. 초록(Abstract)

 

사용자 인터페이스 설계에 앞서, 통장과 체크카드를 기준으로 작성하였다. 체크카드를 사용하면, 실시간으로 통장을 거쳐 현금이 인출된다.

이러한 기본적인 정보 등을 바탕으로 은행 통장명세서 및 계좌 구현, 사용자 인터페이스 설계에 대해서 공부하였다.

사용자 인터페이스에 대해서는 크게 통장을 바탕으로 하여 구조 등을 설계하였으며, 이를 바탕으로 통장 명세서를 도출하여 가설을 몇 가지 두고 실증에 대해서 논하게 되었다.

 


1-1. 금융관련 법규사항

 

http://www.law.go.kr/법령/금융실명거래및비밀보장에관한법률


도도의 글에서의 해당 공부는 이의 사실에 해당사항이 없다.

 

관련 법률에 관한 사항은 관계기관을 통해서 문의해보면 도움이 될 것으로 보인다.

 

 

이 공부와 관련된 개인정보보호법과 관련된 사항이다.
http://www.law.go.kr/법령/개인정보보호법/(14839,20170726)

 

도도의 글에서의 공부는 이의 사항에 해당이 없어요. 아래의 해명 글을 더보기를 통해서 살펴볼 수 있다.

 

 

관련 법률에 관한 사항은 관계기관을 통해서 문의해보면 도움이 될 것 같아요.

 

 


2. 사용자 인터페이스 설계(User interface design)

 

사용자 인터페이스 설계는 아래와 같이 수행할 수 있다.

사용자 인터페이스 설계를 Top-bottom Viewer Model 방식으로 하여 설계하였다.

 

그림 2-1. Top/Bottom Viewer Model - Adopted 도도(Dodo)

 

그림 2-1은 도도가 기존의 Top Bottom 방식 모델을 살짝 변형하여 Top/Bottom Viewer Model을 고안하였다.

사용 방법은 매우 간단하다. 사용자 시점과 개발자 시점 중간 사이를 설계자 시점이라고 봤다.

도도가 공부를 수행한 방법은 그림 2-1의 모델로 진행하였다.

 

개발자 표현에 세미로직(Semi-Logic)이라고 정의했는데, 개발자가 로직(Logic)을 설계하는 경우가 있음.
설계자는 인터페이스 범위를 벗어나지 못하지만, 개발자는 시야가 훨씬 크다.
그림 2-1을 보고 오해하지 않았으면 좋겠음.

 


3. 은행 - 통장 구현(Bank - Bankbook Implementation)

 

콘솔로 이러한 화면을 구현해보는 것이다. 굉장히 많은 시간이 소요될 것으로 보인다.

 

 

그림 3-1. 은행 통장 표지 설계하기 - 도도(Dodo)

 

 

그림 3-2. C++에서 구현했을 때 레이아웃의 예 - 도도(Dodo)

 

그림 3-2는 C++에서 수작업으로 레이아웃을 구현했을 때 이러한 레이아웃 구조를 가질 수 밖에 없을 것 같다.

 

글자 정렬 관련 함수: setw, seft, setprecision 

#include <iomanip>

main(){
     setprecision(3)
     cout.setf(ios::left);
     cout.setf(ios::right);
     setw(10)

}

 

 

co.kr이긴 한데, 법령에 의해서 설치가 된 특이한 은행이 있다.

1. 국가계열의 은행
우체국 은행과 IBK기업은행(이하 "중소기업은행")이다. IBK계열사 등에 대해서는 무관하다.
법령에 의해서 운영되는 은행은 "우체국예금", "KDB산업은행", "IBK기업은행"이다.
법인 형태로 운영되는 곳은 "KDB산업은행", "IBK기업은행"이 있다.

"기술보증기금, 한국주택금융공사"도 은행에 해당된다.

https://www.epostbank.go.kr/
https://www.ibk.co.kr/common/navigation.ibk?linkUrl=/intro/announce/history_01.jsp&pageId=IR01030100
https://www.kdb.co.kr/ih/wcms.do

http://www.law.go.kr/법령/중소기업은행법
http://www.law.go.kr/법령/우체국예금ㆍ보험에관한법률
http://www.law.go.kr/법령/한국산업은행법
http://www.law.go.kr/법령/기술보증기금법
http://www.law.go.kr/법령/한국주택금융공사법

2. 은행법에 의해 설치 또는 운영을 하는 은행(사업자로 운영하는 형태)

은행법에 적용받는 은행의 예를 들면, 다음과 같다.


[국내에 있는 은행]
1. DGB대구은행, BNK부산은행, 광주은행, 제주은행(신한은행), 전북은행(광주은행), BNK경남은행 (온/오프라인 점포 - 특정 지역에 위치함.)
2. KED하나은행, KB국민은행, Citibank, 한국수출입은행, 수협은행, SC제일은행, NH농협은행 (온/오프라인 점포)

3. 카카오뱅크 (온라인 점포)

http://www.law.go.kr/법령/은행법

 

3. 증권(Securities)

1. 삼성증권, 미래에셋증권, KB증권, 대신증권, NH투자증권, IBK투자증권 등의 많은 회사가 있다.


 

시중 은행이 많이 있으니 금융결제원 등을 참고하면 도움이 될 것이다.
은행 수수료에 관해서는 소개하지 않았다. 각 은행별로 정책이 다를 수 있어요.

 


4. 집에서 통근하는 학생 (집이 학교 옆에 사는 경우)

 

아래의 그림은 집이 학교 옆에 사는 경우에 대해서 설계하였다.

 

 

그림 4-1. 집에서 통근하는 학생 / "가정" - 도도(Dodo)

 

그림 4-1은 집에서 통근하는 학생을 가정하고 통장 내역을 사용자 인터페이스로 설계하였다.

현금흐름이 크게 그렇다.

 

해설1) 그림 4-1을 자세히 보면, "지로"가 있다. 지로 시스템에서의 오기입 환불금을 의미함.
해설2) 학교 식당의 경우, OOOO회사명으로 영수증이 잡히는 경우가 있음. 현찰로 거래할 경우 결제내역을 알 길이 없음.

 

학교가 집 근처일 때 버스도 탈 필요가 없는 경우

 

 

그림 4-2. 집에서 통근하는 학생의 통장내역서 - 도도(Dodo)

 

그림 4-2는 집에서 통근하는 학생의 통장내역서를 예시로 그려보았다.

통장내역서가 마지막 페이지에 도달하였을 때 어떻게 처리할 것인지 등에 대해서 심층적인 고민을 해볼 필요가 있다고 주장한다.

 

참고할 점: 현찰 사용에 대해서는 기입하지 않았음.
체크카드로 결제한 경우를 가정하고 이해하면 도움이 될 것으로 보인다.

 

집에서 버스를 타고 학교에 통학하는 학생도 있을 수가 있다.
산출식은 매우 단순하다.

"등교일수 * 왕복(2회) * 버스요금 = 계"로 산출할 수 있다.

 

 

그림 4-3. 통학하는 경우 - 도도(Dodo)

 

그림 4-3은 학생이 학교에 통학하는 경우를 가정하고 설계하였다.

 


5. 개별주거 - 거주자(학생 등)

 

개별주거라고 하면, 영외를 벗어나서 지내는 경우라고 정의하였다.

학생이 될수가 있고, 직장인이 될 수가 있고 경우의 수는 아래와 같은 수식으로 정의해볼 수 있다.

 

 

개별주거 생활을 한다고 가정했을 때 일어날 수 있는 현금흐름을 기준으로 설계를 해보았다.

 

 

그림 5-1. 타지역에서 개별거주하고 있는 경우 - 학생 / "가정" - 도도(Dodo)

 

그림 5-1는 타지역에서 개별거주하고 있는 학생이라고 가정하고 설계하였다.

 

해설
1. 선불버스: 시내,시외버스(City bus), 택시(Tax), 항공(Airport), 배(Ship), 기차(Train) 등의 운송수단(전국 공통 교통카드 사업자).
   => 국토교통부에서 관리하고 있다. http://cyber.molit.go.kr/traffic/main.jsp
2. EOO위원회: EOO위원회는 각종 자격증 시험이라고 가정하였음.
3. OO테크: OOO학생이 일용직으로 근무한 회사에서 일당을 넣어준 경우.

 

 

그림 5-2. 타지역에서 개별거주하고 있는 학생 - 도도(Dodo)

 

그림 5-2는 타지역에서 자취하는 학생이라고 가정하고 설계하였다.

2학기를 지냈다고 가정한다.

학생이 주거지를 퇴소하고, 생활관에 합격하여 생활관비를 납부하게 된 경우이다.

 


       한 명이 거주해야만 정상적인 공간일 수도 있지만, 경우에 따라서 8평 내에서 분할 거주자가 있을 수도 있음.

 

꼭 확인해야 할 것


-> 1. 전입신고와 관련된 사항 (정부 24)

http://www.gov.kr/main?a=AA020InfoCappViewApp&HighCtgCD=A01010&CappBizCD=13100000016&tp_seq=01

-> 2. 등기사항 관련 (법원 등기소)
http://www.iros.go.kr

 

 

[TV 수신료 등에 관한 것]

1. 병원비, 약제비 등에 관한 정보는 "건강보험심사평가원"에서 살펴볼 수 있다.
http://www.hira.or.kr/main.do

2. 과학기술정보통신부
주요 업무는 ICT, R&D, 과학기술정책 등의 업무를 담당하고 있다. http://www.msit.go.kr
-> TV 수신료 등에 관한 것도 관리를 하는 것으로 보인다.

3. 교육부
교육부가 학생에 관한 것은 담당하고 있을 것 같다.
http://www.moe.go.kr 

4. 예비군 훈련 / 민방위 훈련
예비군 훈련에 관한 것은 예비군 홈페이지나 국방부에 문의해보기 바란다.
https://www.yebigun1.mil.kr/

http://www.mnd.go.kr/mbshome/mbs/mnd/subview.jsp?id=mnd_011102030000 


국민재난안전포털이다.
http://m.safekorea.go.kr/

5. 장애인에 관한 사항

보건복지부를 참고하면 도움이 될 것으로 보인다.

http://www.mohw.go.kr 


6. 농축산 및 동물에 관한 사항
농림축산식품부에서 관할하고 있다.
http://www.mafra.go.kr,


동물 관리시스템 등도 운영하고 있다.
http://www.animal.go.kr

7. 학교 식당의 경우, OOOO회사명으로 영수증이 잡히는 경우가 있음. 현찰로 거래할 경우 결제내역을 알 길이 없음.
8. 임대 주택의 경우, 영수증, 세금계산서 등을 안 끊어주는 경우가 많음. 통장 거래가 많다. (월세 등의 존재를 알 수가 없음.)
9. 여성 및 가족에 관한 것
여성 가족부에 문의해보기 바란다. http://www.mogef.go.kr/


 

[보충]

 

아래의 그림은 학생이 타지역에서 거주할 경우, 주거 등에 관한 것이다.

 

 

그림 5-3. 대도심에 있는 건물들 - 도도(Dodo)

 

 

그림 5-4. 건물 사이에서 걸어서 이동하는 모습 - 도도(Dodo)

 

그림 5-3, 그림 5-4는 건물 사이에서 걸어가는 모습을 가정으로 두고 그려보았다.

 


6. 생활관에 거주하는 학생으로 전환 또는 직장인(이하 "회사 사택" 또는 "회사 생활관")

 

아래의 그림은 생활관에 거주하게 되었을 때 학생 기준에서 발생할 수 있는 현금흐름이 될 수 있다.

 

 

그림 6-1. 생활관에 거주하는 학생 - 도도(Dodo)

 

그림 6-1을 자세히 관찰해보면, 몇 가지 흥미로운 사실을 알 수 있다.

OO재단에 이자를 냈다. 학과O회비로 돈을 냈다. 택배를 통해서 물건을 보냈다.

"이삿집", "택배", "부모님 차량으로 이송" 등이 있을 수 있다.

 

회사 사택 또는 회사 생활관을 보유하고 있는 회사의 경우가 일부 있을 수 있음.

 

꼭 확인해야 할 것: 전입신고가 가능한지?
-> http://www.gov.kr/main?a=AA020InfoCappViewApp&HighCtgCD=A01010&CappBizCD=13100000016&tp_seq=01

학교 영수증에 관한 사항
- 그러나 세금계산서, 계산서 등이 아니라 A4용지에 출력해서 행정실에서 발행을 수기로 해주고 있다.
   학교에서 해주는 경우가 있고, 생활관에서 따로 별도로 해주는 경우가 있다.

- BTL 기숙사의 문제 등도 있다.

 

 


7. 직장인 - 자녀 중/고등학교 생활비

 

직장인으로 근무중이신 자녀 중/고등학교 학생의 생활비 시스템을 아래와 같이 사용자 인터페이스 관점으로 설계하였다.

 

 

그림 7-1. 직장인 부모님의 자녀 중/고등학생 학비 - 도도(Dodo)

 

그림 7-1은 직장인 부모님의 자녀 중/고등학생 학비를 설계하였다.

크게 어렵지 않는 구조로 설계가 가능하였다.

 

수입 구조는 간단하게 "월급"이 될 수 있다.

 

1. 단, 옷(품위유지비), 식료품 등은 산출하지 않았음.

 
[참고사항]

2. 생활법령에 의하면, "학원 또는 교습소"라고 표현한다.
http://easylaw.go.kr/CSP/CsmMain.laf?csmSeq=1140

 

가정의 예)

1. 유치원 교육비 등 
http://www.easylaw.go.kr/CSP/CnpClsMainBtr.laf?popMenu=ov&csmSeq=631&ccfNo=2&cciNo=3&cnpClsNo=1 생활법령
http://e-childschoolinfo.moe.go.kr/ 유치원 알리미
http://www.childinfo.go.kr/main.jsp 어린이집 유치원 통합정보공시


2. 병원비, 약제비 등에 관한 정보는 "건강보험심사평가원"에서 살펴볼 수 있다.
http://www.hira.or.kr/main.do

 

3. 고용 등과 관련된 사항 

고용노동부에서 관할하고 있다. "일자리창출" 등의 업무를 수행한다. http://www.moel.go.kr/index.do
실업자 급여, 직업훈련, 노동정책 관련 문의도 담당하고 있다.
실업급여를 지급받는 대상이 어떻게 되는지 문의를 해보면 많은 도움이 될 것으로 보인다.

=> 6개월 이상 직장에 재직한 사람에 한해서 실업급여를 받으려면, 직장에 다니고 만기 퇴사를 해야 한다. 회사를 중도퇴사 하면 받을 수 없다고 한다.

노동을 하는 도중에 다쳤을 경우, 근로복지공단에서 업무를 수행하고 있다. 문의해보기 바란다.
https://www.kcomwel.or.kr/kcomwel/main.jsp


4. 기획재정부
기획재정부에서는 조금 어려운 용어가 많으니 해석을 하면, "국가의 경제안살림"을 맡고 있다. 재정을 담당한다고 하면 이해가 될지는 모르겠다.
어려운 일들을 수행한다.

http://www.moef.go.kr/

5. 환경부
환경부에서는 육안으로는 잘 안 보이는 일을 수행한다.
"환경오염", "물 상하수도", "자원 순환" 등 많은 일을 수행하고 있다.

http://www.me.go.kr

6. 과학기술정보통신부
주요 업무는 ICT, R&D, 과학기술정책 등의 업무를 담당하고 있다. http://www.msit.go.kr 
-> TV 수신료 등에 관한 것도 관리를 하는 것으로 보인다.

7. 행정 / 지방세에 관한 사항
행정안전부나 관할 지방자치단체에 문의하기 바란다.
http://www.mois.go.kr

8. 국세에 관한 실무에 관한 사항
관할 지방세무서나 국세청을 통해서 문의하기 바란다. 상급기관은 기획재정부이다.
https://www.nts.go.kr/

9. 금전 거래 등으로 인해 신용이 불량한 상태가 되어버린 경우

신용회복위원회에 문의해보면 많은 도움이 될 것으로 보인다.
https://www.ccrs.or.kr/main.do
실무적으로 많은 기능을 하고 있다.

10. 장애인에 관한 사항

보건복지부를 참고하면 도움이 될 것으로 보인다.

http://www.mohw.go.kr 

11. 농축산 및 동물에 관한 사항

농림축산식품부에서 관할하고 있다.
http://www.mafra.go.kr,


동물 관리시스템 등도 운영하고 있다.
http://www.animal.go.kr

12. 바다에 관한 사항
해양수산부에서 운영하고 있는데, 도도는 바다생태 정보나라 사이트를 추천한다.
http://www.ecosea.go.kr/

13. 학교 영수증 관련(식당, 매점, 학비, 책값 등)
영수증 등을 발급해주지 않은 것으로 알고 있다. (중/고등학교) 통장 거래만으로 운영되고 있는 실정으로 알고 있다.
간이 영수증 형태로 학교 자체적으로 발행은 해주고 있는 경우가 있다. 그러나 세금계산서, 계산서 등이 아니라 A4용지에 출력해서 행정실에서
발행을 수기로 해주고 있다.

14. 여성 및 가족에 관한 것
여성 가족부에 문의해보기 바란다. http://www.mogef.go.kr/

 


8. 사업자 부모님 - 자녀 중/고등학생 학비

 

사업자 부모님 밑에서 성장한 아이의 중/고등학생 학비 등을 사용자 인터페이스 관점으로 설계하였다.

 

 

그림 8-1. 사업자 부모님의 자녀 - 도도(Dodo)

 

 

그림 8-2. 사업자 부모님의 자녀 - 도도(Dodo)

 

그림 8-2는 사업자 부모님의 자녀로 크게 될 경우를 가정하고 사용자 인터페이스 설계를 하였다.

 

[공부(Study) - 주안점]

cf-가정1) 
직장인 부모님은 급여를 받지만, 사업자는 거래처에서 거래금이 들어오거나 하루 일 매출이 나와야 급여를 받을 수 있다.

가설 변수)
변수1. 미미하긴 하지만, 매출이 있다는 가정으로 설계하였다.
변수2. 현실세계에서는 매출이 없을 경우도 있을 수 있다.

 

생활법령 > 학원의 설립 및 운영에서 보면, "학원 또는 교습소"라고 표현한다.
http://easylaw.go.kr/CSP/CsmMain.laf?csmSeq=1140

 

가정의 예)

1. 유치원 교육비 등 
http://www.easylaw.go.kr/CSP/CnpClsMainBtr.laf?popMenu=ov&csmSeq=631&ccfNo=2&cciNo=3&cnpClsNo=1 생활법령
http://e-childschoolinfo.moe.go.kr/ 유치원 알리미
http://www.childinfo.go.kr/main.jsp 어린이집 유치원 통합정보공시


2. 병원비, 약제비 등에 관한 정보는 "건강보험심사평가원"에서 살펴볼 수 있다.
http://www.hira.or.kr/main.do

 

3. 중소벤처기업부
중소기업(사업자)와 관련된 업무는 중소벤처기업부에서 담당하고 있다. 

http://www.smba.go.kr/site/smba/main.do#btn_topBarNav 

인력, 금융, 창업, 기술 등의 복합 업무를 관할하고 있다.
폐업과 기업해산과 청산에 관한 문의도 해보면 도움이 될 것으로 보인다.


4. 기획재정부
기획재정부에서는 조금 어려운 용어가 많으니 해석을 하면, "국가의 경제안살림"을 맡고 있다. 재정을 담당한다고 하면 이해가 될지는 모르겠다.
어려운 일들을 수행한다.

http://www.moef.go.kr/

5. 환경부
환경부에서는 육안으로는 잘 안 보이는 일을 수행한다.
"환경오염", "물 상하수도", "자원 순환" 등 많은 일을 수행하고 있다.

http://www.me.go.kr

6. 과학기술정보통신부
주요 업무는 ICT, R&D, 과학기술정책 등의 업무를 담당하고 있다. http://www.msit.go.kr 
-> TV 수신료 등에 관한 것도 관리를 하는 것으로 보인다.

7. 행정 / 지방세에 관한 사항
행정안전부나 관할 지방자치단체에 문의하기 바란다.
http://www.mois.go.kr

8. 국세에 관한 실무에 관한 사항
관할 지방세무서나 국세청을 통해서 문의하기 바란다. 상급기관은 기획재정부이다.
https://www.nts.go.kr/

9. 폐업/기업 해산에 관한 사항
제일 중요한 것이다. 경영을 독학으로 공부하거나, 주경야독 등으로 공부한 사람들도 있을 것으로 보인다.
국세청 홈택스(http://www.hometax.go.kr), 행정자치부 지방세정책과(http://www.mois.go.kr/frt/a07/searchStaff.do?selectedTeamId=1741232&orgnzt_id=1741232&mgrDetailFlag=Y), 법원 등기소(http://www.iros.go.kr) 또는 법원(https://www.scourt.go.kr)에 문의를 해보길 바란다.
실질적으로 폐업을 할 수 밖에 없는 상황에 닦쳤을 때 도와주는 곳에 대해서도 한번 문의를 해보기 바란다.
폐업 세무실무 등에 관해서도 문의해보면 도움이 될 것이다.

10. 금전 거래 등으로 인해 신용이 불량한 상태가 되어버린 경우

신용회복위원회에 문의해보면 많은 도움이 될 것으로 보인다.
https://www.ccrs.or.kr/main.do
실무적으로 많은 기능을 하고 있다.

11. 장애인에 관한 사항

보건복지부를 참고하면 도움이 될 것으로 보인다.

http://www.mohw.go.kr 

12. 농축산 및 동물에 관한 사항
농림축산식품부에서 관할하고 있다.
http://www.mafra.go.kr,


동물 관리시스템 등도 운영하고 있다.
http://www.animal.go.kr

13. 바다에 관한 사항
해양수산부에서 운영하고 있는데, 도도는 바다생태 정보나라 사이트를 추천한다.
http://www.ecosea.go.kr/

14. 여성 및 가족에 관한 것
여성 가족부에 문의해보기 바란다. http://www.mogef.go.kr/

 


9. 통장의 표지(앞면, 뒷면)

 

통장의 표지는 크게 두 종류로 구성될 수 있다.

앞면 표지와 뒷면 표지가 있다.

 

 

그림 9-1. 통장 앞면 / 뒷면 표지 - 도도(Dodo)

 

그림 9-1은 통장의 앞면 표지와 뒷면 표지에 관한 사용자 인터페이스 설계이다.

크게 어렵지 않게 만들 수 있을 것으로 보인다.

 


10. 부록1 - 사용자 인터페이스 총체적인 설계하기

 

사용자 인터페이스를 총체적인 관점으로 설계하는 방법에 대해서 소개하려고 한다.

일반 은행(카드) 시스템이 크게 비슷비슷할 것으로 보인다.

 

 

 

 

 

 

 

 10-1. 사용자 인터페이스 설계 - 도도(Dodo)

 

 10-2. 사용자 인터페이스 설계 - 도도(Dodo)

 

 10-3. 사용자 인터페이스 설계 - 도도(Dodo)

 

 10-4. 사용자 인터페이스 설계 - 도도(Dodo)

 

 10-5. 사용자 인터페이스 설계 - 도도(Dodo)

 

 

 10-6. 사용자 인터페이스 설계 - 도도(Dodo)

 

 

 10-7. 사용자 인터페이스 설계 - 도도(Dodo)

 

 

 10-8. 사용자 인터페이스 설계 - 도도(Dodo)

 

 

 10-9. 사용자 인터페이스 설계 - 도도(Dodo)

 

 

 10-10. 사용자 인터페이스 설계 - 도도(Dodo)

 

 

 

 10-11. 사용자 인터페이스 설계 - 도도(Dodo)

 

 10-12. 사용자 인터페이스 설계 - 도도(Dodo) 

 


11. 부록2 - 첨부(Attachment)

 

번호

파일명(Filename)

세부내용(Description)

작성일자(Create Date)

비고(Remarks)

1

UI-StudentBank.7z

UI-StudentBank.pptx

2018-08-21

 

2

bankDesign1.7z

bankDesign1.ai

2018-08-21

 

3

bankDesign2.7z

bankDesign2.ai

2018-08-21

 

4

bankDesign3-1.7z

bankDesign3-1.ai

2018-08-21

 

5

bankDesign3-2.7z

bankDesign3-2.ai

2018-08-21 

 

6

bankDesign3-3.7z

bankDesign3-3.ai

2018-08-21

 

7

bankDesign4_1.7z

bankDesign4-1.ai

2018-08-21

 

8

bankDesign4_2.zip

bankDesign4-2.ai

2018-08-21

 

9

bankDesign4_3.7z

bankDesign4-3.ai

2018-08-21

 

10

bankTitle.7z

bankTitle.ai

2018-08-21

 

11

bankDesign5-1.7z

bankDesign5-1.ai

2018-08-21

 

12

bankDesign6-1.zip

bankDesign6-1.ai

2018-08-21

 

13

bankDesign6-2.7z

bankDesign6-2.ai

2018-08-21

 

14

bankDesign6-3.zip

bankDesign6-3.ai

2018-08-21

 

15

csv.7z

type1-1.csv

type1-2.csv

type2-1.csv

type2-2.csv

type3.csv

type4.csv

2018-08-21

 

16

180822-select.7z

 180822-select.pptx

2018-08-22

 

17

180822-topBottom.7z

180822-topBottom.pptx

2018-08-22

 

 

 


12. 부록3 - 프로그래밍 설계(Design)

 

코드로 구현했을 경우를 대비하여 몇 가지 프로그래밍으로 설계하였다.

은행 계좌 시스템을 설계하는 데 프로세스를 생성할 것인지 쓰레드 방식으로 처리할 것인지 깊은 고민을 해보면 도움이 될 것이다.

 

개발환경: Eclipse Jee Photon, Mingw G++ Compliler, Microsoft Windows 10

 

그림 12-1. 메뉴 선택 설계하기 - 도도(Dodo)

 

그림 12-1은 메뉴 선택 기능을 설계하는 데 있어서 충분한 고민을 해봐야 할 것이다.

 

 

그림 12-2 프로그래밍 설계하기 / 은행 콘솔 표지 만들기 - 도도(Dodo)

 

그림 12-3 프로그래밍 설계하기 / 통장 내역 출력하기 - 도도(Dodo)

 

그림 12-4 프로그래밍 설계하기 / 은행 통장 내역 출력하기 - 도도(Dodo)

 

그림 12-5 프로그래밍 설계하기 / 은행 통장 내역 출력하기 - 도도(Dodo)

 그림 12-6 프로그래밍 설계하기 / 은행 통장 내역 출력하기 - 도도(Dodo)

 


13. 맺음글(Conclusion)

 

은행 명세서 및 계좌 구현이라는 실험 주제에서 얻을 수 있는 흥미로운 점은 다소 많이 있었다.

기대효과는 모른다. 좀 더 발전된 모습으로 좋은 공부를 수행할 것이다.

 

아무튼 이상으로 글을 마친다.

 


14. 참고자료(Reference)

 

1. Use the thread library,| MinGw, Last Modified 2008-10-27, Accessed by 2018-08-21, http://www.mingw.org/wiki/Use_the_thread_library

2. CreateThread function | Microsoft Docs, Last Modified 2018-08-10, Accessed by 2018-08-21, https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-createthread

3. 전입신고 | 민원안내 및 신청 | 민원24 | 정부24, Last Modified 2017-07-26, Accessed by 2018-08-22, http://www.gov.kr/main?a=AA020InfoCappViewApp&HighCtgCD=A01010&CappBizCD=13100000016&tp_seq=01

4. 인터넷 등기소 , Last Modified , Accessed by 2018-08-22, http://www.iros.go.kr

5. UI for Setting up a Checking account and Savings account for my bank project, Last Modified, Accessed by 2018-08-22, https://stackoverflow.com/questions/34164396/ui-for-setting-up-a-checking-account-and-savings-account-for-my-bank-project

6. 통장 - 위키백과, Last Modified 2018-06-07 09:21, Accessed by 2018-08-22, https://ko.wikipedia.org/wiki/통장

7. 중소기업은행법 | 국가법령정보센터, Last Modified 2017-07-26, Accessed by 2018-08-22, http://www.law.go.kr/법령/중소기업은행법

8. 우체국예금ㆍ보험에 관한 법률 | 국가법령정보센터, Last Modified 2017-07-26, Accessed by 2018-08-22, http://www.law.go.kr/법령/우체국예금ㆍ보험에관한법률

9. "지료(Giro)는" 금융결제원에서 통합납부 시스템을 운영하고 있다.

     지로란 "일상거래에서 발생하는 지급인과 수취인 간의 각종 대금결제를 현금이나 수표로 주고받는 대신에 금융회사의 계좌를 이용하여 결제할 수
     있도록 지로자금의 지급·수취정보 처리센터 역할을 수행하고 있다."

10. 지로업무 | 금융결제원, Last Modified , Accessed by 2018-08-22, http://www.kftc.or.kr/kftc/business/BusinessGiroInfo.do

11. 계좌정보통합관리서비스 | 금융결제원, Last Modified , Accessed by 2018-08-22, https://www.payinfo.or.kr/payinfo.html

     금융결제원에서는 계좌정보통합관리스 서비스를 운영하고 있다고 한다.

12. 학원의 설립ㆍ운영 및 과외교습 | 찾기쉬운 생활법령정보시스템, Last Modified, Accessed by 2018-08-22,  http://easylaw.go.kr/CSP/CsmMain.laf?csmSeq=1140

13. 대학알리미(AcademyInfo), Last Modified , Accessed by 2018-08-22, http://www.academyinfo.go.kr

14. 교육부(Ministry Of Education), Last Modified , Accessed by 2018-08-22, http://www.moe.go.kr/main.do?s=moe

15. 유치원 교육비 :: 영유아교육 | 생활법령정보, http://www.easylaw.go.kr/CSP/CnpClsMainBtr.laf?popMenu=ov&csmSeq=631&ccfNo=2&cciNo=3&cnpClsNo=1

16. 약제비 계산기 | 건강보험심사평가원, Last Modified , Accessed by 2018-08-22, http://www.hira.or.kr/rf/medicine/calculator/form.do?pgmid=HIRAA030037000000

17. 건강보험심사평가원, Last Modified , Accessed by 2018-08-22, http://www.hira.or.kr/main.do

18. 유치원 알리미, Last Modified , Accessed by 2018-08-22, http://e-childschoolinfo.moe.go.kr/#none

19. 어린이집 유치원 통합정보공시, Last Modified, Accessed by 2018-08-22, http://www.childinfo.go.kr/main.jsp

20. 국토교통부 - 교통정보, Last Modified, Accessed by 2018-08-22, http://cyber.molit.go.kr/traffic/main.jsp

21. 내일을 위한 고용노동부, Last Modified, Accessed by 2018-08-22, http://www.moel.go.kr/index.do

22. 중소벤처기업부, Last Modified, Accessed by 2018-08-22, http://www.smba.go.kr/site/smba/main.do#btn_topBarNav

23. 기획재정부, Last Modified, Accessed by 2018-08-22, http://www.moef.go.kr/

24. 환경부, Last Modified, Accessed by 2018-08-22, http://www.me.go.kr/home/web/main.do

25. 과학기술정보통신부, Last Modified, Accessed by 2018-08-22, http://www.msit.go.kr

26. 금융실명거래 및 비밀보장에 관한 법률 | 국가법령정보센터, Last Modified, Accessed by 2018-08-22, http://www.law.go.kr/법령/금융실명거래및비밀보장에관한법률

27. 개인정보보호법 | 국가법령정보센터, Last Modified 2017-07-26, Accessed by 2018-08-22, http://www.law.go.kr/법령/개인정보보호법/(14839,20170726)

28. 의무경찰 | 복무안내, Last Modified , Accessed by 2018-08-23, http://ap.police.go.kr/ap/main.do

29. 의무소방원 - 현역(전환복무) | 병무청, Last Modified, Accessed by 2018-08-23, https://www.mma.go.kr/contents.do?mc=mma0000504&num=3

30. 군인사법 | 국가법령정보센터, Last Modified 2018-01-16, Accessed by 2018-08-23, http://www.law.go.kr/법령/군인사법

31. 은행법 | 국가법령정보센터, Last Modified 2017-01-19, Accessed by 2018-08-23, http://www.law.go.kr/법령/은행법

32. 기술보증기금법 | 국가법령정보센터, Last Modified 2018-06-12, Accessed by 2018-08-23, http://www.law.go.kr/법령/기술보증기금법
33. 한국산업은행법 | 국가법령정보센터, Last Modified 2016-09-30, Accessed by 2018-08-23, http://www.law.go.kr/법령/한국산업은행법

34. 한국주택금융공사법 | 국가법령정보센터, Last Modified 2018-02-21, Accessed by 2018-08-23, http://www.law.go.kr/법령/한국주택금융공사법
35. 행정안전부, Last Modified , Accessed by 2018-08-23, http://www.mois.go.kr

36. 국세청, Last Modified, Accessed by 2018-08-23, https://www.nts.go.kr/

37. 행정안전부 지방세정책과, Last Modified, Accessed by 2018-08-23, http://www.mois.go.kr/frt/a07/searchStaff.do?selectedTeamId=1741232&orgnzt_id=1741232&mgrDetailFlag=Y

38. 근로복지공단, Last Modified, Accessed by 2018-08-23, https://www.kcomwel.or.kr/kcomwel/main.jsp

39. 신용회복위원회, Last Modified, Accessed by 2018-08-23, https://www.ccrs.or.kr/main.do

40. 대한민국 국방부, Last Modified, Accessed by 2018-08-23, http://www.mnd.go.kr

41. 예비군 훈련, Last Modified, Accessed by 2018-08-23, http://www.mnd.go.kr/mbshome/mbs/mnd/subview.jsp?id=mnd_011102030000

42. 국민재난안전포털, Last Modified, Accessed by 2018-08-23, http://m.safekorea.go.kr/idsiSFK/50/menuMap.do?w2xPath=/idsiSFK/wq/sfk/cs/contents/civil_defense/SDIJKM1205.xml

43. 정책 > 장애인 > 장애인정책 | 보건복지부, Last Modified, Accessed by 2018-08-23, http://www.mohw.go.kr/react/policy/index.jsp?PAR_MENU_ID=06&MENU_ID=063701

44. 보건복지부, Last Modified, Accessed by 2018-08-23, http://www.mohw.go.kr

45. 농림축산식품부, Last Modified, Accessed by 2018-08-24, http://www.mafra.go.kr

46. 동물보호관리시스템, Last Modified, Accessed by 2018-08-24, http://www.animal.go.kr/

47. 바다생태 정보나라(해양수산부), Last Modified, Accessed by 2018-08-24, http://www.ecosea.go.kr/

48. 여성가족부, Last Modified, Accessed by 2018-08-28, http://www.mogef.go.kr/

 


* 제1저자(Author) 도도는 http://yyman.tistory.com 운영자이다. 샵인클루드와 미개닉 등 샵인클루드족이다.

                                   - 제1저자 도도는 풍부한 실험을 하기 위해서 매우 안락한 상태에서 공부를 진행하였다.

 

* 교신저자(Corresponding author || Contact author)는 해당 없음. (N/A - Not Applicable)

* 도도(Dodo)는 http://yyman.tistory.com의 Editor(에디터)이다.

반응형
728x90
300x250

[회계(Account)] 회계와 재무의 차이

 

회계와 재무의 차이는 간단하다.

 

회계(Account)

재무(Financial)

기록과 보고의 목적

자금조달, 운영 등의 목적

 


1. 회계 시스템 소개

 

회계의 시스템과 본질을 소개하려고 한다.

아무리 돈을 잘 벌고, 매출이 잘 나와도 가장 중요한 것은 비용과 지출 등의 관리를 하지 못하면 미래를 계획할 수가 없다.

회계라는 것은 재화를 창출하는 가치가 아니라 재화를 관리하는 것에 가깝다고 할 수 있다.

재화라고 하면 기업이든, 개인이든 무언가를 생산하는 일련의 과정이라고 주장한다.

 

 

이번에 소개할 것은 회계시스템은 어떻게 구성되는지를 소개하고자 한다.

 

"도도"라는 인물이 있다.

2018년 1월 4일에 1,000원의 용돈을 받았다.

2018년 1월 5일에 용돈 1,000원 중 400원을 사용하였다.

2018년 1월 5일에 집안일을 도와서 200원의 수입을 창출하였다.

2018년 1월 5일에 친구의 일을 도와서 300원의 수입을 창출하였다.

2018년 1월 6일에 월급 1,600원을 받았다. (수입)

2018년 1월 7일에 카드값으로 1,200원이 지출되었다.

2018년 1월 8일에 대출금 10,000원의 5년 균등분 이자(3%)로 3,535원 / 12개월 = 294원이 나갔다.

 


이러한 식으로 해결하는 것은 재무의 한 기능이다.

 

 

그림 1-1. 균등상환, 도도(Dodo)

 

[첨부(Attachment)]

Financial.7z

 

 

이러한 금전 거래가 있었다고 가정하자.

 

부모님이 하시는 말 중에서 이런 말이 있다.

 

부모님) "도도야 용돈 어떻게 쓰고 있는지 한번 소개해보렴."

도도) "잠시만요."

 

내가 한 가지 팁을 알려주는 것은 학습자에게 가장 중요한 것은 리액션이다.

상황을 그려보는 것이다.

 

도도가 있다. 도도라는 인물은 결혼을 해서 부인이 슬하에 1명, 자녀 {N}명이 있다.
(단, N은 임의의 수)

 

Miss 도도) "도도님, 용돈이 어떻게 되는지 브리핑 해보시요."
Mr 도도) "피피티로 보고할까요? 이메일로 보고할까요? 아니면 구두로 보고할까요?"
Miss 도도) "결산일지를 가져와봐요. 도도"
Mr 도도) "네 그러면 몇일까지 보고하면 되겠어요?"
Miss 도도) "OO시까지 보고하세요."

 

이런 일들이 있을 수가 있다.

 

                                        표 1-1. 원장(Account Book 또는 Bookeeping)

 

번호

거래일자

구분

항목명

금액

잔액

1

2018-01-04

수입

초기잔액(2018년 1월 04일 기준) 조회 결과

0

0

2

2018-01-04

수입

Miss도도에게 받은 현금

1,000

1,000

3

2018-01-05

지출

아이스크림(Ice-Cream) 1개

400

600

4

2018-01-05

수입

집안일 -> (도도 Family) 수입

200

800

5

2018-01-05

수입

친구 일 돕기

300

1,100

6

2018-01-06

수입

도도 월급

1,600

2,700

7

2018-01-07

지출

카드값

1,200

1,500

8

2018-01-08

지출

매월 이자 (대출금)

294

1,206

 

이러한 거래 일지가 있다고 하자.

 

이 정도의 거래 일지면 "충분한 정보를 제공하고 있다고 보여지는가?"

초보의 시야에서는 이 정도만 해도 비용관리는 충분히 하고 있다고 보여진다.

 

물론 그렇다. 흔히 이러한 방식의 일지를 가계부 또는 원장, 계정일지라고 부른다.

 


2. 보고서의 체계(회계)

 

회계에서의 보고서 체계는 크게 어렵지 않게 구성된다.

 

표 2-1. 보고서의 체계(Account)

 

재무상태표
Financial statement

재무상태

자산 = 자본 + 부채

이런 시스템의 체계로 구성된다.

 

(자산, 자본, 부채(채무)에 관한 정보가 있어야 한다.)

손익계산서
(Statement of Income (Loss))

성과

 수입 - 지출 - 세금 = 순이익(순손실)

이런 형태로 구성된다.

(수입, 지출 등의 정보로도 구할 수 있다.)

 

-> 흑자가 나면 순이익이고, 적자가 나면 순손실이다.

현금흐름표

자본 변동

자본의 현금 - 투자활동 - 재무활동 = 기초 자산(현금)

이런 시스템으로 구성된다.

 

(손익계산서와 재무상태표가 먼저 존재해야 한다.)

자본변동표

현금 흐름

자본 변동표는 재무상태표와 손익계산서 두 개의 시스템에서 도출할 수 있다.

 

자본 자기자본, 타인자본 등의 정보.

당기순이익(순손실)에 대한 정보

이익잉여금을 산출할 수 있다.

 

자본금, 이익잉여금에 대한 정보로 자본 변동을 도출할 수 있다.

 

표 2-1의 보고서 시스템을 갖추려면 먼저 선행되어야 할 조건이 있다.

표 1-1의 정보가 존재하지 않는다면, 표 2-1은 존재할 수가 없다.

표 1-1의 정보에 자산, 자본, 부채 등의 정보를 담을 수 있다.

 

예를 들면, 표 2-2에서는 표 1-1의 정보에 자산과 자본, 부채 등의 정보를 담았다.

 

                                      표 2-2. 원장(Account Book 또는 Bookeeping)

 

번호

거래일자

구분

항목명

금액

잔액

1

2015-01-08

부채

가계 마련(집) 대출 (고정이자 3%, 3년 거취)

10,000

10,000

2

2015-01-08

자산

집 - 소재지: OOOO/OO

10,000

0

...

...

...

2015년 1월 9일~ 2018년 1월 3일

{x}

{y}

3

2018-01-04

수입

초기잔액(2018년 1월 04일 기준) 조회 결과

0

0

4

2018-01-04

수입

Miss도도에게 받은 현금

1,000

1,000

5

2018-01-05

지출

아이스크림(Ice-Cream) 1개

400

600

6

2018-01-05

수입

집안일 -> (도도 Family) 수입

200

800

7

2018-01-05

수입

친구 일 돕기

300

1,100

8

2018-01-06

수입

도도 월급

1,600

2,700

9

2018-01-07

지출

카드값

1,200

1,500

10

2018-01-08

지출

매월 이자 (대출금)

294

1,206

 

 

이 정도의 정보가 있다면, 아래의 정보를 충분히 구할 수 있다.

"집", "현금" 등의 키워드를 활용하여 정보를 구한다.

 

물론 표 2-2에 "토지" 등의 정보를 명확히 구분해두면 좋다.

그러나 범위가 커진다.

 

키워드를 이의 정보에 맞춰서 분석을 한다면, 아래의 정보 보고서도 충분히 구할 수 있다.

 

select * from {테이블} where subject like '%토지%';

 

이런 형태로 도출할 수도 있다.

 

표 2-3. 재무상태표

 

 자산

 부채

 현금

 -> 미지급금(차입)

 토지

 자본

 기계장치

 -> 자기자본

 운반구

 -> 타인자본

 

 -> 이익잉여금

 

 

 

 

 

 

자산 = 

자산 = 자본 + 부채 

 

표 2-2의 시스템이 구축되면 표 2-1을 구축해야 한다.

 

손익계산서 보고서에는 크게 두 가지로 구성된다.

"과목별 구분", "기능별 구분"

 

큰 의미는 구분의 항목에서 서식이 달라질 수가 있다.

기능별 구분으로도 과목별 구분을 포함할 수도 있다.

 

                                표 2-4. 손익계산서

 

구분

금액

수입

1,000

매출수입

1,000

이자수입

 

지출

500

원가

 

관리비

 

 -> 인건비(급여)

500

판매비

 

세금 차감 전 손익

500

세금

20

당기손이익(당기 순손실)

세금 차감전 손익 - 세금 = 480원

 

표 2-4처럼 손익계산서를 구할 수 있다.

 

다음은 현금흐름표이다.

크게 어려운 시스템은 아니다.

 

다만 항목이 복잡해진다. 간단하게 생각하면 쉬우나 사람인지라 햇갈리는 사람이 있다.

 

 

표 2-5. 현금흐름표

 

자본

 

 

1. 현금

1,000

 

2. 자본의 현금흐름

 

 

     현금 유동이 있는 자본

 

 

          이자비용

20

 

          항목2

 

 

          항목3

 

항목합계 = 20

     현금 흐름이 있는 자본

 

 

           ...

 

 

          미지급금

10

식: (... 항목) - (미지급금) = (10)
= 1,000(현금) - 10 = 990

 

결과: 990

3. 이자비용

20

 

3. 투자활동(현금흐름)

 

 

    설비 구매비

500

 

    설비 판매손실비

400

-900

 

 

 

4. 재무활동(현금흐름)

 

 

    배당금

20

 

    자금조달

10

-10

 

   

5. 현금 흐름

990 - 900 - 10 = 80

 

 

다음은 자산변동표에 대해서 소개하겠다.

 

                                                        표 2-6. 현금흐름표

 

 항목

자본

이익잉여금

총계

자기자본

1,000

 

1,000

타인자본

 

 

 

당기순손실(순이익)

 

-100

-100

이익잉여금

 

 = ∑자본 - (당기순손실 + 현금배당)

= 1,000

1,000

현금배당

 

50

 50

자금조달

50

 

 50

 ....

 

 

 

 현재잔액

1,050

식 = 1,000 + 50

1,000

2,050

 

이런 시스템으로 구성되어 있다.

 

현금흐름표에서 주의해야 할 점이 있다면, 이익잉여금의 검증과 현재잔액의 계에 대해서 재무상태표와 손익계산서의 검증이 되어야 한다.

검증식은 몇 가지 복잡하지만 아래처럼 만들 수 있다.

 

if ( 손익계산서.당기순이익(순손실) == 현금흐름표.이익잉여금에 관한 식 ){
       // 참


현금흐름표의 현재잔액의 계에 관한 것이다.

논리적으로 이런 형태로 검증할 수 있다.

if ( 재무상태표.자산 == 현금흐름표.총계 ){    
       // 참
}

 

물론 이런 형태로도 산출할 수도 있다.

크게 시스템을 구축하고 난 이후에는 쉽게 접근할 수 있는 것이 회계이다.

 

물론 위의 슈도코드(의사코드, PseudoCode)가 몇 가지 변수가 실제로는 더 있을 수가 있다.

 


3. IFRS(International Financial Report System)

 

IFRS라고 하면 국제재무정보시스템이라고 표현할 수 있다.

IFRS에는 몇 가지 구성이 있다.

포켓가이드에 따르면, IFRS, IAS 등이 있다.

가이드라인을 만들어서 배포하고 있다.

 

그림 3-1. 포켓가이드(Pocket Guide to IFRS), IFRS.org

 

다음 소개할 것은 IFRS의 개념적인 프레임워크에 관한 것이다.

일종에 IFRS를 잘 활용하는 방법에 대해서 소개하고 있다.

 

회의 참석, 의견제시 등의 기능부터 IFRS 재단(IFRS Foundation)을 잘 활용하는 방법을 담고 있다.

https://www.ifrs.org/news-and-events/2017/05/3-pocket-guide-to-ifrs-standards-the-global-financial-reporting-language/

 

 

그림 3-2. Conceptual Framework, IFRS

 

그림 3-2는 IFRS의 개념적인 프레임워크에 관한 것이다. 

https://www.ifrs.org/projects/2018/conceptual-framework/#educational-material

 

이 링크에 접속하면 관련 내용에 대해서 요약된 정보를 읽어볼 수 있다.

재무상태표에 관한 원리 등, 회계 등에 대해서 자세히 수록하고 있다.

 

다음은 IFRS account 모델에 관한 것이다.

https://www.ifrs.org/news-and-events/2018/01/the-ifrs-17-accounting-model-in-one-page/

 

뉴스 기사 또는 이벤트 코너에서 배포를 하는 것으로 보인다.

그림 3-3. IFRS 17 account Model, IFRS

 

아래의 파일은 2018년 1월에 발표한 IFRS 17에 관한 계정 모델이다.

 

[첨부(Attachment)]

ifrs17.7z

 

읽어보면 크게 양식이 어떻게 되어 있는지를 살펴볼 수 있다.

다음은 IFRS 재단에서 배포하는 뉴스이다.

 

http://www.ifrs.org/news-and-events/news

 

 

그림 3-4. IFRS Foundation News, IFRS

 

IFRS를 구성하는 필수조건이 있다.

 

 

다음은 IFRS 사용을 누가하는지에 관한 정보가 있다.

아래의 링크에 접속하면 관련된 내용이 있다.

 

https://www.ifrs.org/use-around-the-world/use-of-ifrs-standards-by-jurisdiction/#development

 

누가 IFRS 기준을 사용합니까?

우리는 많은 출처의 정보를 사용하여 프로파일을 정확하게 만듭니다.

 

우리의 출발점은 우리가 개발 한 설문지에 표준 세터 및 기타 관련 기관이 제공 한 답변입니다.
각 프로필은 초안을 작성한 후 응답자와 규제 기관 및 국제 감사 기관을 포함한 다른 사람들이 초안을 검토하고 그 정확성을 확인하도록 초청합니다.

각 관할지의 웹 페이지에는 관할 구역 내에서 IFRS 채택 범위를 보여주는 요약 테이블이 포함되어 있습니다. 자세한 내용은 아래 표를 참조하십시오.
• 관련 관할 당국
• 참가자 세부 정보 조사
• 글로벌 회계 기준 및 IFRS 표준에 대한 공약
• 영리 법인에 의한 IFRS 표준 적용 범위 : 어느 회사인가? 상장 또는 비공개 금융 기관? 필수인가? 연결 재무 제표 또는 별도의 회사 설명
• IFRS 기준의 승인 - 프로세스, 법적 권한, 감사 보고서의 표현
• 관할권에서 옵션을 제거 했습니까? 수정 사항을 만들었습니까?
• IFRS 표준의 번역 프로세스
• 중소기업 표준을 위한 IFRS 채택

또한 일부 프로필에는 규제 신고 프로필이 있는 탭이 있습니다 (사용 가능한 경우).

 


4. 회계 보고서 시스템이 갖춰야 하는 4가지

 

IFRS.org 사이트의 내용도 중요하다.

하지만, 더 중요한 것은 기본적으로 재무제표가 구성되기 위해서 갖춰야 할 사항이다.

 

재무제표 = 재무상태표 + 손익계산서 + 현금흐름표 + 자본변동표

 

4가지를 필수적으로 갖춰야만 IFRS 규격을 잘 준수한 것이다.

 

완전한 IFRS 재무 제표에는 다음을 포함해야합니다.

- 회계 기간 말 현재 재무 상태표 (대차 대조표);
해당 기간의 포괄 손익 계산서. 이것은 단일 진술 또는 두 가지 구성 요소로 표현 될 수 있다.
   
손익 계산서 (손익 계정) 및 기타 포괄 손익 계산서. 기타 포괄 손익 보고서에는 유형 자산의 손익이나 해외 사업장의 재무 제표 환산으로 인한
   손익이 포함됩니다.
- 해당 기간 동안 자본 변동표;
- 해당 기간 동안 현금 흐름표;
- 유의적인 회계 정책의 요약을 포함한 주석.

회계 정책을 변경 한 기업은 비교 기간의 시작을위한 재무 상태 보고서 (대차 대조표)도 포함해야 합니다.
비교 정보는 이전보고 기간 동안 제공됩니다. 최초 IFRS 계정을 준비하는 기업은 과도기 면제가 있지만 현재 및 비교 기간 동안 IFRS를
모두 적용해야 합니다.

 

위키피디아(Wikipedia)

 

 

 


5. 참고자료(Reference)

 

1. IFRS - Conceptual Framework, IFRS, Last-Modified , Accessed by 2018-08-04, https://www.ifrs.org/projects/2018/conceptual-framework/#educational-material,

2. Pocket Guide to IFRS Standards: the global financial reporting language, IFRS, Last-Modified, Accessed by 2018-08-04, Last Modifed 2017-05-03, https://www.ifrs.org/news-and-events/2017/05/3-pocket-guide-to-ifrs-standards-the-global-financial-reporting-language/

 

3. IFRS - The IFRS 17 accounting model in one page, IFRS, Last-Modified 2018-01-17, Accessed by 2018-08-04, https://www.ifrs.org/news-and-events/2018/01/the-ifrs-17-accounting-model-in-one-page/

 

4. IFRS - Foundation news, Accessed by 2018-08-04, https://www.ifrs.org/news-and-events/news/.

5. IFRS - Who uses IFRS Standards?, Last-Modified , Accessed by 2018-08-04, https://www.ifrs.org/use-around-the-world/use-of-ifrs-standards-by-jurisdiction/#development

 

6. International Financial Reporting Standards requirements, Wikipedia(English), Last-Modified 2016-10-14, at 09:31 (UTC)., Accessed by 2018-08-04, https://en.wikipedia.org/wiki/International_Financial_Reporting_Standards_requirements

반응형

+ Recent posts