easeon11의 등록된 링크

 easeon11로 등록된 네이버 블로그 포스트 수는 461건입니다.

HTTP 웹 기본 지식 (3) - HTTP 헤더, 캐시 [내부링크]

HTTP 헤더 개요 HTTP 전송에 필요한 모든 부가정보. General, Request, Response 헤더가 있음. 2014년 RFC7230~7235로 개정되면서 RFC2616 버전에서 Entity 헤더였던 것이 Representation 헤더가 됨. HTTP BODY를 통해 표현 데이터를 전달함. 표현은 요청이나 응답에서 전달할 실제 데이터를 말하며, 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공함. 표현 Content-Type 표현 데이터의 형식 설명 미디어 타입, 문자 인코딩 등 Content-Encoding 표현 데이터를 압축하기 위해 사용 데이터를 전달하는 곳에서 압축 후 인코딩 헤더를 추가하면 읽는 쪽에서 해당 정보로 압축 해제 Content-Language 표현 데이터의 자연 언어를 표현 Content-Length 바이트 단위의 표현 데이터 길이 Transfer-Encoding 사용 시 Content-Length 사용 안 함 협상(콘텐츠 네고시에이션) 클라

스프링 MVC 핵심 - 웹 애플리케이션 이해, 서블릿 [내부링크]

웹 서버와 웹 애플리케이션 서버 웹은 HTTP를 기반으로 동작함. 웹 서버는 정적 리소스 및 기타 부가기능을 제공함. (NginX, Apache) 웹 애플리케이션 서버(WAS)는 웹 서버의 기능과 함께 프로그램 코드를 실행해 애플리케이션 로직을 수행하는 역할을 함. (Tomcat) 웹 서버와 WAS의 경계가 모호한데 웹 서버는 정적 리소스 제공, WAS는 애플리케이션 로직을 수행한다고 이해하면 됨. WAS와 DB만으로도 시스템을 구성할 수 있지만 너무 많은 역할을 담당하면 서버가 과부하 걸릴 수 있으며 WAS가 정적 리소스를 제공하는 것은 비효율적임. 그래서 정적 리소스는 것은 웹 서버가 처리하고 동적인 처리가 필요하면 WAS가 수행하는 것이 일반적임. 이렇게하면 역할에 맞게 필요한 서버 확장이 용이하며, WAS에 장애가 발생했을 때 오류화면을 웹 서버에서 보여줄 수 있음. 서블릿 웹 브라우저가 생성한 HTTP 요청을 서버에서 받아 비즈니스 로직을 처리한 뒤 응답 메시지를 보내줌.

메이플월드 메이플 랜덤 디펜스 헬 공략 및 덱 코드 공유, 같이 하는 법 [내부링크]

메이플 랜덤 디펜스 최근 테스터훈님 유튜브에서 소개되었던 메이플 월드의 메이플 랜덤 디펜스 게임을 직접 해보고 적은 공략입니다. 저는 30회 클리어를 해봤습니다. 게임은 링크에서 직접 플레이하실 수 있습니다. 게임 같이하는 법이나 자쿰 잡으면 뭐가 좋은지 등 많이들 궁금해 하시는 내용은 글 마지막에 있습니다. 기본적인 게임 방법 기본적인 룰은 원랜디와 비슷합니다. 1~10 레벨에 대한 타워가 존재하며 같은 레벨의 타워를 2개씩 합쳐서 높은 레벨의 타워를 만들고, 라운드마다 등장하는 일반 몹과 보스 몹을 잡아 라이프를 지키는 게임입니다. 9레벨 이상의 타워부터는 특정 타워를 조합해서 만들 수 있습니다. 그래서 물딜/마딜 루트를 정해 놓고 방깍/마방깍을 통해 딜이 박힐 수 있게 세팅하고, 적당한 CC기(슬로우, 스턴 등)로 안정적인 딜링을 할 수 있도록 조합을 해주어야 합니다. 특히 특정 종류의 타워를 생성하면 받게 되는 시너지를 받도록 조합을 하는 것이 좋습니다. 단 원랜디와 가장 큰

Spring 에러 해결 - Cannot resolve parameter names for constructor (@ModelAttribute 관련) [내부링크]

작성한 코드 IP 정보를 표현하기 위해 문자열 ip와 숫자인 port 필드를 가지는 IpPort 클래스입니다. public class IpPort { private String ip; private int port; public IpPort(String ip, int port) { this.ip = ip; this.port = port; } } 그리고 타임리프로 작성한 폼에 데이터를 뿌려주기 위해 Form 클래스를 작성했습니다. lombok의 `@Data` 어노테이션을 추가하고 생성자를 넣어주었습니다. @Data static class Form { private IpPort ipPort; public Form(IpPort ipPort) { this.ipPort = ipPort; } } 컨트롤러 코드입니다. `/converter/edit` 경로에 대해 Get, Post 메서드를 작성했습니다. Get: IpPort라는 객체를 생성한 뒤 Form 객체에 담아 모델의 어트리뷰트에 넣어 뷰로

Spring JPA 연관관계 매핑 정리 (단방향, 양방향, 다대일, 일대다, 일대일, 다대다) [내부링크]

연관관계 매핑 Spring JPA 연관관계 매핑에 대해 정리해보겠습니다. 관계형 DB를 객체로 연결하기 위해서 ORM 기술인 JPA를 사용하는데요. 연관관계 매핑이 필요한 이유는 관계형 DB에서 테이블 간의 관게를 맺기 위한 외래키에 있습니다. 멤버와 팀 테이블이 N:1 관계로 매핑되어 있다고 합시다. 멤버 팀 아이디 이름 팀 아이디(FK) 아이디 팀 이름 그러면 N측인 멤버에 소속 팀을 표현하기 위해 팀 아이디를 외래키로 설정합니다. 그러면 팀 아이디를 통해 멤버가 속한 팀을 확인할 수 있고, 팀에 포함된 멤버를 확인할 수 있습니다. 이것을 객체로 표현해보겠습니다. 멤버 public class Member { @Id @GeneratedValue private Long id; private String name; private String teamId; } 팀 public class Team { @Id @GeneratedValue private Long id; private Stri

코딩 대결 웹 사이트 - 프로젝트 기록 1주차 [내부링크]

0일차 주제 선정 코딩 문제 풀이 사이트를 제작하기로 함. 핵심 기능은 사람을 매칭해서 누가 먼저 코딩 문제를 푸는지 대결하는 것임. 승패를 통해 자신의 티어가 정해지기 때문에 게임을 하듯이 코딩 문제를 풀 수 있음. 프로젝트 세팅 웹 프로젝트이며 프론트엔드는 vue, 백엔드는 springboot을 사용할 예정. front와 back의 Git 레포지토리를 분리해서 세팅함. 프론트엔드 세팅을 위해 npm으로 vue 최신 버전의 프로젝트 생성. npmt init vue prettier 및 eslint 설정하여 컨벤션 기본 룰 사용. github action을 통해 CI를 적용할 것임. github marketplace에 action 예제들을 참고해서 구성 가능함. 아래는 eslint를 돌려서 컨벤션에 문제가 없는지 확인하고 빌드를 체크하는 yml 파일임. name: reviewdog on: [pull_request] jobs: eslint: name: runner / eslint run

코딩 대결 웹 사이트 - 프로젝트 기록 2주차 [내부링크]

6일차 스프링 프로젝트에 대한 몇 가지 고민 사항. 한 컨트롤러에서 여러 서비스를 주입해서 사용해도 괜찮을지. 개인적으로는 레포지토리에서 필요한 DB를 조인해서 데이터를 가져오는 것이 각 패키지의 독립성을 유지할 수 있다고 생각함. 컨트롤러에서 서비스를 가져오는 방법 말고, 서비스에서 다른 서비스를 가져와서 쓰는 방법도 가능해보이기는 함. 참고 에러 처리를 컨트롤러 단에서 할 지 서비스 단에서 할 지. 어떤 에러이냐에 따라 다르겠지만, 주로 요청한 리소스(데이터)가 없거나 중복되는 데이터의 생성 등 DB의 데이터와 관련된 에러는 서비스에서 다뤄주는 것이 좋을 것 같다고 생각함. 경우에 따라서는 DTO에서 에러를 처리할 수도 있을 것 같음. 참고 물론 두 가지 모두 정답이 있는 고민은 아닌 것 같음. JPA 활용해서 Room 조회 구현. 컨트롤러 @RestController @RequestMapping("/room") public class RoomController { @Autowi

코딩 대결 웹 사이트 - 프로젝트 기록 3주차 [내부링크]

11일차 Vue 프론트엔드 작업. 사이트 특성 상 네비게이션바가 딱히 불필요하여 컴포넌트를 App에 직접 추가하는 대신 view-router만 추가. <router-view></router-view> vue에서 table을 만들 때 tbody를 자동으로 만들어주는데, @click 이벤트를 등록하면 tobody가 사라지는 기이한 현상이 있음. 비슷한 현상 참고. css 적용 시 full xpath로 넣지 않도록 주의할 필요가 있음. 추후 게임 도중에 뒤로 가기를 방지할 수 있도록 네비게이션 가드를 넣어줄 필요가 있음. 메인 화면의 사이드 바 구성. 12일차 메인 페이지 마저 구현. 부트스트랩 활용하여 css 정성스럽게 적용. 랭크 티어 설명하는 툴팁 추가. html <div id="rank-tier-help" class="custom-tooltip"> ?<span class="custom-tooltiptext" >티어는 랭크 모드 결과를 통해 정해지집니다. <br /> 각 티어별로 5

코딩 대결 웹 사이트 - 프로젝트 기록 4주차 및 마무리 [내부링크]

16일차 중간 발표 시연을 위해 프론트엔드 주소 라우팅 설정. 백엔드에서 방 전체 목록 출력 시 정렬 기준 수정. 최근에 생성된 방 및 대기방이 먼저 출력되도록 수정. jpa 작성 방법 참고. findAllBy~가 아닌 findBy~ 형태로 메서드를 작성해야 함. 라우팅에 대한 고민. 네이버 블로그에서 글 메뉴 클릭 시 url이 변경되지 않으면서 페이지는 바뀌고, 브라우저 뒤로가기 버튼이 정상적으로 동작하는 것을 적용하고 싶었음. 서치해도 적절한 방법을 찾기 어려웠고, url을 유지한 채 방문한 기록들을 컴포넌트의 상태에 저장해야 하나 싶음. 우선은 포기하고, path parameter나 query string 쓰는 것이 좋을듯. css 편하게 하려고 부트스트랩을 사용해보았는데, 어떤 css가 적용되어 있는지 모르니 커스텀하기가 까다로움. 수정 작업하느라 일을 두 번 하게 됨.. 백엔드 페이징 처리를 했었는데, 정작 Page에 대한 값을 반환하지 않아서 수정. 서비스에서 아래와 같이

스프링 기본(5) - 빈 스코프 [내부링크]

빈 스코프 종류 스프링 빈은 싱글톤 스코프로 생성됨. 이 외에 프로토타입, request, session, application 같은 것들이 있음. 프로토타입 스코프 싱글톤 스코프에 빈은 항상 같은 빈을 반환하지만, 프로토타입 스코프에서는 매번 새로운 인스턴스를 반환함. 스프링 컨테이너는 프로토타입 빈을 생성하고, 의존관계 주입, 초기화까지만 처리함. 싱글톤 스코프 테스트 결과 각각 생성한 두 개의 빈은 같은 빈을 가리킴. public class SingletonTest { @Test void singletonBeanFind() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SingletonBean.class); SingletonBean singletonBean1 = ac.getBean(SingletonBean.class); SingletonBean singletonBean2 = ac.

HTTP 웹 기본 지식 (1) - 인터넷 네트워크, URI 웹 브라우저, HTTP [내부링크]

인터넷 네트워크 IP(인터넷 프로토콜) 컴퓨터 통신은 클라이언트와 서버가 복잡한 인터넷 망을 통해서 이루어짐. IP의 역할 지정한 IP 주소에 데이터 전달. 패킷이라는 통신 단위로 데이터 전달. IP 한계 패킷을 받을 대상이 없거나 서비스 불능이어도 패킷을 전송함. 패킷이 중간에 사라지거나 순서대로 안 올 수 있음. 같은 IP를 사용하는 서버의 애플리케이션이 두 개 이상일 수 있음. 이러한 한계를 극복하기 위한 방법을 생각하며 다음 내용을 학습하면 좋음. TCP 전송 제어 프로토콜. 인터넷 프로토콜은 애플리케이션, 전송, 인터넷, 네트워크 인터페이스 계층으로 이루어지며 TCP는 전송 계층의 프로토콜 중 하나임. 각 계층을 통과할 때마다 패킷에 여러 정보를 덧씌움. TCP 특징 3 way handshake를 통한 가상 연결. 데이터 전달 보증. 패킷 순서 보장. UDP 사용자 데이터그램 프로토콜. TCP와 반대로 연결을 하지 않고 데이터 전달을 보증하지 않으며 패킷 순서를 보장하지 않

HTTP 웹 기본 지식 (2) - HTTP 메서드 활용, 상태코드 [내부링크]

HTTP 메서드 API URI 설계 중요한 것은 리소스 식별임. 회원 등록, 수정, 조회가 리소스가 아니라 "회원"이라는 개념이 리소스임. 따라서 "/members/{id}"와 같은 복수단어로 설계함. 대신 행위를 구분하기 위해 HTTP 메서드를 설정. HTTP 메서드 종류 GET: 리소스 조회. POST: 요청 데이터 처리, 주로 등록에 사용. PUT: 리소스를 대체, 해당 리소스가 없으면 생성. PATCH: 리소스 부분 변경. DELETE: 리소스 삭제. 이 외 HEAD, OPTIONS, CONNECT, TRACE가 있음. GET 쿼리 스트링을 통해 서버에 데이터를 전달. 바디를 사용할 수도 있지만 권장하지 않음. POST 메시지 바디를 통해 서버로 요청 데이터 전달. 주로 전달된 데이터로 신규 리소스 생성함. 혹은 프로세스 처리에 사용. (ex. 결제 완료 -> 배달 시작 -> 배달 완료) 다른 메서드로 처리하기 애매한 경우에 사용해도 됨. PUT, PATCH 클라이언트가 리소

Vue.js 이벤트와 css, todo list 만들기, npm init, props [75일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223260321406 ES6 문법, Vue.js의 디렉티브와 methods, computed, watch [74일차] 이전 학습 내용: https://blog.naver.com/easeon11/223259349885 이번 시간에는 Vue.js를 배우기 전 ES6... blog.naver.com 이번 시간에는 vue.js에서 이벤트를 다뤄보았고, css를 적용해보았습니다. 그리고 배웠던 내용들로 todo list를 만들어보았습니다. 마지막엔 npm init으로 vue 프로젝트를 생성해보고, 컴포넌트와 props를 이용해보았습니다. 이벤트 Vue.js에서 여러 이벤트를 다뤄보겠습니다. 먼저 클릭 이벤트인데, `v-on` 디렉티브를 붙여서 버튼에 `v-on:click`처럼 작성합니다. 사용자에게 숫자를 입력 받아서 입금 및 출금을 하는 화면을 구성해보았습니다. 출금할 때는 잔액이 출금액보다 작은 경우 출금을 하지

Vue.js 컴포넌트 간 이벤트 전달 및 props로 유효성 검사하기, todo list 만들기 [76일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223263161037 Vue.js 이벤트와 css, todo list 만들기, npm init, props [75일차] 이전 학습 내용: https://blog.naver.com/easeon11/223260321406 이번 시간에는 vue.js에서 이벤트를 다뤄... blog.naver.com 이번 시간에는 vue.js에서 컴포넌트로 이벤트를 전달해 자식 컴포넌트에서 부모 컴포넌트의 data를 수정하는 방법을 알아보았습니다. 그리고 이를 이용해 유효성 검사도 해보았고요. 마지막으로 지난 번에 만들었던 todo list를 컴포넌트 단위로 쪼개서 구현했습니다. 컴포넌트 간 이벤트 전달 Vue에서 부모 컴포넌트에서 정의된 data를 자식 컴포넌트에서 수정할 일이 생길 때, 해당 data를 직접 수정하는 것은 권장되지 않습니다. 그보다는 부모 컴포넌트에서 data에 대해 처리해줄 이벤트를 정의하고, 이를 자식 컴포

Vue.js 컴포넌트의 라이프사이클, 동적 컴포넌트, 라우터 [77일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223263658867 Vue.js 컴포넌트 간 이벤트 전달 및 props로 유효성 검사하기, todo list 만들기 [76일차] 이전 학습 내용: https://blog.naver.com/easeon11/223263161037 이번 시간에는 vue.js에서 컴포넌트로 이... blog.naver.com 이번 시간에는 지난 번에 구현한 todo list를 다른 방식으로 구현해보고, 컴포넌트의 라이프 사이클, 컴포넌트 간 template 전달, 동적 컴포넌트, 라우터와 동적 라우팅과 같은 vue의 다양한 기능을 실습했습니다. Todo List 지난 시간에 했던 todo list는 최상단 App 컴포넌트에서 todo list의 상태를 관리했었는데요. 이번에는 그 자식 컴포넌트에서 상태를 관리하는 코드입니다. HTML, CSS는 제외하고 스크립트 코드만 살펴보겠습니다. AppTodo.vue <script> imp

Vue.js 프로젝트 예시 (카페 주문) [78~79일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223265456788 Vue.js 컴포넌트의 라이프사이클, 동적 컴포넌트, 라우터 [77일차] 이전 학습 내용: https://blog.naver.com/easeon11/223263658867 이번 시간에는 지난 번에 구현한 todo lis... blog.naver.com 이번에는 간단한 카페 음료 주문 페이지를 Vue로 구현해보았습니다. 프로젝트 구조 전체 프로젝트 구조는 아래와 같습니다. components, pages, router로 구분되어 있습니다. 라우터 router/index.js vue-router를 이용한 라우터 경로는 아래와 같이 설정되어 있습니다. const router = createRouter({ history: createWebHistory(), routes: [ { path: '/', component: Home }, { path: '/login', component: Login

스프링 기본(3) - 싱글톤, 컴포넌트 스캔과 빈 [내부링크]

싱글톤 필요성 웹 어플리케이션은 요청을 할 때마다 새로운 객체가 만들어짐. 테스트 코드. @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer() { AppConfig appConfig = new AppConfig(); // 1. 조회: 호출할 때마다 객체를 생성 MemberService memberService1 = appConfig.memberService(); // 2. 조회: 호출할 때마다 객체를 생성 MemberService memberService2 = appConfig.memberService(); // 참조값이 다른 것을 확인 System.out.println("memberService1 = " + memberService1); System.out.println("memberService2 = " + memberService2); // memberService1 != memberService2 Assertions.a

Docker로 DB + JPA 띄우기, docker compose, MSA에서 Hystrix 사용해보기 [72일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223257246258 JPA 프로젝트 구조, MSA 개요, Docker로 Springboot 실행하기 [71일차] 이전 학습 내용: https://blog.naver.com/easeon11/223256518631 이번 시간에는 jpa 프로젝트를 다룰 때 알... blog.naver.com 이번 시간에는 Dokcer를 이용해 오라클 DB를 띄워보고 접속해보았습니다. 그리고 Docker에 띄운 DB를 접근하는 컨테이너를 만들어 보았고, docker compose로 여러 컨테이너를 실행해보았습니다. 마지막으로 MSA 프로젝트에서 유의할 점과 장애 전파 차단을 위한 Hystrix 라이브러리를 써봤습니다. Docker로 DB 띄우기 maven build를 통해 생성된 jar 파일은 다음과 같이 구성됩니다. 정의된 클래스나 실행에 필요한 라이브러리, 실행에 필요한 메타 정보 등이 들어 있습니다. 이렇게 만들어진 jar

MSA를 위한 Service Mesh와 Spring cloud, Vue.js 프레임워크와 ES6 [73일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223258349456 Docker로 DB + JPA 띄우기, docker compose, MSA에서 Hystrix 사용해보기 [72일차] 이전 학습 내용: https://blog.naver.com/easeon11/223257246258 이번 시간에는 Dokcer를 이용해 오라클 ... blog.naver.com 이번 시간에는 MSA를 잘 만들기 위한 Service Mesh에 대해 알아보고 이를 Spring cloud에서 어떻게 구현하는지 살펴보았습니다. 그리고 프론트엔드 프레임워크인 Vue.js를 익히기 전에 ES6 문법을 정리하였습니다. Service Mesh 클라우드 네이티브 앱을 개발하기 위해서는 DevOps, CI/CD, Container 등 고려해야 할 것이 많은데, 그 중에서도 안정적이고 스케일링이 용이한 마이크로서비스 개발을 하기 위해 고려해야 하는 것을 알아볼 것입니다. 주로 Service D

ES6 문법, Vue.js의 디렉티브와 methods, computed, watch [74일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223259349885 MSA를 위한 Service Mesh와 Spring cloud, Vue.js 프레임워크와 ES6 [73일차] 이전 학습 내용: https://blog.naver.com/easeon11/223258349456 이번 시간에는 MSA를 잘 만들기 위한 ... blog.naver.com 이번 시간에는 Vue.js를 배우기 전 ES6 문법 일부를 추가적으로 학습했습니다. 그리고 Vue.js의 문법인 디렉티브를 사용해보고, data() 외의 다른 프로퍼티들을 알아보았습니다. ES6 reduce const arr = [20, 30, 10]; let total = 0; // 합 arr.forEach((value, index, array) => { total += value; console.log(`[${index}]값은 ${value}, 합은${total}`); }) console.log(`forEa

스프링 기본(4) - 빈 생명주기 콜백 [내부링크]

빈 생명주기 콜백 애플리케이션이 시작하고 종료되는 시점에서 DB의 커넥션 풀이나 네트워크 소켓 등이 어떻게 관리되는 지 알아볼 것임. 스프링 빈은 객체 생성 후에 의존관계 주입이 됨. public class NetworkClient { private String url; public NetworkClient() { System.out.println("생성자 호출, url = " + url); connect(); call("초기화 연결 메시지"); } public void setUrl(String url) { this.url = url; } // 서비스 시작 시 호출 public void connect() { System.out.println("connect: " + url); } public void call(String message) { System.out.println("call: " + url + " message = " + message); } // 서비스 종료 시 호출 p

스프링부트 QueryDSL, Entity, 엔티티 연관관계 [67일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223250718165 JPA 엔티티, JPQL 및 쿼리 메서드 코드 예제 [66일차] 이전 학습 내용: https://blog.naver.com/easeon11/223248382198 이번 시간에는 JPA 엔티티를 설정해보... blog.naver.com 이번 시간에는 QueryDSL을 실습하고 엔티티 연관관계 중 단방향 연관관계에 대해 학습했습니다. QueryDSL QueryDSL은 문자열이 아닌 코드로 쿼리를 작성함으로써 컴파일 단계에서 에러 체크가 불가능하던 JPQL의 문제를 보완한 오픈 소스 빌더 API입니다. 이를 사용하기 위해서 depedency 및 pluigin을 설치해주어야 합니다. pom.xml <!-- QueryDSL APT Config --> <dependency> <groupId>com.querydsl</groupId> <artifactId>querydsl-apt</artifactId>

[Java] 객체지향을 위한 클래스 기본 [내부링크]

남이 만든 클래스 클래스 안에는 변수, 메서드 같은 것들이 많아지면서 연관된 주제들끼리 한 곳에 묶어놓은 껍데기 같은 것입니다. 예를 들어, Math라는 클래스 안에는 수학과 관련된 변수와 메서드가 들어있습니다. FileWriter도 마찬가지로 파일과 관련된 처리를 해주는데, 일회성으로 직접 사용하는 Math와는 달리 FileWriter는 new를 이용해 복제본을 만들고 긴 흐름의 작업을 합니다. public class OthersOOP { public static void main(String[] args) throws IOException { System.out.println(Math.PI); System.out.println(Math.floor(1.8)); System.out.println(Math.ceil(1.8)); FileWriter f1 = new FileWriter("data.txt"); f1.write("Hello"); f1.write(" Java"); FileWri

JPA 양방향 연관관계 (일대다/일대일) [68일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223251820066 스프링부트 QueryDSL, Entity, 엔티티 연관관계 [67일차] 이전 학습 내용: https://blog.naver.com/easeon11/223250718165 이번 시간에는 QueryDSL을 실습하고 ... blog.naver.com 이번 시간에는 jpa 일대일 및 일대다 양방향 연관관계에 대해 실습하였습니다. 그리고 복합키를 매핑하는 법에 대해 알아보았습니다. 일대다 양방향 연관관계 엔티티가 양쪽에서 관계를 가지면 양방향 연관관계입니다. 일대다의 관계라면 @ManyToOne, @OneToMany만 잘 추가해주면 됩니다. 또 @JoinColumn 설정을 해주어야 합니다. C.java 회원 엔티티로서 한 명의 회원이 여러 게시글과 관계를 맺을 수 있으므로 @OneToMany입니다. @JoinColumn은 N쪽인 자식의 키인 b_id를 넣어줍니다. @OneToMany @JoinC

[Java] 상속에 대해서 [내부링크]

상속 상속은 기존의 클래스가 가지고 있던 변수와 메서드를 확장해서 쓸 수 있도록 만들어, 재사용성을 높이고, 유지보수의 편의성을 높이며, 가독성을 높이고, 코드의 양을 줄일 수 있도록 해줍니다. class Cal { public int sum(int v1, int v2) { return v1 + v2; } } class Cal2 extends Cal { public int minus(int v1, int v2) { return v1 - v2; } } public class IngeritanceApp { public static void main(String[] args) { Cal2 c2 = new Cal2(); System.out.println(c2.sum(2, 1)); // 3 System.out.println(c2.minus(2, 1)); // 1 } } 덧셈 기능을 하는 Cal 클래스를 extends로 상속 받아 minus 기능을 추가하는 모습입니다. Cal 클래스는 아래에서

Spring JPA Dirty Checking, ModelMapper [69일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223252888533 JPA 양방향 연관관계 (일대다/일대일) [68일차] 이전 학습 내용: https://blog.naver.com/easeon11/223251820066 이번 시간에는 jpa 일대일 및 일대다 양방... blog.naver.com 이번 시간에는 jpa의 dirty checking에 대해서 알아보고 ModelMapper 라이브러리로 DTO와 Entity를 변환하는 방법을 학습했습니다. 연관관계 양방항 연관관계는 @OneToMany를 부모쪽에 @ManyToOne을 자식쪽에 작성해서 일대다 관계를 연결합니다. @JoinColumn을 이용하면 FK를 지정할 수 있습니다. 이때 부모쪽에는 mappedBy로 자식엔티티의 FK를 지정할 수도 있습니다. 부모 행 삭제 시 연결된 자식 행을 NULL로 업데이트 후 부모 행을 삭제하게 되는데, 이때 키 값을 NULL로 바꾸려는 에러가 발생할 수 있습니다.

Spring JPA 활용한 게시판 제작 [70일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223254734870 Spring JPA Dirty Checking, ModelMapper [69일차] 이전 학습 내용: https://blog.naver.com/easeon11/223252888533 이번 시간에는 jpa의 dirty checking에 대... blog.naver.com 이번에는 예전에 mybatis로 만들었던 게시판을 JPA로 만드는 실습 시간을 가졌습니다. Spring JPA 게시판 전체 프로젝트 구조입니다. com.my.board SpringbootBoardApplication.java @SpringBootApplication로 스프링부트 앱을 시작하는 코드가 있습니다. com.my.board.advice MyBoardControllerAdvice.java @RestControllerAdvice와 @ExceptionHandler로 예외 발생 시 실행될 AOP 코드가 있습니다. MyBo

JPA 프로젝트 구조, MSA 개요, Docker로 Springboot 실행하기 [71일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223256518631 Spring JPA 활용한 게시판 제작 [70일차] 이전 학습 내용: https://blog.naver.com/easeon11/223254734870 이번에는 예전에 mybatis로 만들었던 게시... blog.naver.com 이번 시간에는 jpa 프로젝트를 다룰 때 알면 좋을 내용을 정리하였습니다. 그리고 MSA에 대한 기초 설명 후 스프링부트를 Docker 환경에서 실행해보는 실습을 진행했습니다. JPA 프로젝트 구조 Entity는 객체가 생성될 때만 값을 넣을 수 있도록 setter를 사용하는 대신 빌더 패턴을 활용하는 것이 좋습니다. @DynamicInsert 어노테이션을 이용하면 데이터 삽입 시 널 값을 제외시킬 수 있습니다. @Getter @NoArgsConstructor @AllArgsConstructor @ToString @Builder @Entity @Table(nam

Spring boot 게시판 답글 기능 구현하기, logback을 활용한 로깅 [64일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223246449053 스프링부트로 CRUD 게시판 만들기, jUnit 테스트 코드 포함 [63일차] 이전 학습 내용: https://blog.naver.com/easeon11/223245377099 이번 시간에는 게시판을 만들기 위한 DB... blog.naver.com 이번 시간에는 logback을 이용해 로깅을 해보고, 게시판의 답글 기능을 구현해보았습니다. 로깅 로그 출력을 위한 라이브러리로 Logback을 사용해볼 것입니다. Logback은 SLF4J의 구현체로 스프링 부트에는 기본적으로 설치되어 있어서 추가 설치를 하지 않아도 됩니다. Logback의 로그 레벨은 TRACE < DEBUG < INFO < WARN< ERROR 순서로 존재합니다. 설정한 레벨 이상의 로그 레벨이 출력 되도록 할 수 입습니다. application.properties에서 아래 설정을 추가해줍니다. 그럼 DEBUG 레벨

[20.Blog] 기록이 쌓이면 지식 된다 [내부링크]

블로그를 운영하는 취지처럼 내가 쌓은 기록은 나의 지식이 된다고 생각합니다. 과거에 했던 기억들을 보기 위해 블로그를 들락날락하면서, 항상 적어두길 잘했다고 생각하고 있어요. 또 내 기록이 누군가에게도 도움이 된다고 생각하면 더 기분 좋고요 ㅎㅎ 네이버 블로그 20주년 캠페인 기록이 쌓이면 뭐든 된다! 모든 기록이 뭐든 될 수 있는 곳, 블로그 https://mkt.naver.com/p1/blog-20th-anniversary

[20.Blog] 10월 26일 오늘의 블로깅 [내부링크]

오늘의 키워드 포트폴리오로 쓸 웹 서비스 고민 중 c️ 오늘의 날씨 가을이 될락 말락 오늘의 BGM 유다빈밴드의 letter 오늘의 식사 탕짜밥 ️ 오늘의 대화 시간이 빠르게 흘러간다 오늘의 소비 매머드커피 아메리카노 오늘의 행복 금요일 D-1 네이버 블로그 20주년 캠페인 기록이 쌓이면 뭐든 된다! 모든 기록이 뭐든 될 수 있는 곳, 블로그 https://mkt.naver.com/p1/blog-20th-anniversary

스프링 기본(2) - 스프링 기본 환경, 컨테이너, 빈 [내부링크]

좋은 객체 지향 설계 적용 SRP: 단일 책임 원칙, 구현 객체를 생성하고 연결하는 AppConfig를 만들어 관심사 분리. DIP: 의존관계 역전 원칙, 의존성 주입을 외부에 넘김으로써 구체화가 아닌 추상화에 의존. OCP: AppConfig가 어떤 의존관계를 사용하더라도 사용 영역의 변경이 닫혀 있음. IoC, DI, 컨테이너 클라이언트 구현 객체는 자신의 로직을 실행하는 역할만 담당하고, 프로그램의 제어 흐름은 AppConfig가 가져가도록 하는 것, 즉 프로그램의 제어 흐름을 외부에서 관리하는 것을 제어의 역전(IoC)이라고 함. 프레임워크는 내가 작성한 코드를 직접 제어하고 실행하지만, 내가 작성한 코드가 직접 제어의 흐름을 담당하면 라이브러리임. 의존관계는 정적인 클래스 의존관계(애플리케이션을 실행하지 않아도 분석 가능)와 실행 시점에 결정되는 동적인 객체(인스턴스) 의존관계(이렇게 의존관계가 연결되는 것을 의존관계 주입이라고 함)가 있음. AppConfig처럼 객체 생성

스프링부트 properties, 유효성 검사, JPA 개요 [65일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223247289630 Spring boot 게시판 답글 기능 구현하기, logback을 활용한 로깅 [64일차] 이전 학습 내용: https://blog.naver.com/easeon11/223246449053 이번 시간에는 logback을 이용해 로깅을 ... blog.naver.com 이번 시간에는 스프링부트에서 properties를 이용해 프로젝트를 설정해보았고, 유효성 검사를 해보았습니다. 그리고 JPA에 개요 부분을 다뤘습니다. properties 파일로 프로젝트 설정 application.properties와 같은 파일로 프로젝트를 설정한다면 설정 값을 바꾸는 등 관리하기가 용이해집니다. application.properties server.port=8882 server.servlet.context-path=/springboard logging.level.root=warn logging.file.

JPA 엔티티, JPQL 및 쿼리 메서드 코드 예제 [66일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223248382198 스프링부트 properties, 유효성 검사, JPA 개요 [65일차] 이전 학습 내용: https://blog.naver.com/easeon11/223247289630 이번 시간에는 스프링부트에서 properties... blog.naver.com 이번 시간에는 JPA 엔티티를 설정해보고 영속성 컨텍스트를 다루기 위한 메서드를 사용해보았습니다. 그리고 Jpql과 쿼리 메서드에 대해 실습했습니다. JPA 엔티티 JPA 객체가 관리되기 위해서는 @Entity 어노테이션이 필요합니다. 그리고 엔티티 객체의 키가 되기 위한 필드에는 @Id 어노테이션을 붙여줍니다. JPA 연결을 위한 application.properties는 다음과 같이 설정했습니다. server.port=8883 spring.jpa.database=oracle spring.jpa.hibernate.ddl-auto=updat

스프링 DB 연결(JDBC, mybatis), 어노테이션 [58일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223241450705 스프링 개요, 자바 용어 정리 [57일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223240666813 프로젝트를 마무리 하고 이번 시간부터는... blog.naver.com 이번 시간에는 스프링에 jdbc와 mybatis를 연결하고, 어노테이션에 대해 알아보았습니다. 스프링 용어 정리 POJO Plain Old Java Object는 자바 언어 외에 어떤 제약도 받지 않는 개체입니다. 스프링의 자바빈은 POJO와 같은 말입니다. 아래는 POJO가 아닙니다. public class Foo extendhs javax.servlet.http.HttpServlet pulic class Bar implements javax.ejb.EntityBean @javax.ejb.Entity public class Baz 스프링은 애플리케이션 프레임워크로 웹 외에도

코드를 통해 익히는 스프링 MVC 구조 [59일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223241454969 스프링 DB 연결(JDBC, mybatis), 어노테이션 [58일차] 이전 학습 내용: https://blog.naver.com/easeon11/223241450705 이번 시간에는 스프링에 jdbc와 mybatis를... blog.naver.com 이번 시간에는 XML로 연결했던 스프링 코드를 Java로 바꾸고, 스프링 구조에 대해 익히는 시간을 가졌습니다. XML to Java XML 코드를 자바 코드로 만들려면 @Configuration, @Bean 어노테이션을 이용해야 합니다. 기존에 아래와 같이 xml에서 bean 설정을 했었는데요. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSch

스프링 파일 업로드 및 다운로드, 상품 주문 사이트의 컨트롤러 [60일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223241459976 코드를 통해 익히는 스프링 MVC 구조 [59일차] 이전 학습 내용: https://blog.naver.com/easeon11/223241454969 이번 시간에는 XML로 연결했던 스프링 ... blog.naver.com 이번에는 스프링에서 파일 업로드 및 다운로드 어떻게 처리해야 하는지 다뤄보았고, 이전에 서블릿으로만 구현했던 상품 주문 사이트에 컨트롤러들로 포팅하면서 스프링을 익혔습니다. 파일 업로드 및 다운로드 스프링은 객체를 반환하면 JSON 형태로 반환해주는데, 이때 라이브러리에 설치해둔 jackson을 사용합니다. 만약 객체 형태로 반환했을 때 JSON 형태로 데이터가 반환되지 않는 경우 mvc:annotation-driven 설정을 확인해 볼 필요가 있습니다. 각설하고 Apache Commons FileUpload 라이브러리를 이용해 파일을 업로드하는 것을 해보려고 합니다

스프링 AOP, 트랜잭션, JAVA 코드로 Bean 설정하기 [61일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223243768084 스프링 파일 업로드 및 다운로드, 상품 주문 사이트의 컨트롤러 [60일차] 이전 학습 내용: https://blog.naver.com/easeon11/223241459976 이번에는 스프링에서 파일 업로드 및 다운... blog.naver.com 이번 시간에는 스프링의 AOP에 대해 알아보고 트랜잭션 처리를 위한 @Transactional을 알아보았습니다. 그리고 xml 파일 대신 java로 빈 컨테이너 설정을 해보았습니다. AOP 스프링 컨테이너는 빈 객체를 관리하는 컨테이너 역할을 합니다. 여러 컨테이너 형태 중에서 ApplicationContext 인터페이스를 사용(ClassPathXmlApplicationContext)하면 AOP, 메시지 지원, 국제화 지원 등 추가적인 기능을 제공해줍니다. 기능 구현 로직 중 메시지를 출력하는건 부가 로직으로, 실제 기능 동작을 하는 로직은 핵

스프링 log4j 로그 및 jUnit 테스트, 스프링부트 시작 [62일차] [내부링크]

이전 학습 내용:https://blog.naver.com/easeon11/223244320897 스프링 AOP, 트랜잭션, JAVA 코드로 Bean 설정하기 [61일차] 이전 학습 내용: https://blog.naver.com/easeon11/223243768084 이번 시간에는 스프링의 AOP에 대해 알... blog.naver.com 이번 시간에는 log4j를 이용해 로그를 띄우는 것을 자세히 알아보고, jUnit으로 테스트 코드를 작성해보았습니다. 그리고 스프링부트로 게시판을 만들기 전 프로젝트 설정과 컨트롤러 생성을 진행했습니다. 로그 확인하기 log4j와 같은 라이브러리는 프로그램 동작 중에 타임스탬프를 비롯해 실행 경과에 대한 로그로 남길 목적으로 사용합니다. log4j에서 로그는 등급 별로 여러 레벨이 존재합니다. 아래 xml 파일로 설정 가능합니다. log4j.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:c

스프링부트로 CRUD 게시판 만들기, jUnit 테스트 코드 포함 [63일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223245377099 스프링 log4j 로그 및 jUnit 테스트, 스프링부트 시작 [62일차] 이전 학습 내용:https://blog.naver.com/easeon11/223244320897 이번 시간에는 log4j를 이용해 로그를 띄우... blog.naver.com 이번 시간에는 게시판을 만들기 위한 DB를 구성하고, CRUD를 할 수 있는 게시판 코드를 작성했습니다. 게시판 DB 스프링부트로 게시판을 만들기에 앞서 아래와 같이 DB 테이블을 생성했습니다. 게시글이 들어있는 board와 답글이 있는 board_reply 테이블이 있고, 간단한 데이터가 들어가 있습니다. --게시글 테이블 create table board( board_no number, -- 게시글 번호 board_title varchar2(50), -- 게시글 제목 board_content varchar2(100), -- 게시글 내용

DispatcherServlet으로 컨트롤러 관리하기, 싱글톤과 프론트컨트롤러 패턴 [44일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223233284515 Java Servlet 파일 통신 (업로드/다운로드) [43일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223232319074 이번 시간에는 서블릿을 통해 파일을 업... blog.naver.com 이번 시간에는 파일 업로드, 다운로드에 대해 한 번 정리하고 백엔드 코드에서 서블릿과 컨트롤러를 어떻게 관리하는 것이 좋은지 배웠습니다. 그리고 WAR 파일에 대해 알아보았습니다. blob 크기가 큰 이진 데이터를 처리할 때 서버에서는 아래와 같이 헤더를 설정합니다. response.setContentType("application/octet-stream;charset=UTF-8"); 그럼 ajax로 요청을 받을 때 아래와 같은 필드를 추가해주어야 합니다. xhrFields: { responseType: "blob", }, 이런 식으로 파일을 주고 받을

공연 서비스 웹 프로젝트 1주차 기록 - 프론트엔드 컨벤션, DB 테이블 및 트리거 생성 [45~47일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223239630064 DispatcherServlet으로 컨트롤러 관리하기, 싱글톤과 프론트컨트롤러 패턴 [44일차] 이전 학습 내용: https://blog.naver.com/easeon11/223233284515 이번 시간에는 파일 업로드, 다운로드에 ... blog.naver.com 지금까지 배운 내용을 바탕으로 3주 동안 프로젝트를 진행하게 되었습니다. 프로젝트 주제는 콘서트, 뮤지컬, 연극 등 공연 정보에 대한 제공과 리뷰 정보를 남길 수 있도록 기능을 제공하는 웹 사이트를 만드는 것입니다. 웹 서비스의 이름은 쇼팬(showfan)인데, 공연을 좋아하는 팬이라는 의미입니다.ㅎㅎ 9.25 프로젝트의 주제와 요구 사항(기능) 등에 대해서는 프로젝트가 본격적으로 시작되기 전에 팀원들과 논의하면서 미리 사전 작업을 진행했습니다. 저는 추가로 피그마 작업을 진행했습니다. 당일에는 팀 규칙에 대해 논의하는 시

공연 서비스 웹 프로젝트 2주차 기록 - KOPIS OPEN API의 XML 파싱 및 AWS S3 이미지 저장 [48~51일차] [내부링크]

이전 프로젝트 기록: https://blog.naver.com/easeon11/223240145728 공연 서비스 웹 프로젝트 1주차 기록 - 프론트엔드 컨벤션, DB 테이블 및 트리거 생성 [45~47일차] 이전 학습 내용: https://blog.naver.com/easeon11/223239630064 지금까지 배운 내용을 바탕으로 3주 동안 ... blog.naver.com 10/2 공연 포스터를 화면에 보기 좋게 보여주기 위한 캐러셀 슬라이드를 구현했습니다. 이전에 구현한 코드가 있었기에, 직접 구현하려고 했습니다. https://github.com/leejaeseong11/elice-blog/blob/main/script.js {"payload":{"allShortcutsEnabled":false,"fileTree":{"":{"items":[{"name":"css","path":"css","contentType":"directory"},{"name":"html","path"

공연 서비스 웹 프로젝트 3주차 기록 - 프론트와 백의 역할 분담에 대해 [52~55일차] [내부링크]

이전 프로젝트 기록: https://blog.naver.com/easeon11/223240160113 공연 서비스 웹 프로젝트 2주차 기록 - KOPIS OPEN API의 XML 파싱 및 AWS S3 이미지 저장 [48~51일차] 이전 프로젝트 기록: https://blog.naver.com/easeon11/223240145728 10/2 공연 포스터를 화면에 보기 좋게... blog.naver.com 10/10 설정된 트리거 때문에 데이터가 제대로 삽입되지 않는 현상이 발생했습니다. 확인해보니 시퀀스가 정상 동작하지 않고 있었는데, 초기화 후에 increment를 1로 설정하지 않아서 minvalue를 초과하고 있었습니다. SQL 오류: ORA-12839: 수정한 후 병렬로 객체를 수정할 수 없습니다r ORA-06512: "ADMIN.TOTAL_PRICE_TRG", 10행 ORA-04088: 트리거 'ADMIN.TOTAL_PRICE_TRG'의 수행시 오류 12839. 00000 -

공연 서비스 웹 프로젝트 보완, ORA-17410, WebappClassLoaderBase 에러 [56일차] [내부링크]

이전 프로젝트 내용 : https://blog.naver.com/easeon11/223240182812 공연 서비스 웹 프로젝트 3주차 기록 - 프론트와 백의 역할 분담에 대한 고민 [52~55일차] 이전 프로젝트 기록: https://blog.naver.com/easeon11/223240160113 10/10 설정된 트리거 때문에 데이터가... blog.naver.com 이번 시간에는 이전에 만들었던 프로젝트에 부족한 부분이 있어서 보완하는 시간을 가졌습니다. 구현한 마이페이지에서 네비게이션 링크를 잘못 연결해서 에러가 있었습니다. 네비게이션 메뉴를 공통으로 만들어두기는 했는데, 해당 코드를 불러오면 slick 라이브러리가 말썽이어서 직접 HTML을 넣었는데 이때 코드를 완전히 반영하지 못했습니다. 그리고 상세 공연 페이지에서 리뷰가 보이지 않는 에러가 있었습니다. 아마 properties 파일이 원인이었던 것 같습니다. 관련하여 간혹 `WebappClassLoaderBase` 에

스프링 개요, 자바 용어 정리 [57일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223240666813 공연 서비스 웹 프로젝트 보완, ORA-17410, WebappClassLoaderBase 에러 [56일차] 이전 프로젝트 내용 : https://blog.naver.com/easeon11/223240182812 이번 시간에는 이전에 만들었던 프로... blog.naver.com 프로젝트를 마무리 하고 이번 시간부터는 스프링에 대해 공부하기 시작했습니다. 들어가기 전에 스프링 없이 웹 프로젝트를 만들려면 코드 양이 많아지고 컨트롤러를 가져오는 reflection 코드도 직접 만들어야 합니다. 그래서 DispatcherServlet을 만들고, control properties 파일의 매핑 키와 값을 통해 컨트롤러를 찾고, 객체 생성 후 execute()를 호출하는 방식으로 재사용성을 높였습니다. reflcetion이 없다면 조건으로 url을 각각 처리해야 했겠죠. Dispatcher S

mybatis 사용 예시, 주문 목록 구현 [41일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223220539521 자바 서블릿 로그인 및 로그아웃, 주문 기능 구현하기 [40일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223215283029 금주는 예비군으로 인해 수업을 직접 수... blog.naver.com 이번 시간에는 주문 목록 기능 구현을 마무리했습니다. 그리고 mybatis로 기존에 작성했던 고객, 상품쪽 코드를 포팅해보았습니다. 주문목록 출력 /orderlist로 요청 시 주문 목록을 보여주는 기능을 구현합니다. 주문 목록에는 주문 번호, 주문한 사람의 아이디, 시간이 포함된 기본 정보와 여러 상품 리스트가 들어있습니다. OrderOracleRepository.java 주문 번호를 통해 주문 정보를 반환하는 DAO 코드입니다. 물론 selectById 메서드를 OrderRepository 인터페이스에서 정의해주어야 합니다. @Override pu

mybatis 주문 기능 구현, 회원 프론트엔드 만들기[42일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223222640223 mybatis 사용 예시, 주문 목록 구현 [41일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223220539521 이번 시간에는 주문 목록 기능 구현을 마... blog.naver.com 이번 시간에는 mybatis를 이용해 주문 기능을 구현하고, 회원 가입 화면을 만들었습니다. 그리고 파일 업로드 기능 구현에 대해 알아보았습니다. 주문 기능 (mybatis) 주문 기능에 mybatis를 적용해주겠습니다. config 파일에 아래 alias를 추가해줍니다. <typeAlias type="com.my.order.dto.OrderInfo" alias="OrderInfo"/> <typeAlias type="com.my.order.dto.OrderLine" alias="OrderLine"/> 그리고 xml 파일을 만들어줍니다. Order.xml 주문

Java Servlet 파일 통신 (업로드/다운로드) [43일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223232319074 mybatis 주문 기능 구현, 회원 프론트엔드 만들기[42일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223222640223 이번 시간에는 mybatis를 이용해 주문 기... blog.naver.com 이번 시간에는 서블릿을 통해 파일을 업로드하고 다운로드 받는 코드를 작성해보겠습니다./ 파일 업로드 apache에서 제공하는 파일 전송 라이브러리를 사용해서 파일 업로드를 해보겠습니다. 아래 링크에서 다운로드 가능합니다. Apache Commons FileUpload인데, Commons IO라는 디펜던시도 다운로드 받아야 합니다. https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload UploadServlet.java 파일 업로드 관련 패키지 import 시 apache

스프링 기본(1) - 스프링 기초와 객체지향, 관심사 분리에 대해 [내부링크]

Spring Core - 객체지향 설계와 스프링 스프링의 역사 Enterprise Java Beans entity bean, jpa 등 java의 모든 걸 담은 종합 선물 세트. 하지만 너무 비쌈. 그리고 어렵고 복잡하고 느림. 이 때문에 빡친 개발자들이 새로운 오픈 소스를 만들고 스프링이 나옴. 그리고 ejb의 entity bean을 대체하기 위한 하이버네이트가 나옴. 하이버네이트는 JPA 표준 인터페이스의 구현체임. 하이버네이트가 JPA 구현체 시장의 대부분을 차지하고 있음. 스프링 정의 스프링에는 다양한 기술들이 있는데 그 중 핵심은 프레임워크와 부트임. 스프링 프레임워크의 핵심 기술은 스프링 DI 컨테이너, AOP, 이벤트 같은 것들이고 앞으로 이를 중점적으로 다룰 것임. 그리고 MVC,WebFlux과 같은 웹 기술이나 트랜잭션, JDBC, ORM 등과 같은 데이터 접근 기술도 있음. 스프링 부트는 이러한 스프링 프레임워크를 사용하기 편리하도록 도와주는 것임. 스프링 부트는

자바 서블릿 로그인 및 로그아웃, 주문 기능 구현하기 [40일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223215283029 세션을 이용한 장바구니 구현, 프론트엔드 [39일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223211835257 지난 시간에 이어서 이번 시간에도 자바 ... blog.naver.com 금주는 예비군으로 인해 수업을 직접 수강하지 못해 내용이 빈약할 수 있습니다. 진행한 내용은 로그인, 로그아웃, 주문 기능 구현입니다. 로그인 프론트엔드 화면에서 아이디와 비밀번호를 입력 후 로그인 버튼을 누르면 백엔드 서블릿으로 /login 요청을 하고, 회원 정보의 일치 여부에 따라 로그인 성공 여부를 전달하는 기능을 만들 것입니다. 로그인 여부는 세션을 통해 관리합니다. 해당 기능 구현을 위해 먼저 회원 관리를 위한 customer DAO, DTO, Service를 만들어 주어야 합니다. id, pwd, name, address를 컬럼으로 가지는 custo

클로저스 게임소개 [내부링크]

안녕하세요~ 오늘부터 블로그 포스팅 시작하려합니다^^ 간단한 게임소개부터 리뷰, 육성기까지 부족한부분 많겠지만 열심히해볼께욯ㅎㅎ 오늘 제가 소개드릴 게임은 작년 12월 23일에 출시된 클로저스라는 온라인게임입니다. 넥슨 홈페이지에서 캡처해온 스샷보실까요~ 소문대로 캐릭터가 애니에 나올법하게 생겼네요..ㅋㅋ 특히 가운데... 서유리.. 흐흐; 게임방식은 이러하네요. 던파랑 비슷한느낌? 배경은 강남, 구로역~ 한국게임이라는 느낌이 물씬납니당 세계관은 이러합니다...ㅋㅋ 긴글은 읽기싫으시려나 아무튼 저는이제 검은양팀의 클로저가 되어 신서울을 보호하려합니다ㅋㅋㅋ 다음은 직접플레이한 스샷으로 찾아뵐게영ㅂㅂ

클로저스 제이 육성기 [내부링크]

안녕하세요~ 클로저스 육성일지 보여드리겠습니당ㅎㅎ 이렇게 캐릭터들이 있네요.. 개인적으로는 이분을 하고싶었지만 지금 제이라는 캐릭터가 신규로 나왔더라구요ㅎㅎ 그래서 한번 해봤습니다~ 지금 이벤트중! 키가 저보다크네요.. 이자식 알고보니 많이 아픈친구네요 퀘스트 받는데 대화하면서 피토하고.. 던전끝나면 피토하고.. ㅜㅜ 스샷을 날려먹어서 ㅎㅎ; 레벨3부터 시작함니당.. 스킬소개~! 음이온 펀치. 그냥 어퍼ㅋ 적을 높이 뛰웁니다~ 콤보연계에 좋을것같네요 황토 잡기.적을 잡고 이리저리 끌고다닙니다 그리고 공격! 오메가3 러시 오메가3.?ㅋㅋㅋ http://navercast.naver.com/contents.nhn?rid=44&contents_id=7633 오메가-3_성장과 건강을 위한 필수 지방산 (글 : 여인형) 지방산 분자를 구성하는 탄소 사슬의 가장 끝 탄소로부터 세 번째에 위치한 탄소에서부터 이중 결합이 형성된 불포화 지방산을 오메가-3 지방산이라 부른다. navercast.nav

클로저스 제이 육성기2 [내부링크]

안녕하세용~ 클로저스 홈페이지에서 퍼온 제이 영상과함께 시작합시다! 재생 저번에 올린 스킬 설명 화질이 안좋드라구요ㅠ 제대로 된거 클로저스 홈페이지에서 따왔습니다~ 아 저번에 그 코스튬이벤트해서 입고 또 무슨 헤어를 주드라고요? 뽑기식이었는데.. 짠, 투블럭 가르마 펌~ㅋㅋ 요즘 대세인 투블럭이라할수잇죠 맘에드는군요ㅎㅎ 코스튬 + 헤어 착용샷ㅎㅎ 렙업은 안하고 이상한거만 하네요ㅠ 바로 던전으로갑시다! 그래픽 괜찮은듯? 타격감 좋고 개인적으로 클로저스 포탈이 참신한것같네요 다른 게임과 다르게 괜찮음ㅎㅎ 이건 에스컬레이터 포탈ㅋ 슬비가 작전을 확인 중... 세하가 게임기를 끄는 중..ㅋㅋ [팁]이슬비는 귀엽습니다. <<ㅋㅋㅋ 키워바야것네 겜하다 우연히 서유리캐릭이랑 파티맺음 저캐도 키우고싶은데ㅎㅎ 서유리님이랑 친구가 됬어요ㅎㅎ 같이 파사~ 레벨13되고 승급심사 시작! 전직 비슷한거에여~ 다음에 승급심사시작~ 그때 뵙시다ㅎㅎ

던전앤파이터 암제 소개 [내부링크]

안녕하세여~ 일계입니다ㅎㅎ 던파한번 열심히 키워볼려구요ㅋㅋ 제가 키울놈은 여귀검사~전직 다크템플러~각성해서 현재는 암제입니다. 아직 2차각성은 안나왔어요~ 방어구는 판금 무기는 소검 되겠습니다ㅎㅎ 소개영상을 안 볼수는 없겠죠?ㅋㅋ 유튜브에서 가져왔습니다~ 던파 홈페이지에도 있구요. 재생 암제 그러니까 다크템플러같은 경우 스킬 대다수가 홀딩을 주로 이루고있어서 나중에 고렙때 파티플레이에서도 환영받는 직업이랍니다ㅎㅎ 소개는 이정도로 마치고요~ 육성기 다음글부터 시작할게요ㅎㅎ

던전앤파이터 암제 육성기 [내부링크]

저왔습니다ㅎㅎ 던전앤파이터 암제 육성기 시작할텐데요. 참고로 지금 제가키우는 캐릭터는 카인서버구요 아이디는 일계 입니다. 친추 대환영@@ 그냥 무난하게 에픽퀘 일반퀘 따라갔습니다ㅎㅎ 끝없는 악몽~ 이게 참 귀찮은게 보스가 무적상태가 있어요ㅡ 그전에 홀딩을 잘 걸어야하는데 컨이딸리네요..ㅜㅜ 때려도 안맞아ㅜㅠ 다음은 염동력자 미쉘가 함께~ 클리어~ 랭크 ㄷㄷ 다음 던전은 서리 동굴입니다. 다 쓸어버렷죠 하하하 서리 동굴을 탈탈 서리해버렸네요ㅋㅋ 마지막던전 사룡의 봉인~ 그리고 피로도 끗! (아 방금 포스팅하다 정전되서 다날라간줄알고 깜놀......ㅜ흑 임시저장되잇어서 다행이양) 아 항아리에서 나온 유니크! 제가 장착했습니당ㅋ 오늘 먹은 엠블렘입니다. 소소하네요ㅎㅎ 마지막으로 현재 저의 스킬트리입니다. 달계 미적용이구요 TP는 별거없어서 뺐습니다ㅋ 달계가없으니까 스포가 남아돌아요..ㅋㅋ 쉐도우 하이딩 찍으라는 분들도 계셨는데 잘 안쓰게되더라구요. 그거빼고 왠만한 암제스킬다 찍고 남은 포

던전앤파이터 쉽생 이벤트 [내부링크]

2015년 양의 해를 맞아 던파에서 내놓은 이벤트ㅎㅎ 이름하여 쉽생! 발음이 욕을떠오르게하는건 저뿐입니까?ㅋㅋ 이런 쉽생ㅋㅋ 아무튼 간단하게 포스팅해드릴께요~ 아라드 인터내셔널? 인터내셔널하면 이게떠오르더라구요.. 넘 재밌게봤엉 미생.. 이참에 드라마포스팅도 해버릴까여ㅋㅋ 본론으로가서.. 양과장과 총괄부장을 처리하고 상사맨의 영혼을 모으면 늑대리상점에서 사고싶은걸 살수있답니다. 그리고 양과장과 총괄부장한테 가끔 일일 보고서가 드랍되는데 사용하시면 상사맨의 영혼을 빠르게 모을 수 있는 퀘스트가 나와요. 하루에 한 번 밖에 못깨고 먹은 후 24시간이 지나면 사라지니까 유의하세요! 이게 늑대리구요. 위치는 게임키자마자 세리아가 있는 방에 있다고하네요ㅎㅎ 늑대리크리쳐는 상사맨의 영혼 200개 되겠습니다ㅋ 크리쳐없는 분들 얼릉 모아서 쓰세요! 던전깨면 경험치 플러스랍니다~ 물론 먹이가 있어야 계속 사용하겠지만 없는것보다는 낫겟죠?ㅎㅎ 이게 상점입니다. 개인적으로 계약 시리즈가 있다는게 맘에

서든어택 투데이카운트 [내부링크]

안녕하세요~ 이번에는 서든어택으로 인사드립니다ㅎㅎ 서든어택 투데이 맵 이벤트! 매일 미션이 초기화되서 두가지맵 마다 미션을 클리어하면되는데요. 보통 게임참여/게임승리/적군킬 이정도 있습니다ㅎㅎ 이탈리아는 해결했는데 뱀파이어모드는 잘안하는데 떳네요. 흡 맵 숙련도도 낮네요ㅎㅎ; 꾸역꾸역 오늘도 성공~ 투데이 카운트를 쓸 수 있는 보급상자가 세가지 종류가 있습니다~ 주무기 카운트 변경/초기화 카운트 캐릭터 카운트 블로그 포스팅을 위해 7개를 질러봤습니다. 저는 캐릭터가 갖고싶더라구요ㅎㅎ 아직 보급이 많이남았지만 혹시나 하는마음에.. ㄲㄲ 제발.. .. 역시 나에겐 생기지 않네요 하하하하하하핳ㅎㅎ 괜찮아요 다음에 한 100개 정도 모아서 보급받으면 되려나?ㅋㅋ 포스팅 마칠게요~ㅠ 다음엔 더 모아서 도전!

서든어택 홍진영 캐릭터 출시 [내부링크]

안녕하세요~ 서든어택 새 캐릭! 홍진영에대해 소개해드려요~ 뒷북치는 감이 좀 있지만.. 그래도ㅋㅋ 트로트 여신 홍진영ㅎㅎ 우결에서 예쁘게 나오시드라구요! 합!! ㅋㅋ 그래서 서든어택에서는 이렇게 나오신답니다ㅎㅎ 뭐 기능은 일반적인 특수캐랑 같고요 가장 중요한 감정 표현ㅋ 재생 사랑의 배터리~ 재생 당신이 짱이랍니다@@ 갖구싶다 홍진영..ㅋㅋ 재생 마지막으로 메이킹필름뿌리고 이만 물러납니다ㅂㅂ 본 영상과 사진 대부분은 서든어택 홈페이지에서 가져왔습니다~ 문제가 된다면 바로 삭제하겠습니다.

[게임업데이트]사이퍼즈 여행자 릭 톰슨 [내부링크]

안녕하세요~ 사이퍼즈에 새 캐릭터가 나왔다길래 부랴부랴 글올립니다! 일단 플레이영상 보시죠ㅎㅎ 재생 사이퍼즈 최초의 공간능력자라나?ㅋ 시계수집가ㅋㅋ 스킬은 이러합니다ㅎㅎ 재생 데스 스타, 그냥 무난합니다. 약간 리사 스킬 중에 단절의 멜로디? 느낌이 나는것같네요 재생 디멘션 점프. 뭐랄까 킬힐느낌나는뎅?ㅋㅋ 재생 코믹스 터널. 이건 마리오네트...ㅋㅋㅋ 재생 마지막 궁극기 빅뱅입니다.. 커허허허헣 유니버스!ㅋㅋㅋ 머 이정도면 대충 릭 톰슨에 대해 아시겠죠? ㅎㅎㅎ 근데 공방에서 딱히 마주칠일이 없을것 같네요 아군이나 적군이나 거슬리는 캐릭터라 유저들이 필벤 1순위;ㅋㅋ 사이퍼즈는 신캐나오면 이러더랑 뭐 돈없어서 캐릭못사는 나랑은 상관없는 얘기ㅎㅎ 그럼 수고요!

[게임추천/육성기]사이퍼즈 부스터개봉기 [내부링크]

안녕하세여ㅋㅋ 오랜만에 직접 사이퍼즈~ 머 대충 이런사람입니다ㅎㅎ (티어는 묻지마요ㅋㅋ) 그냥 부스터한번 까볼라구여ㅋㅋ 정말 열심히 모았슴! 제발... 유닠이랑 코튬나오길..ㅎㅎ 일단 무난하게 EC 싱글 부스터ㅋ 87개 언제다까나ㅋㅋ 는 레어하나..ㅋㅋ 괜찮아요 별기대안함ㅎ 다음은 DP 싱부.. 맥시머 하나 나왔네요. 패스~ 슬슬 시동 걸어보까요ㅋㅋ 언커먼이 최소 1개인 베이직 부스터@@ 또 레어하나네요..; 뭐 레어 하나씩 주냐 다음은 DP시리즈.. 무려 101개 제발ㄹㄹㄹㄹ유닠ㅋㅋㅋ줘ㅓㅓㅓㅓ 하려는데 템이 1179/1200 개인 상태라서 탬좀 갈고갈께요ㅎㅎ 나중에 한번에 갈려그랬는뎀. 쩝. 오히려 여기서 레어를 좀 먹네요ㅋ 한 7개 정도 먹은듯ㅎㅎ 이제 바로 부스터까러갈게요~ 올 유니크~~ㅎㅎ 하나뿐이네요.. 101개에서 유닠하나 좋아하긴 좀 그런듯..ㄷ? 몰라ㅜ 우편함 불나고 잇어..ㅋㅋ 정리좀 하고용..ㅋㅋ 전열을 가다듬기 위해 주화랑 돈/슈퍼부스터 까고 무역품 ㄱㄱ 나쁘지

[모바일게임추천/후기]타이니팜 소개 [내부링크]

안녕하세요~ 모바일게임 하나 소개드릴게요ㅎㅎ 바로바로 타이니팜~ 지금은 시즌2입니다ㅎㅎ 뭐 간단히 설명드리자면 동물농장을 운영하는 게임입니다~ 매 계절마다 메인화면도 바뀝니다ㅋㅋ 센스~ 맵은 4가지가 있는데요, 기본적으로 주어지는 타이니 팜. 이건 타이니 비치. 토이 빌리지~ 그리고 가장 최근에 업데이트 된 타이니 주 입니다. 동물원ㅋ 타이니팜을 제외한 모든 맵은 게임상에서 벌거나 살수 있는 골드 혹은 벨로 살 수 있습니다. 각 맵마다 동물을 배치 할 수 있는데요~ 동물 수가 제한되있지만 역시 골드나 벨로 늘릴수 있습니다ㅎㅎ 일정시간이지나면 동물들이 배고파하는데 클릭 한번이면 모두의 밥을 해결할수있어요ㅋ 그 외에도 많은 컨텐츠가 존재합니다. 농사,낚시 등등~ 동물 콜렉션인데요 모으는 재미가 쏠쏠하죠ㅎㅎ 상점에서 물건을 구입해서 직접 인테리어도 가능합니다ㅋㅋ 자기 입맛대로 꾸미는 타이니팜~ 저는 현재 농장싹 정리하고 돈모으는중입니다ㅠㅋ 현재 진행중인 이벤트입니다~ 새해맞이 글자모으기

[게임추천/육성기]클로저스 제이 육성기3 [내부링크]

안녕하십니까~ 일계입니닿ㅎ 넥슨게임 클로저스 제이 육성기 시작할께요ㅋ 수습요원 승급심사 시작이요! 통과해주지 훗. ㅋㅋ 말년포스 제이 ` ㄱㄱ 던전돌고.. 돌고~ 렙업도하고ㅋ 가소롭죠 하하 미션 두개 남앗네요~ 타임어택 미션ㅋ 따악! 마ㅏ지막@@@ 클리어@@@@ 아 좀 힘드네요.. 그치만ㅋ 클래ㅐ스 업!ㅋ 수습요원됫습니더ㅎㅎ 새로운 지역이 열렸네요ㅋ 구로역인가 아, 긴급 방어전 있길래 들어와봤어요 이것저것 탬이 꽤 드랍되더라구요? 돌고서 지역이동 했습니다ㅎㅎ 무서워라..ㅋㅋㅋ 구로 구로~ 이 놈이 지역이동NPC 인데 좀 터프한데 쪼만함ㅋㅋ 오토바이로 이동해서 다시 강남으로..ㄲ 긴급방어전 할라구요 아 이게 클로저스의 명물이라하더라구요 이빛나씨ㅋㅋ 알고보니 옷을 이렇게 입은 이유가 있더랍니다 자기 연구소 빚때문에 시선 끌려고 입었데요.. 바람직한 연구소직원들 ㅋㅋ 원래 목적인 방어전 한번더 돌고~ 몹이 좀 쎄드라구요, 아퍼ㅎ 새스킬도 배우고~ㅎㅎ 스킬이름이 마그네슘 스트라이크..ㅋㅋ

[게임추천/팁]사이퍼즈 캐릭터 순위 [내부링크]

개인적으로 생각하는 사이퍼즈 캐릭터 순위 및 추천 캐릭터에 대해 알려드릴게요~ 주관적인 생각이 조금 들어가 있으니 이해해주시고 순위라기보단 그냥 추천드린다고 생각해주세요ㅎ 지적 환영해요ㅠ 쫌무섭다ㅋㅋ 괜찮은 상위 캐릭터에대해 적어드릴게요ㅋ 가장 먼저 추천드리는 캐릭터는 루이스입니다. 음 일단 빠른 이동기 결정슬라이드가 있는게 좋구, 샤드리볼버. 일명 핵볼버,핵샤드라고도 하는데 그만큼 딜량이 엄청나요. 제가 해보니까 생각보다 사거리도 길더라구요? 그리고 평타가 빠릅니다.ㅋㅋ 궁도 장판이라 대박을 노리기도 좋구요ㅎㅎ 물론 영웅놀인 안되요! 다음은 웨슬리입니다ㅎㅎ 적당한공격기를 갖춘데다 회복킷이 있다는게 너무좋죠. 핵 못맞추는게 걱정이실수도 있겠지만 킷만 잘 던져줘도 팀에 큰 도움이 될 수 있습니다. 핵던지는 센스야 많이 하다보면 늘겠죠?ㅎㅎ 자, 지금부터 열을 세겠다..ㅋㅋㅋ 벨져입니다. 최근에 패치내용보니까 조금 하양먹었더라구요. 그만큼 좋았단거겠죠? 하양먹었지만 지금도 할만하다고 생

[웹툰추천/후기] 시타를 위하여 줄거리 [내부링크]

겨울방학을 맞아서 웹툰 정주행에 돌입했습니다ㅎㅎ 여러분들께 웹툰하나 추천드릴라구요, 같이봐요~ㅋㅋ 바로 하가의 시타를 위하여 입니다. 프롤로그 에필로그를 제외한 총 12화 작품이구요. 그림체가 예쁩니다ㅎㅎ 간단한 내용 소개 해드리겠습니다. 스포 최대한 줄이도록할게여~ 트라우마로 인해 사람고치는걸 무서워하는 의사 남주입니다. 예쁜 여주구요, 너무 예쁩니다. 정말 예뻐요ㅋㅋ 배경은 네팔인데요. 여주인공 시타는 가족의 생계 때문에 쿠마리라는 거에 지원하게 됩니다. 쿠마리가 되면 돈이 나온다나~ 네팔 쿠마리는 실제로 존재하는 이야기입니다ㅎㅎ 지금도 실존하는것 같구요 http://terms.naver.com/entry.nhn?docId=2267851&cid=51089&categoryId=51089 네팔 쿠마리 (출처: 갖고 싶은 세계의 인형) 빨간 옷에 강렬한 화장, 이마 한가운데는 눈 모양이 그려져 있다. 외모만 봐도 심상치 않은 이 인형의 주인공은 ‘쿠마리(Kumari)’다. 쿠마리, 혹

[게임추천/업데이트] 서든어택 이벤트 멤버쉽 서비스 운영 [내부링크]

안녕하세요~ 다들 잘 지내시는지요ㅋㅋ 서든어택 업데이트에 대해서 공고문이 올라왔네요 개인적으로 2번에 1월 29일 위아래~ 위위아래~~ 아마도 이분들일듯? EXIDㅋㅋㅋ 기대되네 1월 15일 내일부터 멤버쉽 서비스 운영한다고 하네요ㅋ 일정은 이러하구요 산정기준~ 플래티넘부턴 PC방에서 해야되네요ㅡ; 40시간이면 1시간에 천원씩만 잡아도 4만원어치임ㄷㄷ 등급별 혜택입니다,, 칭호 막 뿌리네ㅋ 무기혜택도 PC방가야주는 플래티넘부터 주네요ㅜ 마일리지 서비슨데요, PC방 유저 밀어주는거네여 pc방아니면 소용없는뎅?ㅋ 넥슨녀석들 뭔 마일리지를 이렇게 좋아하는지 던파도 그렇고 흠.. 뭔가 돈냄새가나는듯 흑사 캐릭터가 나오네요~ 생긴게 흑사 총처럼 생김ㅋㅋㅋ 참고로 위에위에 보시면 알겠지만 1시간당 500MP정도 쌓인다고하네요 캐릭터 얻을라면 얼마나해야할지 아시겠죠?ㅋㅋ 결과 화면도 개선된다고 합니다. 다른사람전적이 안보이고 제것만 보이네요 다만 익숙치 않은분들 기존 화면도 챙겨보실수 있고요ㅎ

[게임추천/업데이트] 클로저스 서유리 정식요원 업데이트 [내부링크]

안녕하세요ㅎㅎㅎ 클로저스 업데이트 소식입니다! 서유리 정식요원이 업데이트 됬다고하네요, 유튜브에서 가져온 플레이 영상입니다ㅋ 재생 어쩌지.. 제이키우고 있는데ㅋㅋㅋ ㅋㅋㅋ 보고있으면 덕후가 되는기분 허허허 2015년 1월 15일 나온답니다, 정식요원이ㅋ 내일이네요,음 전 제이나 키우로 갈께요ㅂㅂㅋ

[캐릭터추천/후기]던전앤파이터 암제 육성기2 [내부링크]

안녕하세요~ 오랜만에(?) 던전앤파이터 포스팅들어갑니다! 포스팅은 안해도 키우긴하니까 행여나 걱정(??)같은거 마세요ㅋㅋ 겐트 외곽 클리어하고 렙업했네요! 제 암제 57됬습니당ㅋ 이거 꾸준히 하고 계시죠? 10주 완성 개(改)이득 출쳌! 7주차 선물은 열쇠바구니네요ㅎㅎ 누적 6회에서 +7장비 증폭권도 받네요~ 1주차 출석 놓쳤는데 누적 10회 없음ㅋㅋ 개꿀 열쇠 꾸러미에서 해방의 열쇠 4개 나왔네용 쩝. 총 열쇠 14개. 봉인된 자물쇠 3개 한번 열어 봤습니다 칼레이도 박스 나왔네요, 아이템의 등급을 바꿀수 있다는데 좋은건가요?ㅎㅎ 잘모르겟슴다 패왕의 계약 1일 ㅡ; 이씨 지옥파티 초대장 상자. 뭐 알겟슴닼 바로 까버림ㅋㅋ 2장 안까고 아껴둿던거에서 15장이나 나왓네요 근데 솔직히 이거 모으는게 좋은건지 아직 실감이 안옴, 얼릉 렙업을 해야해ㄷ 마지막 봉인된 자물쇠~ 큐브의 계약 7일 떳습니다ㅎㅎ 무큐 설정해야지여~ 뭐 됫고 던전 마져 돌고 마을 침공 하던데요?ㅎㅎ 피로도도 없던데

[모바일게임추천/후기] 프리스타일야구 리뷰 [내부링크]

안녕하세요! 일계입니다, 게임추천 받은거 소개해드릴게요ㅎㅎ 제가 아이폰이라 안드로이드게임은 추천받아도 소용이없네요ㅠㅠ 아이패드도 있으니까 애플게임 언제든 추천해주세요~ 플레이하고 후기올립니당ㅋ 위너뱃이아니고 워너뱃WANNABAT 이란 게임 추천해주셨는데요 지금은 앱스토어에 프리스타일야구 라는 게임으로 등록되어있더라구요ㅋ 제가 직접한번 해보았습니다. 야구게임이에요! 처음보는 회사였습니다..ㅋㅋ FREESTYLE BASEBALL~ 개인적으로 시작화면 너무 맘에들어요 뭔가 게임을 하고싶게 만드는 분위기가 느껴진달까요? 진심 괜찮은듯요 튜토리얼입니다 타자연습, 화면을 누르고 방망이 위치를 조종한 후 공이 올때다! 하면 떼시면됩니당 참쉽죠?ㅋㅋ 다음은 투수입니다 화면을누르면 목표를 지정할수 있게하는데 크기를 잘 조절하면 제구가 똑바로됩니다. 이게 화면을 누른상태에선 캡쳐가 힘들어서ㅠㅠ(손이 세개면 가능할듯) 제 말이 이해가 안되시겠지만 직접 해보시면 압니다!ㅋㅋ 역시 야구 게임답게 여러가지

[게임추천/후기] 클로저스 유인소탕작전 [내부링크]

안녕하세요~ㅎㅎ 서유리 요원 업뎃하고 메인화면 바꼇더라구요 즐감ㅋㅋㅋ 아 제이키우던 중에 유인소탕작전? 다들아시나요?? 그거 퀘스트가 있길래 들어가봤습니다 몹들이 계속 나오고 전 건물 지키는거더라구요, 그냥 퀘스트니까 깨자는 마음으로 덤벼들었습니다 근데 어려움;; 제가 발컨이라그런건가요ㅋㅋ 아 겁나 하다가 빡침ㅋㅋㅋㅋ 정말로..ㅜㅜ 그런데 이런 상점이 있더라고요? 모르고 했었는데 발견함ㅋㅋ 꼭 이용하세요, 게임중에 먹는 돈으로 여러탬을 구입할 수 있습니다. 그럼 깰수있겠군 하는 마음에 또 도전했습니닿ㅎ 한 3번정도 한듯 지원사격 요청도하고. 드디어 마지막 웨이브입니다! 총 11번인데 이게 11번째 웨이브! 보스죠ㅋㅋ 최종보스였는데.. 피통도 얼마 안남았는데.. 제가 죽었습니닼ㅋㅋㅋㅋㅋㅋㅋ 30분동안 렙업도못하고 이것만했어요 저의 빡침을 풀곳이 필요해서 이렇게 포스팅합니다. 하하 역시 전 발컨이었던건가요ㅜ 개인모드를 깨야하는거라 파티플레이도안되고. 혹시 유인소탕작전 깨시려는 분들 상점

[드라마추천/후기] 나쁜녀석들 줄거리 [내부링크]

이미 끝난진 한 달 가까이 지났지만 나쁜녀석들 리뷰 및 줄거리요약 시작합니다ㅎㅎ 대강의 줄거리는 이러합니다~ 강력반 경찰이었던 오구탁(김상중)이 범죄자에게 하나뿐인 딸을 살해당하고 그 충격으로 경찰일을 그만둡니다. 그 후 폐인처럼 지내던 오구탁(김상중)은 남구현(강신일)이라는 경찰청장의 부름을 받고 둘은 조우하게됩니다. 사실 둘은 친한사이였구요ㅎ 부른 이유는 남구현(강신일)의 아들역시 강력반에서 일하고 있었는데 범죄자를 쫓던 도중 범죄자에게 살해당합니다. 그래서 그 범죄자를 잡아달라며 오구탁(김상중)을 부르게 된것이고 오구탁(김상중)은 남구현(강신일)에게 범죄자를 잡는데 도움이 될만한 애들을 모아달라고합니다. 그 애들이 바로 나쁜놈잡는 나쁜녀석들! 모두 범죄자들인데요, 조직폭력배 박웅철(마동석), 싸이코 연쇄살인범 이정문(박해진), 살인청부업자 정태수(조동혁) 세명입니다. 그리고 유미영(강예원)경감은 경찰청장의 총애를 받고있어 이번 임무에 투입된거구요. 그렇게 나쁜녀석들이 범죄자들을

[게임추천/팁] 서든어택 라플추천 및 팁 [내부링크]

안녕하세요! 이번에는 서든어택 라플추천 및 간단한 팁 포스팅해보려구요ㅎㅎ 포스팅할려고 자유이용 주무기 뜯었습니다ㅋㅋ 먼저 M4A1 입니다. 반동이 심하지 않아 초보자들에게 가장 적당하다고 생갑됩니다. 다음은 AK-47입니다. M4A1보다 반동이 심하지만 데미지가 좀 더세죠.ㅋ 좀 숙련되면 바로 이 총으로 넘어가는걸 추천드려요ㅎㅎ 반동실험 직접해봤습니다. M4A1과 AK-47을 끊어쏘지 않고 30발 모두 쏴봤습니다. 확대해서 보시죠ㅋ AK-47이 반동이 더 심하다는게 느껴지시나요? M4A1에 비해서 AK-47이 순식간에 총알이 위로 박히는 모습을 볼 수 있습니다. 그래서 라플이 익숙치 않은 초보자들에게는 M4A1을 추천드리는거였구요. Aim기능이 장착된 총을 이용할 경우 M4A1은 먼거리에 있는 적을 맞추기도 유리하죠ㅎㅎ 다만 Aim이 장착된 같은 AK-47같은 경우에는 데미지가 1% 감소합니다, 머 어쨋든, 이렇게 심한 총 반동 때문에 쏘는데도 요령이 있는데요ㅎㅎ 총을 끊어서 쏘는

[게임추천/팁] 피파온라인3 독일국대 스쿼드 [내부링크]

피파온라인3로 인사드려요ㅋㅋ 너무 많은 게임을 파고있는건지 걱정되네요ㅎㅎ 제가 지금쓰고있는 독일국대 스쿼드 소개해드릴게요ㅋ 1군과 2군을 모두합처서 9500만EP입니다. 뮐러가 3분의1을 먹는 3천만EP..ㅋㅋ 원래 구단가치가 8천만EP정도였는데 쫌올랏네요ㅎㅎ 참고로 모두 +2카입니다ㅎㅎ 나이쓰~ 포메이션입니다~ 4-1-2-1-2 투톱체제에 자유분방한 미드필더진..ㅋ 1군 선발 스쿼드입니다. 선수레벨이 제각각이라 능력치 차이가 좀나네요ㅎ 보아텡이랑 슈바인슈타이거가 쫌 낮은편입니다. 보아텡을 윙어로쓰는게 쫌 찝찝했긴했지만 뭐, 지금까지 별문제 없이 하고있네요ㅎㅎ 후보선수 명단입니당 이건 1군 맞추기전에 잠깐 썻던 2군들 명단입니다. 돈이 부족하신 분들 여깄는 선수 추천! 전담 선수입니다. 주장 람~ㅎㅎ 선수 가치임니다 뮐러, 훔멜스, 노이어가 돋보이네요ㅎㅎ 미드필더진은 로이스 정도?ㅋ 나머지 후보선수 가치,, 다 100만EP 아래입니다. 제가 사용하는 전술입니다. 특별한건 없고 크로스

[게임후기] 클로저스 제이 육성기#3 [내부링크]

클로저스, 제이 육성기! 시작합니다ㅎㅎ 잊혀진 지하철! 도시배경의 맵들ㅎㅎ 달리는 지하철에서 사냥ㅋ 주인님을 모시는 악당녀석입니다ㅋㅋ 몇마디 하더니 사라짐 역시 클로저스 포탈은 참신하고 신기한듯! 파견나온 송은이도 살려주고 ㅎㅎ 클리어~ 구로역 맵 상환판입니다ㅎ 이번에는 김유정이네요ㅋㅋ 오늘 NPC를 자주보는듯 한 발에 천 만원씩인 총을 들고있습니다ㅋㅋㅋㅋ 졸졸 따라다니는ㅎ 오붓하게 사냥 그 악당녀석으로 편지가 왔습니다ㅋㅋ 러브레터나 팬레터가 아닌 줄은 알았지만...ㅋㅋㅋ ㅇㅋㅇㅋ 그 후로 던전 계속 돌고~ 돌아서 26렙 달성했습니다~ 피로도 다 써본건 처음인것 같네요. (사실 어제한건데 너무 졸려서ㅠㅠ 오늘 포스팅해요ㅋ 양해좀!) 포스팅 마치겠습니다ㅎㅎ

[게임공략] 사이퍼즈 코스튬 정옵 [내부링크]

안녕하세요~ 사이퍼즈 캐릭터별 코스튬 정옵 알려드리려고 나왔습니다! 5레벨부터 8레벨까지는 방/치/이/이가 정상옵입니다ㅎㅎ 다만 나이오비 같은경우 치명말고 공격력을 택하는분도 있더라구요. 참고하세요. 왠만해선 다 방치이이..ㅋ 요런식으로ㅎ 그럼 2레벨부터 4레벨까지 정옵 적어드릴게요~ 참고하시길ㅋ 로라스 : 투창 / 투창 / 용성 휴톤 : 바야바 / 바야바 / 핵펀 or 어퍼 / 바야바 / 어퍼 루이스 : 샤드 / 샤드 / 영동 타라 : 공발 / 공발 / 유낙 트리비아 : 박폭 / 부컷 / 박폭 카인 : 우지 / 우지 / 드라그노프 레나 : 섬전 / 금강쇠 / 섬전 or 섬전 / 축퇴 / 섬전 드렉슬러 : 분열 / 분열 / 유성 도일 : 레리 / 레리 / 초스 토마스 : 서릿 / 서릿 / 드아 나이오비 : 불놀 / 불놀 / 초열 or 불놀 / 불놀 / 불놀 시바 : 절개 / 절개 / 힐블 웨슬리 : 킷 / 킷 / 지원폭격 or 지뢰 / 류탄 / 지뢰 스텔라 : 섬전 / 축퇴 / 기어

[게임육성기] 던전앤파이터 암제 결투장 [내부링크]

안녕하세요~ 일계입니다. 오늘 던파 암제 60을 찍었어요~ㅎㅎ 갑자기 필받아서,,ㅋㅋ 던파 다시시작하고 처음하는 결투장.. 진짜 몇년만에 하는 결장인것같음ㄷ 그래서 결장하다가 암걸린거 포스팅좀할라구요ㅋ 그래도 첫판 이기고 좋아했음..ㅋㅋ 그치만 그뒤로 처참했습니다..ㅠㅠ 영상 좀 찍어봤어요,, 어떻게 응급처치좀해주삼 고수님들아ㅋㅋ 재생 꾸역꾸역 이기긴했지만..ㅋㅋ 띄운게 보이는데 무슨 콤보를 넣어야할지 모르겠음ㄷ 재생 발컨주의 재생 그런데 어떻게 찍다보니 이기는걸 많이 찍게됨ㅋㅋㅋ 지는건 찍다가 꺼버림 ㅜ 빡침ㅁ.. 스샷도 이기면 기분좋다고 찍어댐ㅋㅋ 핡 이겼따.ㅋㅋㅋ 실력 검증결과입니다. 정확히 어느정도 순윈진 모르겠지만 짐작은가네요ㅜ 선물도 주더래요 항아리는 깨야지 제맛ㅋ 콜로세움의 인장x25 필요성은 잘 모르겠습니다. 많이뜬거같은데 아닌가? 좋은건가?ㅋ 그냥 겜이나함ㅋㅋ 그리고 난 발리기시작하고 빡치기시작하고 그렇게 대장전을 했죠. 묻어갈라고ㅋㅋ 처참했습니닼ㅋㅋ 분위기 전환삼아

타이니팜 팁 - 무료 럭키백 [내부링크]

안녕하세요~ 타이니팜 팁 소개해드릴려고요ㅋ 혹시 무료 럭키백에 관해서 아시나요? 혹시 모르시는 분들 있을까봐 소개드려요. 저도 가끔 깜빡하고 못할때도 있는데 그만큼 숨겨져 있다는거겠죠ㅋ 바로 무료 럭키백인데요ㅎㅎ 타이니팜 들어가시면 행운상점 아시죠? 알까는거ㅋ 들어가셔서 알까는 탭 오른쪽에 이런게 있어요ㅋㅋ 하루에 한 번 개봉할 수 있습니다. 획득 가능 아이템입니다. 갖고 싶은템도 많아요ㅠ 혹시 알아요.. 하는 마음에 매일 열고있습니다. 여러분도 하루에 한번씩 열어보셔요ㅋ 더 열고싶으시면 벨을 주고 열어야합니다. 그냥 하루에 한번 여는게 나을것 같네요ㅎㅎ 모래성~ 축구공~ㅎㅎ 아직 럭키백 오른쪽에 컨텐츠가 남아있던데 뭐가 나올지 궁금하네요ㅋ 포스팅 마치겠습니다~

[드라마리뷰] 피노키오 줄거리 [내부링크]

얼마 전 총 20부작으로 막을내린 드라마 피노키오 리뷰 및 간단한 줄거리요약 시작할게요~ 최달포역의 이종석과 최인하역의 박신혜 주연..ㅋㅋ 잘 어울리는 한쌍이었습니다. 그 외의 주연과 조연 모두 맘에드는 인물들이 많은데요~ 천천히 이야기 시작하겠습니다ㅋㅋ 최달포(이종석)의 원래 본명은 기하명이었습니다. 기하명의 아버지는 소방관이었는데 화재진압 도중 사고로 목숨을 잃게됩니다. 그런데 기자들의 모함으로 기하명 가족들은 사람들의 삿대질을 받게되죠. 형인 기재명(윤균상)은 해명하기 위해 서울로올라갔지만 그 사이 어머니는 견디지못하고 기하명을데리고 자살을하게 됩니다. 그런데 바다에 뛰어내린 기하명은 최공필(변희봉)에게 구조되고 최공필(변희봉)은 죽은 아들이라며 기하명을 최달포(이종석)이라고 부르게됩니다, 기억이 외곡되버린 최공필(변희봉)은 최달포(이종석)을 급기야 입양시킵니다. 그리고 최공필(변희봉)의 아들 최달평(신정근)이 사정이어려워지자 아버지를 모시고 살기위해 섬으로 내려가고 최달평(신

[게임리뷰] GTA 산안드레스 소개 [내부링크]

안녕하세요~ GTA : 산안드레스 플레이일지 올리려구요ㅎㅎ GTA시리즈는 너무 유명하죠~ SNL에서도 패러디하기도하고ㅋ 공식홈페이지에 있는 스샷 몇개 가져왔습니다ㅎㅎ GTA같은 경우 자유도가 높은 게임으로 유명하죠ㅎ 저는 미션하나씩 깨면서 플레이일지 올려보려고요ㅋ 근데 할꺼 되게 많던데 다 깰 수 잇으려나요..ㅋㅋㅋ 걱정도 좀 되네요ㅎㅎ 재생 너무 유명한 게임이라 딱히 설명드릴게 없네요ㅋㅋㅋ 유튜브 Rockstar Games 코리아 에서 퍼온 공식 플레이영상입니다. 다음 포스팅부턴 플레이일지 시작할게요~ (혹시 사진이나 동영상에 저작권에 문제가 된다면 바로 조취를 취하겠습니다.)

던전앤파이터 해체기 [내부링크]

오늘 던전앤파이터 헤체기 레벨7 달성했습니다~ 먼저 해체가 레벨업 한 후 튜닝하기위해서 수리를 해야합니다. 지금 내구도를 다 쓴상태인데 레벨6 총 수리비가 4만골드네요. 총 내구도 300에 한 번 갈릴때마다 2씩 떨어진다고 가정하면 총 150번 갈리내요. 4만 골드를 150으로 나누면 266골드 정도니까 수수료는 이거 이상 받아야 수리값은 나오는거네요ㅎ 만렙찍기 전까진 손해좀 봐야할듯ㅠ 너무 비싸면 안갈아서 뭐 업그레이드 비용은 말할것도없죠.. 25만골드ㅜ 해체가 여러분들 우리 가격좀 너무 내리지맙시다ㅋㅋㅋ 먹고는 살아야죠 제발ㅋㅋ 어쨋건 해체가 레벨 7됬습니다. 이건 또 수리비가 얼마일지..ㅋㅋ 확인해보고 해체기를 열어야겠어요. 레벨은 61찍었습니다. 91퍼였나?ㅋ 얼릉 렙업해야죠. 해체기도..ㅋㅋ 혹시 카인썹에 저보면 비싸더라도 제 해체기를 이용해주세요ㅋㅋㅋ 포스팅 마치겠습니다~

GTA 산안드레스 미션공략 #01 - Sweet & Kendl [내부링크]

gta 산안드레스 미션 클리어 스샷 올려드릴게요~ 공략이라고 생각하셔도 되요~ 프롤로그, big smoke, sweet&kendl, ryder 까지 너무 정신없이 깻네요..ㅋㅋ 1992년도를 배경으로 하나봅니다. 주인공 흑형ㅋ 경찰한테 잡혔는데, 자막이랑 소리가안들림ㅠ 상황 파악이 안되.. 파일을 잘못받은듯ㅋㅋ 영문도 모르고 잡혀감ㅋㅋ 아마 무슨 돈때문인듯 경찰차타고 끌려가다가 버려짐.. 뭐야ㅋㅋ 아무튼 자전거를 타게됬음. 프롤로그~ F키를 누르면 탈것을 탈수 있습니다. 지도에있는 CJ로 가면됩니다. big smoke~ 사진을 애절하게 쳐다봅니다. 도둑으로 오해받는군요. 사실 친함ㅋㅋ 오랜만에 만난 회포를 푸는 중. 흑형식 인사를 주고받습니다ㅋ 차타고 어디론가 떠남ㅎ 흑인흑인치구들이더있음ㅋㅋ 여기서부터가 seet&kendle인것 같아요. 갑자기 이상한놈들이 총질해댐.. 자전거타고 ㅌㅌ 나 죽는줄ㅠㅠ 운전을 못하나봐여 겨우 살아서 도착합니당ㅋ 한번더 튀어야대ㅋㅋ 체력ㄷㄷ 쨋든 클리어햇

GTA 산안드레스 미션공략 #02 - Ryder [내부링크]

여기서부터가 ryder 퀘스트입니다ㅎ 전화를 받고 친구를만나로가죠 구름과자를 입에 물고 잇네요ㅎㅎ 차를 타고 이동합니다. 길을 잘못들엇어요ㅋㅋㅋ 저는 N을 향해가는건줄 알았는데 지금생각해보니까 N은 그냥 북쪽이엇네요ㅋㅋ 저 역삼각형을 향해 이동하세요 겨우 도착ㅠㅠ 운전하는데 토할것같드라구요.. 제가 이런건 도저히 못하는 체질인듯ㅜ 목적지는 이발소였습니다. 왔으니 머리를깎아야죠, 이게 젤비싼 500원 짜리헤어ㅋㅋ 흑형간지 좔좔ㄹ 돈이 없는 관계로 젤 싼헤어로 햇습니다 무난한 빢빢잌ㅋㅋ 피자를 먹고 에너지를 채우래요 너무 많이 먹으면 뚱뚱해진데요ㅋㅋ 현실감잇네 피자를 삽시다 피자한조각에 음료에 감자튀김이 보이는군요 2달러입니다. 웬 강도가들엇나 햇는데 내 친구엿어ㅋㅋㅋ 이런 주어진 목적지로ㅌㅌㅌ 그럼 미션 클리어입니다~ 포스팅 마치겠습니다ㅎㅎ

클로저스 제이 육성기 #04 - 마천루 옥상 [내부링크]

안녕하세요~ 오랜만에 클로저스 제이 스토리 진행상황 보여드려요ㅋ 지금 마천루 옥상(EASY)을 플레이중입니다. 구로역 마지막 던전, 레알 옥상위에서 한 판ㅋ 맵의 최종던전답게 보스 녀석이 등장하네요ㅎㅎ 분위기를 잡습니다. 나를 떨구겠답니다. 너를 떨궈주지ㅋ ㅎㅎㅎ 가소롭군 결국 잡몹 소환하고 튀네요 싱거운녀석ㅋ 노말모드를 플레이하니 더쎈놈들이 나왓음.. 요망하게 생긴년ㅋㅋ 꼬맹이 자식ㅋ 나를 두고 하는말인가? 멋잇네욯 꼬맹꼬맹이지만 잔인합니다 귀척ㅋ 저를 회유하는군요 칼바크 턱스, 아까 잡앗던놈인데 버림받음ㄷ 오랜만에 이빛나 설마....?ㅋ ㅎㅎㅎㅎㅎ 버림받은 녀석 불쌍한 악당의 최후 최후의 발악 그리고 비참한 최후..ㅠㅠ ㅋㅋ마천루 옥상 포스팅 마치겠습니다~ㅂㅂ

청주 가볼만한곳 수암골 청주 야경 [내부링크]

청주 가볼만한곳 수암골 수암골 충청북도 청주시 상당구 중앙동 전화 청주 가볼만한곳 수암골에 대해서 소개해드릴게요~ 수암골은 골목에 그려진 벽화와 드라마 촬영지로 유명한 곳이죠! 제빵왕 김탁구와 영광의 재인 등 많은 드라마가 촬영된 것으로 알고 있는데요, 가는 길은 우암초등학교라는 버스 정류장에서 내리신 후 학교 옆길을 따라 쭉 올라오시면 되요 들어오시면 바로 영광의 재인 촬영장이라는 반짝이는 간판을 보실 수 있어요 ㅎㅎ 달동네에 그려진 아름다운 벽화들을 보실 수 있습니다~ 골목마다 이름도 지어져 있더라구요, 먹보 골목, 의마기 있을것 같은데 거기까지는 생각해보지 않았네요ㅎㅎ 혹시 가게 되면 이 이름의 의미를 유추해보는 것도 재밌을 것 같아요~ 벽화가 그려진 골목사진~ 마을 규모는 그다지 크지 않아서 금방 둘러보실 수 있을거에요. 다만 실제 주민들이 생활하는 공간이니 관광을 오신다면 소음이나 쓰레기 같은 건 유의하셔야 해요! 연탄트리도 있었는데 커플들이 많아서 사진은 찍지 않고 그냥

황석영 바리데기 느낀점 줄거리 [내부링크]

황석영 바리데기 느낀점 줄거리 바리데기 작가 황석영 출판 창비 발매 2007.07.13. 평점 학교 과제로 읽었던 책인데, 이제서야 이렇게 느낀점을 정리해봐요ㅎㅎ 먼저 황석영 작가에 대해 이야기하자면 황석영 작가는 1962년 "입석부근"이라는 작품이 사상계에 신이문학상으로 입선하면서 데뷔했습니다. 작가는 작품을 통해 전쟁으로 인해 황폐화한 현실 속에서 인간미를 통해 훼손된 가치를 극복하자는 내용을 다루는데요, 지금 소개해드리는 "바리데기"도 그러한 작품입니다. 제가 알고 있는 대표작으로는 고등학교때 교과서에서 본 "삼포가는 길"이 있네요ㅎㅎ 대강의 줄거리를 소개해 드릴게요~ 그에 앞서 황석영의 "바리데기"는 설화 바리데기를 모티브로 만들어졌다는 것을 미리 알아두시면 좋아요. 설화 바리데기에서는 바리데기 공주가 막내 딸로 태어나지만 아들을 기대하던 부모님들은 바리를 버리고 바리데기 공주가 무당이고 나중에 부모님을 살리기 위해 험난한 시련을 겪는 내용으로 나오는 걸로 알고 있습니다. 이

깨쓰 뜻 군대용어 뷰티풀군바리 [내부링크]

정보 깨쓰 뜻 군대용어 뷰티풀군바리 향함 2015. 12. 25. 23:51 이웃추가 본문 기타 기능 깨쓰 뜻 군대용어 뷰티풀군바리 웹툰 "뷰티풀 군바리" 중 웹툰 뷰티풀군바리를 보다가 깨쓰라는 단어가 갑자기 궁금해졌네요ㅎㅎ 앞에서 설명했던거 같은데 잊어먹어서..ㅋㅋㅋ 그 뜻을 다시 찾아봤습니다. 네이버 오픈백과 깨스 뜻. 일단 네이버 오픈백과에서 정의는 이렇게 했네요. 깨쓰와 깨스는 같은 말이라고하고 깨스라는 단어를 더 많이 쓰는 것 같네요. 제 생각엔 gas에서 유례된 말인 것 같은데요ㅎㅎ 쉽게 말하면 무엇인가를 금지시키거나 제한하는 것을 말하는 것 같네요. 웹툰 "뷰티풀 군바리" 중. 이런식으로 깨스라는 단어가 활용되는 것 같네요ㅎㅎ 찾아보니 의경에서 사용되는 군대 용어인가 봅니다. 여기서 싸지방이란 싸이버지식정보실로 군대에 있는 컴퓨터실 정도로 생각할 수 있어요. 영화 "창"의 캡쳐. 지금까지 의경에서 사용되는 군대 용어 깨스에 대해 알아봤습니다ㅎㅎ 요새 진짜사나이란 프로그램

나루토 정주행 250화까지 리뷰 [내부링크]

취미 나루토 정주행 250화까지 리뷰 향함 2015. 12. 26. 21:11 이웃추가 본문 기타 기능 나루토 정주행 250화까지 리뷰 나루토 팬아트. 가끔 아프리카tv에서 대정령님의 방송을 즐겨보곤 했는데 대정령님이 드립을 치시는 것 중 나루토에 관한 것들이 있더라구요ㅋㅋ 그래서 방학 전에 1화부터 정주행하기 시작해서 어느덧 250화를 보고 있네요. 알고보니 만화책은 이미 완결이 다 나있더라구요ㅎㅎ 아직 애니는 방영중이고, 저는 애니메이션 정주행 중입니다~ 소리마을 4인방. 양이 너무 방대해서 정주행에 고민되시는 분들이 많을거에요. 일단 나루토를 전혀 모르시면 1화부터는 보셔야해요. 1화부터 중급닌자 시험을 보게되고 사스케가 소리마을로 떠나는 부분까지가 중요한 스토리 부분이죠. 그리고 나루토가 나선환을 배우고 사스케가 치도리를 배우는 부분이기도 하고요. 이때 사쿠라는 정말 민폐캐릭터죠..ㅋㅋ 할 수 있는게 없어ㅠㅠ 아무튼 처음부터 사스케가 오로치마루에게 유혹되는 부분까지 보시면 전

자기전 스마트폰 밤에 잠이안와요! [내부링크]

정보 자기전 스마트폰 밤에 잠이안와요! 향함 2015. 12. 27. 13:17 이웃추가 본문 기타 기능 자기전 스마트폰 밤에 잠이안와요! 자기전 스마트폰을 하는 모습. 제가 요새 밤에 잠이 안와서 항상 스마트폰을 한 두시간 붙잡고 있네요.. 그런데 오히려 스마트폰을 잡고 있던 것이 저를 더 잠 못들게 한다는 거였다니ㅠㅠ 어떤 기사를 보고 깨달았네요. 밤에 잠 못이루는 분들을 위해 kbs뉴스에서 퍼온 동영상 입니다~ kbs뉴스에서 퍼온 뉴스 영상. 출처 http://news.kbs.co.kr/news/view.do?ncd=3205219. 자기전에 스마트폰을 보지 않는 것이 잠을 더 빨리 들게하며 효율적으로 잘 수 있게 한다고 하네요, 덧붙이자면 잠을 자는 공간을 오직 잠을 자는 곳으로만 이용하면 뇌가 그 공간에서는 잠을 자는 곳으로 인식을 하여 잠이 잘 오게 된다네요~ 침대에서는 잠을 자는 것 외에 다른 행동은 왠만하면 삼가해야 겠어요. 그리고 아마 자는 시간을 일정하게 하는 것도

가족여행 보령 대천해수욕장 겨울바다 수산시장 [내부링크]

일상 가족여행 보령 대천해수욕장 겨울바다 수산시장 향함 2015. 12. 27. 19:30 이웃추가 본문 기타 기능 가족여행 보령 대천해수욕장 겨울바다 수산시장 대천해수욕장 충청남도 보령시 신흑동 1029-3 상세보기 가족들과 겨울바다를 보러 대천해수욕장에 다녀왔네요~ 올해 여름에 친구들이랑 물놀이하러 오고 또 오게됬네요, 올해만 두번째ㅎㅎ 대천해수욕장. 그치만 날씨가 또 흐려서ㅠㅠ 사진찍기가 좋지 않았네요. 그리고 바다라 바람도 많이 불어서 좀 쌀쌀했어요. 머드광장. 머드광장이에요~ 요새 미세먼지때문에 야외활동은 자제하라고들 하던데, 사람은 생각보다 많던데요, 다들 겨울바다보러 나왔겠죠?ㅎㅎ 대천항수산시장. 겨울바다는 금방 보고, 가까운 대천항수산시장으로 향했어요. 해산물. 그런데 수산시장은 원래 이렇게 호객행위가 좀 심한가요? 다들 "사장님 아직 식사 안하셨어요? 싸게 해드릴게 일로 와봐요~" 이러면서ㅠㅠ 저는 이런 호객행위가 불편하더라구요. 어쨌든 방어랑 광어 구입해서 오랜만에

알고리즘이란? [내부링크]

Algorithm 알고리즘이란? 향함 2015. 12. 28. 19:14 이웃추가 본문 기타 기능 알고리즘이란? 알고리즘 어떤 문제를 해결하기 위해 명확히 정의된(well-defined) 유한 개의 규칙과 절차의 모임. 명확히 정의된 한정된 개수의 규제나 명령의 집합이며, 한정된 규칙을 적용함으로써... terms.naver.com 요즘 읽는 책이 알고리즘과 관련된 책이어서요ㅎㅎ 이번 기회에 알고리즘에 대해 정리하려고 합니다. 네이버 사전의 내용을 조금 빌려왔습니다~ 알고리즘의 사전적 정의는 어떤 문제를 해결하기 위해 명확히 정의된 유한 개의 규칙과 절차의 모임을 뜻해요. 우리가 사용하는 프로그램들이 작성되는데 중요한 요소가 바로 알고리즘이죠. 알고리즘 표현 방법. 사전에서는 알고리즘의 조건으로 입력, 출력, 명백성, 유한성, 효과성으로 총 5가지를 제시하고 있는데요, 너무 복잡하게 생각할 필요가 없을 것 같아요. 어쩌면 우리는 자연스레 알고리즘에 대해 알고 있는지도 몰라요ㅎㅎ 쉽게

청주 덕일 자동차 운전학원 솔직한 후기.. [내부링크]

일상 청주 덕일 자동차 운전학원 솔직한 후기.. 향함 2015. 12. 28. 23:35 이웃추가 본문 기타 기능 청주 덕일 자동차 운전학원 솔직한 후기.. 덕일자동차운전전문학원 충청북도 청주시 청원구 내수읍 은곡리 228-1 지도보기 딱 작년 이맘때였죠.. 할게 없어서 면허나 따볼까 하는 마음에 가까운 운전학원을 찾아갔었습니다. 바로 덕일 자동차 운전전문학원이죠. 필기랑 실기, 도로주행의 교육과 시험 모두 학원에서 시키는 대로하고 결제도 한 번에 했습니다. 가격은 40만 원이 넘었던 걸로 기억합니다. 일 년 전이라 기억이 가물가물하네요ㅋㅋ 아무튼 결제를 하고 다음에 필기시험 준비한다고 해서 그날 갔습니다. 그래도 저는 뭐 강의라도 해주는 줄 알았습니다. 갔더니 그냥 앞으로의 일정이랑 운전에 대한 것만 알려주더라고요. 한 10분 정도? 그러고는 교육용 동영상 달랑 틀어주고 나가네요; 거기서 책도 샀는데 시간 아까워서 자습만 했네요. 아마 교육시간을 채워야 돼서 그런 걸로 알고 있는데

피파온라인3 엔진업데이트 후 포메이션 추천 섭이 전술 [내부링크]

취미 피파온라인3 엔진업데이트 후 포메이션 추천 섭이 전술 향함 2015. 12. 29. 22:11 이웃추가 본문 기타 기능 피파온라인3 엔진업데이트 후 포메이션 추천 섭이 전술 선수단 정보. 피파3 요새 한창하고 있는데요ㅋㅋ 제가 쓰고 있는 포메이션 소개해드릴게요~ 피파로 유명한 bj중 섭이님이 쓰시는 전술 중 하나를 그대로 쓰고 있어요. 구단 가치는 19억이고 스페셜케미입니다. 유니폼은 라 스페지아가 예뻐서 입고 사용 중이에요ㅋㅋ 원래는 그냥 스페지아였는데 엔진업데이트 후 이름이 라 스페지아로 바뀌었더라고요, 처음에 스페지아가 없길래 팀이 없어진 줄 알았네요ㅋㅋ 포메이션. 포메이션은 4114입니다. 공격수 옆에 RW와 LW를 배치함으로써 공미와 수미 옆의 공간이 비어있는데요. 실제로는 양쪽 풀백이 빈 공간으로 올라와서 공격 가담에 도움을 줍니다. 공격수 4명을 위로 올려놓아 공격력은 막강합니다. 그러다 보니 역습에는 다소 취약할 수 있는데 엔진업데이트 후에 수비 AI가 좋아져서

청주 가볼만한곳 상당산성 자연휴양림 맛집 [내부링크]

일상 청주 가볼만한곳 상당산성 자연휴양림 맛집 향함 2015. 12. 31. 20:07 이웃추가 본문 기타 기능 청주 가볼만한곳 상당산성 자연휴양림 맛집 날씨가 너무 좋아서..ㅎㅎ 청주 상당산성에 다녀왔습니다~ 상당산성은 삼국시대 백제의 상당현에서 유래된 이름이라고 하네요. 말 그대로 하나의 성인데요, 정확한 축성년대는 기록이 없어 알 수 없다고 하네요ㅎㅎ 버스를 타고 상당공원 남문에서 내리시고 조금만 올라오시면 지도를 보실 수 있어요~ 상당산성은 공남문(남문), 미호문(서문), 진동문(동문)으로 외곽이 둘러쌓여 있어요, 북쪽은 산이 막고 있네요ㅎㅎ 저는 남문에서 출발해서 서문으로 걸었습니다. 공남문. 상당산성 남문입니다~ 뭐랄까, 오랜만에 웅장한 옛 구조물을 감상했네요ㅎㅎ 바람이 불어서 날씨가 좀 쌀쌀했는데, 성길을 따라 걷다 보니까 식은땀이 나더라구요ㅋㅋ 아무래도 등산로로 이용되는 것을 보니 경사도 조금 있더라구요. 겨울이지만 햇빛이 좋아 잔디에 앉아서 노시는 분들도 조금 계셨네

감성힙합 추천 원써겐 팻두 기억을 지워주는 병원3 가사 듣기 [내부링크]

취미 감성힙합 추천 원써겐 팻두 기억을 지워주는 병원3 가사 듣기 향함 2016. 1. 3. 22:52 이웃추가 본문 기타 기능 감성힙합 추천 원써겐 팻두 기억을 지워주는 병원3 가사 듣기 원써겐, 팻두. 이맘 때쯤, 겨울에 들으면 정말 좋은 곡이죠, 원써겐과 팻두의 기억을 지워주는 병원 시리즈..ㅋㅋ 그 중에서 저는 3번째 것을 강력 추천드립니다~ 완전 감성힙합ㅠㅠ 듣다보면 노래의 스토리에 푹 빠지됩니다ㅎㅎ 루. 루의 목소리가 이 노래에 정말로 잘 어울린다고 생각해요~ 이 가수분의 다른 노래들은 많이 들어보진 못했지만요, 이 노래를 정말 잘 살리신 것 같아요! 노래 목록을 보니까 드라마 나쁜녀석들의 ost를 하셨더라구요, 드라마는 재밌게 봤었지만 전혀 몰랐네요ㅎㅎ 앞으로 잘 되셨으면 좋겠어요, 가끔 찾아서 들어야겠어요ㅎㅎ 원써겐 (1sagain), 팻두 (Fatdoo) - 기억을 지워주는 병원 3 (Feat. ROO) 가사 너를 지울 수 있다고 믿어왔는데 예고 없이 찾아 온 추억들

나루토 정주행 300화까지 요약 리뷰 [내부링크]

취미 나루토 정주행 300화까지 요약 리뷰 향함 2016. 1. 4. 23:41 이웃추가 본문 기타 기능 나루토 정주행 300화까지 요약 리뷰 저번에 보던 250화에 이어서 줄거리 요약할게요~ 일단 아카츠키 일원 중 한명인 사소리로부터 오로치마루에 관한 정보를 듣게 되는데요, 아카츠키의 일원이었다가 탈퇴한 오로치마루를 못마땅해한 사소리가 오로치마루의 부하에 스파이를 심어놨다는 정보죠. 그리고 얼마 뒤 그 스파이를 무슨 다리에서 만나기로 했다는 정보를 사쿠라에게 주죠. 자기를 쓰러뜨린 상이라면서요..ㅎㅎ 스파이는 카부토였더군요. 사이. 여기서 주요 등장인물 사이가 등장합니다~ 사이는 나뭇잎 마을 강경파의 대표 단조의 부하로 뿌리 출신입니다. 다시 말하면, 지금의 나뭇잎 마을은 3대 호카게에서 츠나데로 이어지는 온화파인데요. 그 덕분에 모래마을과 같은 주변국가와 좋은 관계를 맺고있죠. 강경파는 이런 것 보다는 강력한 힘으로 주변국을 통솔하고 나뭇잎 마을을 무력으로 안전하게 하고자 하는거

사이퍼즈 업데이트 장비 보관함 확장 방식 변경 [내부링크]

취미 사이퍼즈 업데이트 장비 보관함 확장 방식 변경 향함 2016. 1. 5. 12:16 이웃추가 본문 기타 기능 사이퍼즈 업데이트 장비고관함 확장 방식 변경(2015.01) 사이퍼즈 장비 보관함 확장 방식이 변경되었는데요~ 위는 사이퍼즈 홈페이지에서 공개한 자세한 안내사항이에요ㅎㅎ 보관함을 확장하실 때는 기존 테라샵에서 이용하던 장비 보관함 확장권이 아닌 테라 주괴를 이용해서 장비 보관함을 확장하실 수 있습니다. 캐릭터세팅 창을 들어가시면 확인하실 수 있습니다. 변경된 모습입니다. 한 번 늘릴때 30주괴가 필요합니다. 그러면 아이템 슬롯이 200개 확장되네요. 최대 4800칸까지 확장 가능하답니다. 이런거 생길 줄 모르고 테라 주괴를 캐릭터 페이지 늘리는데 다 써버렸는데, 낭패네요ㅠㅠ 이제 주괴를 열심히 모아야겠어요~ㅎㅎ

김범수 오직 너만 듣기 가사 [내부링크]

취미 김범수 오직 너만 듣기 가사 향함 2016. 1. 5. 17:33 이웃추가 본문 기타 기능 김범수 오직 너만 듣기 가사(2015.02) 가사 가도 가도 아는 길을 가고 있지만 누가 봐도 뻔한 사랑 하고 있지만 기다리고 기다린다 나의 사랑 그게 너여서 그게 너여서 그게 너여서 너를 향해 가는 길이 불안하지만 확신 없는 기다림도 두렵긴 하지만 사랑하고 사랑한다 내 사랑 그게 너라서 그게 너라서 내겐 오직 너만 나 오직 너만 나의 시작과 끝은 전부 너이니까 오직 너만 난 오직 너만 원해 나의 처음과 끝은 모두 너라는 사실 그게 너라서 그게 너라서 내겐 전부라서 이런 얘기 하는 나도 별 거 없지만 사랑 말고 줄 게 없어 참 미안하지만 불러보고 불러본다 내 사랑 그게 너라서 그게 너라서 내겐 오직 너만 나 오직 너만 나의 시작과 끝은 전부 너이니까 오직 너만 난 오직 너만 원해 나의 처음과 끝은 모두 너라는 사실 그게 너라서 그게 너라서 내겐 전부라서 하이드 지킬, 나 OST Part.

순천 일출여행 화포해변 순천만 국가정원 [내부링크]

일상 순천 일출여행 화포해변 순천만 국가정원 향함 2016. 1. 5. 22:06 이웃추가 본문 기타 기능 순천 일출여행 화포해변 순천만 국가정원 죽도봉공원 야경. 새해를 맞아 일출여행을 다녀왔어요~ 1월 1일에 다녀온 건데 사진 정리하느라 이제서야 올리네요ㅎㅎ 보통 해돋이하면 동해안을 많이 찾으시잖아요, 사람 많고 복잡한 건 싫어서 순천으로 떠났어요~ 목적지는 화포해변인데 가기 전 시간이 조금 남아서 죽도봉 공원에 들려서 야경보고 갔네요. 너무 늦은 새벽이라 불이 많이 꺼져있었어요ㅜㅜ 죽도봉공원 전라남도 순천시 장천동 53-1 지도보기 화포해변. 그러고 화포해변에 도착했습니다. 확실히 강릉처럼 유명한 해돋이 명소가 아니여서 차는 막히지 않았어요, 그래도 사람이 많이 있더라구요! 해돋이 행사도하고 모닥불도 피워주고ㅎㅎ 천 원짜리 떡국도 먹었어요, 맛은 그럭저럭이었지만 따뜻해서 좋았네요~ 해가 너무 늦게떠서 정말로 안 뜨는줄 알았습니다ㅠㅠ 기다리다가 지쳐서 가는 사람들도 있던 것 같았

메이플스토리 네네치킨 쿠폰나눔(마감) [내부링크]

취미 메이플스토리 네네치킨 쿠폰나눔(마감) 향함 2016. 1. 6. 11:46 이웃추가 본문 기타 기능 메이플스토리 네네치킨 쿠폰나눔(마감) (2015.02) 메이플스토리와 네네치킨이 제휴를 맺어 이벤트를 하더라구요. 치킨을 먹으면 모자 교환 쿠폰을 준데요. 네네 스노윙 치킨, 네네 쇼킹핫양념치킨, 네네 오리엔탈파닭 세가지 종류가 있네요. 저는 가운데 양념치킨이 가장 땡기네요ㅋㅋ 저도 치킨을 먹었다가 하나 얻었습니다. 중고장터에서도 팔기도 하던데ㅋㅋ 공짜로 나눠드립니다. 필요하신분 댓글에 메일 남겨주세요~ 한 장밖에 없으니 참고해주세요ㅠㅠ 사용 후 스샷도 보내주면 좋겠네요. 마감됐습니다! 사용 스크린샷 감사해요~

던전앤파이터 직업순위 던파 직업계급표(2015.01) [내부링크]

취미 던전앤파이터 직업순위 던파 직업계급표(2015.01) 향함 2016. 1. 7. 18:52 이웃추가 본문 기타 기능 던전앤파이터 직업순위 던파 직업계급표(2015.01) 던전앤파이터 직업순위 및 직업계급표 소개합니다. 직업순위는 던전에서의 활용도 및 사람들의 인식에 제 생각을 덧붙여 작성된것이니 오직 참고용으로만 사용해주시면 감사하겠습니다. 그리고 상위 직업 위주로만 적었습니다. 뭐 뻔하지만 십자가를 손에 꽉쥐고계신 크루님이 가장 상위직업이라고 할 수 있겠네요. 또 다른 버퍼가 등장하기 전까지는 변하지 않을듯싶네요. 빨리 새로운 버프캐릭터가 나왔으면 좋겠습니다ㅎㅎ 다크나이트는 귀검사의 스킬들을 짬뽕시켜놔서 콤보설정만 잘해논다면 던전에서 괜찮은 딜량을 뽑아낼 수 있죠. 다만 스킬을 난사하실 경우 MP가 부족할 수 있으니 주의하세요. 소환사는 여마법사 2각 이후 가장 날아오른 캐릭터라고 할 수 있습니다. 물론 직업계급표에 제시하지않은 다른 여마법사 캐릭터들도 나쁘진 않습니다만 소환

4minute (포미닛) - 미쳐 듣기 / 가사 / 뮤비 [내부링크]

취미 4minute (포미닛) - 미쳐 듣기 / 가사 / 뮤비 향함 2016. 1. 9. 14:53 이웃추가 본문 기타 기능 Crazy 아티스트 포미닛(4minute) 발매일 2015.02.09. 상세보기 4minute (포미닛) - 미쳐 듣기 / 가사 / 뮤비(2015.02) 가사 Yeah I'm the female monster You know that Everybody let's get crazy right now Lego 주변 사람들이 나보고 미친 것 같대 너도 날 보고 지금 좀 미칠 것 같대 이해해 나도 내가 좀 미친 것 같아 난 좀 미친 것처럼 리듬에 맞춰 춤도 춰 한번 떴다 하면 여기저기 난리 나 이 밤이 다 가도록 우리 모두 난리 나 답은 정해져 있어 넌 그저 Ok 그저 아무렇게 그렇게 너도 나도 난리 나 더는 널 외롭게 하지 마 눈앞에 세상에 이제 숨겨온 널 찾아봐 Tonight 미쳐 소리 질러 즐겨 봐 또 이 밤이 가잖아 다 뛰어 흔들어 날 보고 미쳐 C R A Z

서든어택 슈퍼페스티벌 2015 사전등록 및 그랜드파이널 일정 [내부링크]

취미 서든어택 슈퍼페스티벌 2015 사전등록 및 그랜드파이널 일정 향함 2016. 1. 9. 22:16 이웃추가 본문 기타 기능 서든어택 슈퍼페스티벌 2015 사전등록 및 그랜드파이널 일정(2015.02) 2.14부터 2.15까지 오프라인에서 열리는 서든어택 슈퍼페스티벌 2015~ 장소는 부산 벡스코네요~ 서든어택 홈페이지에서 청양 코인 1개만 사용하시면 참가신청 사전 등록이 가능합니다. 청양 코인은 서든어택 1시간만 하시면 1개 얻으실 수 있고요, 사전 등록을 안하고 현장에가면 대기시간이 길거나 입장이 불가능하다네요ㅎㅎ 멀리서 가시는 분들은 참가신청 당첨되시면 가는게 좋을 것 같네요. 일정은 다음과 같습니다. 10시부터 7시까지 진행되며 일요일 일정도 비슷해요. 축하공연 가수ㅎㅎ 토요일은 홍진영, 일요일은 걸스데이네요. 가고싶어지는데요ㅋㅋ 서슈페와 더불어 진행되는 2014 챔피언스리그 그랜드파이널~ 랜딩도 진행하네요. 4강에 참가하는 클랜들입니다. 누가 우승할지는 판단하지 않겠습니

AFC 아시안컵 한국vs이라크 하이라이트 골모음 [내부링크]

정보 AFC 아시안컵 한국vs이라크 하이라이트 골모음 향함 2016. 1. 10. 0:37 이웃추가 본문 기타 기능 AFC 아시안컵 한국vs이라크 하이라이트 골모음(2015.01) AFC 아시안컵 4강 한국 대 이라크의 결과가 났습니다. 바로 한국의 2:0 승! 하이라이트 함께보시죠. 전반 20분, 김진수의 날카로운 프리킥을 이정협의 머리로 마무리합니다! 후반 5분, 이상하게 걷어진 루즈볼을 이정협의 가슴 트래핑 이후 김영권의 쐐기골! 이제 우리나라는 아시안컵 결승을 향하게되었고, 슈틸리케호는 오늘도 무실점으로 경기를 마칩니다. 다만 오늘은 김진현선수가 박스라인 바깥에서 수비를 하는 모습을 보여 실점의 위기가 있었지만 무사히 넘겼습니다. 제 생각엔 명백한 실책이었고 너무나 위험한 모습이었습니다. 그리고 수비에서 구멍이라고 불리던 김영권선수는 그동안의 설움을 날려버리는 멋진 발리슛을 보여줬습니다. 지금까지 좋은 슈퍼세이브 많이 보여줬고, 앞으로도 정말 기대되는 선수입니다. 실수 한번쯤

서든어택 상남자 형님 마동석 캐릭터 출시! [내부링크]

취미 서든어택 상남자 형님 마동석 캐릭터 출시! 향함 2016. 1. 10. 15:08 이웃추가 본문 기타 기능 대한민국 대표 상남자 마동석형님이 서든어택에 나타났습니다.(2015.01) 메이킹 필름입니다. 지금껏본 서든어택 메이킹필름중에 가장 웃긴듯요ㅋㅋ 마동석 캐릭터입니다. 캐릭터 획득시 근접무기 글러브가 주어진다고하네요. 캐릭터 사진 중 레드가 착용하고 있는것으로 생각됩니다. 마동석 외에는 착용할 수 없다는게 독특하네요ㅎㅎ 캐릭터 획득시 주어지는 권총 및 근접무기도 있네요. 다음은 감정표현입니다. 이런 족팡매야..ㅋㅋ 그러니까 형이(퍽) 말할때(퍽) 잘들어야지(퍽) ㅋㅋㅋ 둘다 삐소리가 인상적이네요. 선착순 이벤트입니다. 글을 올릴 당시 94명 남았네요. 뜨거운반응ㄷㄷ 선착순 300명은 팬 미팅이던데... 쩝. 주어지는 칭호입니다. 얼른 게임상에서 마동석 캐릭터를 만나보고싶네요. 드라마 나쁜녀석들을 워낙 재밌게본터라, 얼른 서든하로갑시다ㅋㅋ 마지막으로 마동석형님의 불법프로그램

15&(박지민, 백예린) - 사랑은 미친짓(Feat. 칸토of 트로이) 듣기/가사 [내부링크]

취미 15&(박지민, 백예린) - 사랑은 미친짓(Feat. 칸토of 트로이) 듣기/가사 향함 2016. 1. 10. 20:01 이웃추가 본문 기타 기능 사랑은 미친짓 아티스트 15& 발매일 2015.02.09. 상세보기 15& (박지민, 백예린) - 사랑은 미친짓 (Feat. 칸토 of 트로이) 듣기 / 가사(2015.02) 가사 정말 사랑했다고 애써 포장해도 이미 과거형인 걸 추억이 있다는게 어떻게 위로가 돼 정작 너 없이 혼자인 걸 싫어 결말이 나쁜 영화처럼 뻔한 스포일러 싫어 해피엔딩 이라곤 없는 항상 슬픈 반전 사랑은 정말로 미친 짓 내가 했던 가장 미친 짓 그렇게 울고도 난 또 알면서 또 하는 미친 짓 이 몹쓸 짓 이젠 그만 그만 stop it 난 충분한 걸 시작하는 그 순간부터 미친 짓 헤어지는 마지막까지 미친 짓 내가 아닌 이상한 내가 돼 so crazy so crazy 밤하늘의 별만큼 수 많은 약속 이젠 의미 없는 걸 it's over now 다시 또 누군가를 만나고

AFC 아시안컵 한국vs호주 하이라이트 골모음 [내부링크]

정보 AFC 아시안컵 한국vs호주 하이라이트 골모음 향함 2016. 1. 11. 0:39 이웃추가 본문 기타 기능 AFC 아시안컵 한국vs호주 하이라이트 골모음(2015.01) AFC 아시안컵 한국 대 호주는 안타깝게도 한국이 1:2로 패배하였습니다. 하이라이트 모음입니다. 결승까지 올라오면서 단 한번의 실점도 없었지만 결국 실점을 허용하고마네요. 다만 오늘도 김진현의 슈퍼세이브는 있었습니다. 이제 김진현선수는 확실히 대한민국의 골키퍼로 자리잡은듯하네요. 개인적으로는 김진수선수가 아주 눈에 띄었습니다. 수비에서도 공격에서도 열심히 뛰어다니며 끝까지 집중력을 잃지 않는 모습이 좋았습니다. 이청용, 구자철 선수의 부상이 아쉬운 상황이네요. 일찍이 손흥민선수의 골이 터졌다면 경기를 쉽게 풀어나갈 수 있었을텐데, 아쉽게 놓쳤네요. 루옹고에게 아시안컵 첫 실점을 내주는데요, 이건 우리가 못했다기보다는 호주가 잘했네요. 갑작스런 중거리 슈팅이 들어가버립니 다. 그래도 중요한 순간에 확실히 해결

김그림 - 내꺼해요 듣기 / 가사 [내부링크]

취미 김그림 - 내꺼해요 듣기 / 가사 향함 2016. 1. 11. 12:11 이웃추가 본문 기타 기능 내꺼 해요 아티스트 김그림 발매일 2015.01.27. 상세보기 김그림 - 내꺼해요 듣기 / 가사(2015.01) 가사 (씨제이이앤엠주식회사에서 제공했으며, 엠넷닷컴회원이 작성한 가사일수 있습니다) baby 그대 입술을 보면 왜 자꾸 내맘 떨리는거죠 나에게 call back 달콤한 그대의 목소리 지금 듣고 싶은 그 한마디 사랑해요 love 그대 이제 내꺼 해요 내게 말을 해줄래요 좋아한다구요 그대여 love 부끄러워 말을 못해 그대 옆에 숨고는 해 I wanna kiss you one day 나같은 마음으로 나의 두눈을 볼순 없나요 그래요 someday 아직 사랑은 두렵지만 그대라면 행복해지겠죠 사랑해요 love 그대 이제 내꺼 해요 내게 말을 해줄래요 좋아한다구요 그대여 love 부끄러워 말을 못해 그대 옆에 숨고는 해 I wanna kiss you 아직 그대내게 올수 없는거죠

던파 황녀의 흔적, 황녀는 어디로? [내부링크]

던파 황녀의 흔적, 황녀는 어디로? 해상열차에서 에픽퀘스트를 깨다보면 이런 퀘스트를 주는데요. 황녀는 어디로? 밑도 끝도 없이 황녀의 흔적을 찾아오라는데, 이 무슨;; 많이 당황하셨죠? 이렇게 하시면 됩니다. 일단 안개도시 헤이즈에 들어가시면되요. 바로 스나이핑을 하는 저녀석이 드랍을 해줍니다. 지도 상에 빨갛게 표시된 부분에서 등장하는데요. 보스가 왼쪽이든 오른쪽이든 항상 저쪽에서 등장하니 유의하세요. 그런데 이 퀘스트템이 드랍이 잘안되기로 유명해서, 2번하고 바로 트레져 헌터의 비밀 물약을 먹었네요. 귀찮으신 분들은 드시는걸 추천합니다. 트레져 물약을 먹고, 스나이퍼 이리가레를 제거. 바로 황녀의 흔적을 드랍했네요~ 이러시면 퀘스트를 완료하실 수 있습니다. 블로그 전체글 목록 살펴보려면 링크 참조

타이니팜 이벤트 추억의 아이템 뽑기 Back to the 90's [내부링크]

취미 타이니팜 이벤트 추억의 아이템 뽑기 Back to the 90's 향함 2016. 1. 11. 22:51 이웃추가 본문 기타 기능 타이니팜 이벤트 추억의 아이템 뽑기 Back to the 90's 타이니팜 패치 이후 새로운 이벤트가 생겼습니다. 바로 Back to the 90's 추억의 아이템 뽑기인데요. 문구점 앞에서 뽑던 뽑기.. 저도 많이 했던 기억이 나네요ㅎㅎ 여우가 지누션의 말해줘를 노래하고 있습니다ㅋㅋ 매월 1회는 무료로 뽑을 수 있네요. 뽑기 할 때마다 가격은 올라갑니다. 무료뽑기는 매일 오전 11시에 리셋되며 다음과 같은 동물/아이템들을 얻을 수 있습니다. 저거 마지막에 오징어 삼치기 아닌가요? 되게 탐나네요ㅎㅎ 뽑기를 함에 따라 주어지는 보상입니다. 골드와 벨을 퍼주네요. 최대 35회 뽑을 경우 벨 30개가 주어지는군요. 기간이 1.22~1.29 이니까 오늘을 포함하여 기회가 총 7번이네요. 그렇다면 최대 보상을 얻기위해선 하루에 5번씩 뽑기를 이용하시면 되겠습

길구봉구 - 좋아(JOA) 듣기 / 가사 [내부링크]

취미 길구봉구 - 좋아(JOA) 듣기 / 가사 향함 2016. 1. 12. 11:45 이웃추가 본문 기타 기능 좋아 (Joa) 아티스트 길구봉구 발매일 2015.01.28. 상세보기 길구봉구 - 좋아(JOA) 듣기 / 가사 가사 (씨제이이앤엠주식회사에서 제공했으며, 엠넷닷컴회원이 작성한 가사일수 있습니다) 어린아이를 닮은 웃음이 좋아 아무 말이라도 해줘 달콤한 너의 목소리로 엄마를 닮은 미소가 좋아 네 곁에 있으면 맘이 편안해 널 사랑해서 좋아 손을 잡고 길을 걷는게 좋아 한 귀로 나눠 듣는 음악도 좋아 난 너와 함께 있다면 지루한 하루도 좋아 그냥 얘기할 때 손짓이 좋아 멍하니 생각하는 표정도 좋아 난 네가 알지 못하는 너의 모든 것들이 다 어린아이를 닮은 웃음이 좋아 아무 말이라도 해줘 달콤한 너의 목소리로 엄마를 닮은 미소가 좋아 네 곁에 있으면 맘이 편안해 널 사랑해서 좋아 너를 웃게 할 수 있어서 좋아 널 데려다 줄 수 있다는게 좋아 난 너와 함께 있다면 바보가 되어도 좋아

사이퍼즈 승부예측 액션토너먼트 2주차 경기예측(2015) [내부링크]

취미 사이퍼즈 승부예측 액션토너먼트 2주차 경기예측(2015) 향함 2016. 1. 12. 15:08 이웃추가 본문 기타 기능 사이퍼즈 승부예측 액션토너먼트 2주차 경기예측(2015.02) 사이퍼즈 승부예측 이벤트! 1.26부터 3.1까지 열리는 액션 토너먼트 경기 결과 예측 이벤트를 진행하네요~ 2주차 경기는 제닉스스톰X 대 NEXT의 경기네요. 승부 예측은 총 5문항으로 이루어져있습니다. 첫 타워 파괴, 첫 킬 성공, 첫 트루퍼 선점, 최종 승리, 경기 스코어. 저는 이렇게 예측했는데요. 5문항 모두 선택하는데 드는 비용은 총 66만 파운드... 1파운드당 1달러에 달러샵에서 구매할 수 있습니다. 이렇게 66만 파운드를 소모하시면 의대생 상자가 주어집니다. 66만달러로 의대생 상자 하나 사는셈... 운좋게 모두 맞힌다면 액토꾸러미도 줍니다. 맞추면 대박이네요~ 그치만 어렵겠죠;;ㅎㅎ 주차를 모두 참여하면 슈퍼 부스터 레어를, 모든 승부 예측을 맞추면 선택형 런웨이 박스를ㄷㄷ 모든

서든어택 출발서든팀~ [내부링크]

취미 서든어택 출발서든팀~ 향함 2016. 1. 12. 18:40 이웃추가 본문 기타 기능 서든어택 출발서든팀~(2015.01) 쏴춘기 업데이트 제 4탄! 신규맵 출발서든팀이 공개됬습니다. kbs의 출발드림팀을 모방한듯하네요. 서든어택 홈페이지에서 퍼온 플레이영상입니다. 게임 타입은 프리러닝인데요, 신규로 등록된 타입입니다. 제 생간엔 같은 타입의 다른 맵들이 더 업데이트 될듯 싶네요. 총 6개의 구역으로 되있더라고요. 아마 갈수록 어려워졌던것 같습니다. 출발서든팀은 2단 점프가 가능합니다. 스페이스 두번누르시면되요ㅎㅎ 신규맵 등록기념 이벤트입니다. 개인 스코어는 한 구역에서 중간지역에 도착하거나 혹은 골인을 할 경우 얻으실 수 있습니다. 처음 공개되는 애니메이션 칭호, 탐나네요ㅜㅜ 주간랭킹 달성시 지급해주는 아이템이네요. 신규무기들은 이렇습니다, 컨셉은 반투명. 직접 플레이한 스샷 첨부합니다~ 시작하면 보게되는 버섯들. Ready~ 무빙워크를 지나거나 물속을 지나거나 하늘위로 올라

써니힐 - 교복을 벗고 듣기 / 가사 / 뮤비 [내부링크]

취미 써니힐 - 교복을 벗고 듣기 / 가사 / 뮤비 향함 2016. 1. 12. 22:06 이웃추가 본문 기타 기능 1st Album Part B `Sunny Blues` 아티스트 써니힐(Sunny Hill) 발매일 2015.01.29. 상세보기 써니힐 - 교복을 벗고 듣기 / 가사 / 뮤비 가사 (씨제이이앤엠주식회사에서 제공했으며, 엠넷닷컴회원이 작성한 가사일수 있습니다) 오늘따라 출근길은 정말 많이 춥네 앞만 보고 달려왔던 시간들 이번 여름에는 휴가도 못 갔죠 내가 원한 삶이 아닌데 그 때마다 생각나죠 교복 입은 그 때 뭘 입을지 고민하지 않았지 명찰 잊지 않고, 머릴 빗던 꿈꾸던 소녀 행복한 그 때로 (그 때로) 돌아가고 싶어 (가고파) 화장 안 하고도 깨끗했었던 철부지 소녀야 하루하루 매일 변해가네 난 다시 돌아가고 싶어 꺄르르 웃던 행복했던 그 시간들이 그리워 엄마 품에 안겨 잠들었지 그 땐 좁았어도 아늑했던 우리 집 사실 우리 집이 아닌 전세지만 오늘따라 그 동네가 그리워

클랜 시스템 개선 및 신규맵 듀오 업데이트 [내부링크]

취미 클랜 시스템 개선 및 신규맵 듀오 업데이트 향함 2016. 1. 13. 0:46 이웃추가 본문 기타 기능 클랜 시스템 개선 및 신규맵 듀오 업데이트(2015.01) 서든어택 쏴춘기 업데이트 제 5탄! 클랜 시스템 개선인데요. 내용 요약입니다. 나름 대규모 업데이트인데요ㅎㅎ 2대2 전용맵 듀오가 등장합니다. 서든어택 홈페이지에 공개된 듀오맵 영상입니다. 폭탄설치지역도 1개 뿐이고 플레이인원도 적으니 맵도 별로 넓지 않은것 같은데 어떻게 될지 기대되는한편 걱정도되네요. 어쨌든 이번 주요업데이트 내용은 클랜 시스템 개선입니다. 클랜 경험치를 쌓음에 따라 증가하는 클랜등급이 확장되네요. 클랜버프 시스템이 추가됩니다. 개인적으로 이게 제일 마음에드네요ㅎㅎ 클랜버프 중 스카우터2의 기능입니다. 수류탄 소지현황까지 나오네요ㄷㄷ 명예인식표입니다. 랭킹에 들어야 주어지네요... 클랜내에서 이벤트를 열 수있는 기능이 추가됩니다. 인원이 많은 클랜이 활용하면 좋을것 같네요~ 포지션을 지정할 수 있

파괴자 던전의폭군, 하리수 모델의 파괴자온라인 [내부링크]

취미 파괴자 던전의폭군, 하리수 모델의 파괴자온라인 향함 2016. 1. 17. 22:22 이웃추가 본문 기타 기능 파괴자 던전의폭군, 하리수 모델의 파괴자온라인(2015.01) 1월 오픈베타한 신작게임, 파괴자 : 던전의폭군. 흔히들 "파괴자온라인"이라고 하더군요. 장르는 MMORPG 구요. 특이하게도 웹게임입니다. 공식사이트에서 퍼온 홍보영상입니다. 하리수 정말 오랜만에 보네요ㅎㅎ 이번 게임의 홍보 모델입니다. 스크린샷입니다. 디아블로 느낌이 난나고 많이들 하더군요. 웹게임 치고는 그래픽 괜찮지 않나요?ㅎㅎ 마지막으로 공식 플레이 영상입니다. 네이버 채널링도 되있어서 게임하기 정말 수월할것 같아요~

한해(팬텀) - 올해의 남자 (Feat. D.meanor) 듣기 / 가사 / 뮤비 [내부링크]

취미 한해(팬텀) - 올해의 남자 (Feat. D.meanor) 듣기 / 가사 / 뮤비 향함 2016. 1. 17. 23:34 이웃추가 본문 기타 기능 한해(팬텀) - 올해의 남자 (Feat. D.meanor) 듣기 / 가사 / 뮤비(2015.01) 365 아티스트 한해 발매일 2015.01.30. 상세보기 라디오에서 부른 라이브 영상입니다! 가사 (씨제이이앤엠주식회사에서 제공했으며, 엠넷닷컴회원이 작성한 가사일수 있습니다) 니가 다른 사람을 봐도 계속 너의 눈을 맞춰 더 다른 남자들은 니 몸밖에 몰라 내가 너의 올해의 남자가 돼줄게, yeah 난 내 얘길 하는 것보다 니 얘길 듣는 게 더 좋아 내 귀에 딱 들어맞어 너의 데시벨 벌써 두 시간 지났어 지금이 몇 시게? It's 2 O'CLOCK (2 o'clock) 니 삶이 궁금해 전부다 (너의 전부가) 니가 어떻게 살아왔는지 어떤 생각이 서로 다른지 우리 대화는 절대 마르지 않아, 하나부터 열까지 너를 남김없이 알아가고 싶어 아니,

타이니팜 숨어든 망이지 돌보고 천마를 얻자! [내부링크]

취미 타이니팜 숨어든 망이지 돌보고 천마를 얻자! 향함 2016. 1. 18. 11:06 이웃추가 본문 기타 기능 타이니팜 숨어든 망이지 돌보고 천마를 얻자!(2015.02) 타이니팜 이벤트~ 잘 키운 망아지 하나! 농장에 숨어든 망아지를 돌보고 여러 아이템들을 획득하는 건데요. 농장에 새로 등장한 퀘스트~ 겨울이 다갔으니, 애정을 주어 농장을 따뜻하게 하자네요ㅎㅎ 애정을 70회 주면 이번 퀘스트의 조연인 숨어든 망아지를 얻으실 수 있습니다. 그럼 이번 퀘스트의 주연인 천마를 얻기 위해서는 어떻게 해야할까요? 숨어든 망아지에게 밥을 주고 천마의 과일나무에서 수확하고 애정 30번을 주면 돌보기 1회 달성입니다. 천마의 과일나무는 상점에서 구매 혹은 숨어든 망아지 획득 이후의 퀘스트를 진행하시다보면 얻으실 수 있습니다. 이렇게 해서 돌보기를 15회 달성하시면 천마 하나를 얻으 실 수 있어요~ 매 1회 달성시 얻는 천마의 깃털은 행운상점에서 이벤트 럭키백을 여는데 사용가능하네요. 언제 업

서든어택 차세대 걸그룹, EXID 캐릭터 출시! 위 아래~ [내부링크]

취미 서든어택 차세대 걸그룹, EXID 캐릭터 출시! 위 아래~ 향함 2016. 1. 18. 12:48 이웃추가 본문 기타 기능 서든어택 차세대 걸그룹, EXID 캐릭터 출시! 위 아래~ 서든어택 차세대 걸그룹, EXID 캐릭터가 출시했습니다. 위아래로 큰 인기를 모은 EXID는 LE, 정화, 하니, 솔지, 혜린으로 이루어진 5인조 걸그룹입니다. 서든어택에 공개된 모습, 함께 보시죠~ 캐릭터 모습들, 그리고 연예인 캐릭터의 핵심 감정표현입니다 공개합니다~ 역시 위아래 댄스군요ㅎㅎ 위 아래 위위 아래~ 다음은 출시 기념 스페셜 이벤트입니다. 선착순1000명, 마우스패드랑 브로마이드주네요. 갖고싶당ㅠㅠ 주어지는 칭호입니다, EXID와 멤버들의 이름이네요. 마지막으로 서든어택 홈페이지에서 퍼온 메이킹필름입니다, 더할 나위 없이 상큼한 걸그룹의 모습이네요ㅋ 참, 캐릭터 출시와 함께 카운트 현황판 기능도 추가됬네요. 그동안 널부러져있던 카운트들을 한눈에 알아볼 수 있는 편의 시스템이네요. 카

소진(걸스데이) - 아찔아찔 듣기/가사 [내부링크]

취미 소진(걸스데이) - 아찔아찔 듣기/가사 향함 2016. 1. 18. 14:17 이웃추가 본문 기타 기능 떴다! 패밀리 OST Part 2 아티스트 소진 발매일 2015.01.30. 상세보기 소진(걸스데이) - 아찔아찔 듣기/가사 가사 (씨제이이앤엠주식회사에서 제공했으며, 엠넷닷컴회원이 작성한 가사일수 있습니다) 슬쩍 훔쳐볼까, 모른척할까 온종일 울려되는 톡만 궁금해 표정관리 안돼 너와있으면 감추려해도 티가나 i'll always think of you i'll be always loving you 내가슴이 너래, 너만 원한대 백번천번 물어봐도 내맘 아찔아찔하게 아슬아슬 하게 손끝 살짝 스칠 때 숨을 쉴 수 없어 입가에 번진 미소를 참긴 난 너무나 벅차 내맘 짜릿짜릿하게 찌릿찌릿 하게 한순간에 심장 쿵. 어쩔수가 없어 온몸에 퍼지는 두근대는 떨림을 멈추고 싶어. 뚜루~~~ 맑았다 흐렸다 상관없는척 네 기분따라 내 마음도 흔들려. 빤히 쳐다보며 장난칠때면 어쩔줄 몰라 당황해 i'l

사이퍼즈 수박상자 개봉기, 안개정재소 이벤트 [내부링크]

취미 사이퍼즈 수박상자 개봉기, 안개정재소 이벤트 향함 2016. 1. 18. 15:04 이웃추가 본문 기타 기능 사이퍼즈 수박상자 개봉기, 안개정재소 이벤트(2015.02) 2014사이퍼즈 연말정산 이벤트~ 연말을 맞아서 포그를 정산해줌과 동시에, 안개정제소에서 깜짝 상품 판매를 실시하네요. 액토꾸러미, 오리무중 상자 10배, 수박상자. 가격은 역시 비싸요... 그래도 이벤트기간동안 포그획득은 2배로 늘려주네요. 언제 시작해서 언제 끝날지 모르는건 아니고 아마 이벤트가 끝나는 2.12 점검전 까지 판매될 아이템들입니다. 대부분 랜덤의 아바타+주괴+달러+주화의 구성으로 되어있으며 아마 이걸 사는 분들은 코스튬을 노리거나 주괴라도 얻고 싶은 심정으로 많이들 구매하실거에요. 5000포그를 모아 수박상자 5개를 질렀습니다. 수박상자는 무제한 코스튬, 부스터, 그랑주화, 테라주괴 중 랜덤으로 지급된다네요. 코스튬을 얻었으면 좋겠다는 마음으로 지른 결과물들입니다. 제 수박상자에서 나온 아이템

소야&KK - 내편남편 듣기 / 가사 / 뮤비 [내부링크]

취미 소야&KK - 내편남편 듣기 / 가사 / 뮤비 향함 2016. 1. 18. 22:40 이웃추가 본문 기타 기능 내편남편 아티스트 소야, KK 발매일 2015.01.29. 상세보기 소야&KK - 내편남편 듣기 / 가사 / 뮤비 가사 (씨제이이앤엠주식회사에서 제공했으며, 엠넷닷컴회원이 작성한 가사일수 있습니다) yeah so many struggles out there this song is about it (이해가 안돼) 대체 왜 하나만 알고 둘은 잘 몰라 둘만 알면 다 아는 걸로 알아 남자는 '만약' 이란 단어는 사전에 없단 말야 일어나지 않은 일을 왜 고민해? 모든 대답으로 YES만을 원해? (Yes do it like that) 듣고 싶어하는 말만 앵무새처럼 반복하길 원한다면 해줄 수 있어 Lady 인터넷이 가르쳐 준 연애비법 드라마 속 슬픈 여주인공 하고싶어? 남자는 다 똑같다는 말 (남잔 다 똑같아) Ha! 여잔 뭐 다른 것 같아? (뭐래..) 잘못한 게 대체 뭔지 (몰

서든어택 아이템믹스, RARE칭호 얻기 [내부링크]

취미 서든어택 아이템믹스, RARE칭호 얻기 향함 2016. 1. 18. 23:27 이웃추가 본문 기타 기능 서든어택 아이템믹스, RARE칭호 얻기 서든어택 아이템믹스 결과 및 RARE칭호 얻는 법 알려드릴게요~ 개인창고에 가셔서 아이템 믹스를 누르면 다음과 같은 창이 나타납니다. 사용하지 않은 총이나 캐시템 등의 재료를 2개 이상 넣어야 아이템 믹스를 할 수 있는데요. 아이템 믹스 결과를 캐릭터 / 총 / 랜덤 중에 선택하고 아이템 믹스를 누르시면 됩니다. 값어치가 높을수록 아이템 믹스 등급이 올라갑니다. 랜덤으로 돌린 결과 TRG흑사 60일이 나왔네요. 스나는 잘 쓰지도 않는데... 이렇게 A등급 이상을 맞춘 후에 아이템 믹스를 하시면 RARE칭호를 획득하실 수 있습니다. TRG흑사가 필요없어서 하나 넣고 돌렸는데 이렇게 되버렸네요..ㅋㅋ 와 오늘의 아이템 믹스는 최악이었습니다ㅠ 그렇게 얻은 TRG21(IS) G.Bear 30일도 흑형 캐릭터 7일로 날려먹었네요... 진작에 캐릭

gta산안드레스 미션공략 #03 - Ryder [내부링크]

취미 gta산안드레스 미션공략 #03 - Ryder 향함 2016. 1. 19. 8:31 이웃추가 본문 기타 기능 gta산안드레스 미션공략 #03 - Ryder gta 산안드레스 미션공략 세번째 Ryder 시작합니다. 옆집에 살고있는 Ryder를 만나러 가세요. 전화가 걸려오는데 탭키를 누르면 받을 수 있습니다. 말해줄게 있다네요. 갱에 괜련된 일들입니다. 전화를 마치면 빨간원안으로 들어가세요. 성격이 급한 Ryder를 만나실 수 있습니다. 오랜만에 만났으니 애정표현을 해달라네요. 뭐 이런애들이 있어ㅋㅋ 깜디...ㅋㅋㅋ 피자집을 털자네요. 아주 아름다운 상황. 출발! 내 운전 실력을 보여주지. 가자. 촌스러운 헤어부터 바꾸러 갑시다. 카메라 위치변경은 V를 누르시면됩니다. 지도상에 빨갛게 표시한 네모지역으로 이동하세요. 둘이 아주 재밌는 얘기를 나눕니다. 그냥 도로를 따라서 네모로 잘 가시면 되요. 빨간 원으로 들어갑시다. 이발소 도착. 머리를 잘라야만 미션이 클리어되요. 헤어 종류

타이니팜 공략 팁, 꾸미기 아이템을 얻자! 무료 럭키백 [내부링크]

취미 타이니팜 공략 팁, 꾸미기 아이템을 얻자! 무료 럭키백 향함 2016. 1. 19. 9:18 이웃추가 본문 기타 기능 타이니팜 공략 팁, 꾸미기 아이템을 얻자! 무료 럭키백 타이니팜 공략, 무료 럭키백을 열어라! 농장 리모델링을 하려는데 꾸미기 아이템이 부족하지는 않으신지요? 그렇다면 다음 팁을 주목해주세요. 바로 무료 럭키백을 통한 꾸미기 아이템을 획득하는 것인데요. 자신의 농장에 들어간 후 빨갛게 동그라미친 행운상점을 클릭하세요. 바로 이곳에 '럭키백'이 존재하는데요. 다음과 같은 꾸미기 아이템들을 획득할 수 있습니다. 꽁꽁 숨어있기 때문에 깜빡하고 지나칠수도 있지만, 꼬박꼬박 열어주신다면 희귀한 아이템을 얻을 수 있을지도 모릅니다! 획득 가능 아이템은 무궁무진합니다. 하루에 한 번씩 무료로 열 수 있습니다. 획득한 아이템입니다. 더 구매하고 싶으시다면 벨을 사용하실 수 있는데요. 1개당 10벨로 10개를 사면 90벨이네요. 다만 벨을 사용하는것은 추천하지 않습니다~ 하루에

박정현 - 미장원에서 듣기/가사 [내부링크]

취미 박정현 - 미장원에서 듣기/가사 향함 2016. 1. 19. 10:27 이웃추가 본문 기타 기능 나는가수다 시즌3 1회 `자신의 대표곡` 아티스트 Various Artists 발매일 2015.01.30. 상세보기 박정현 - 미장원에서 듣기/가사 가사 (씨제이이앤엠주식회사에서 제공했으며, 엠넷닷컴회원이 작성한 가사일수 있습니다) 이제 난 오늘부터 새로운 사람이 되죠 거울 속에 비친 내 모습이 낯서네요 그대 날 떠나간 후 많이도 울었었죠 그 긴 기다림을 이제 그만 하려해요 세상엔 내가 아무리 진실로 기도를 해도 이룰 수 없는 일 있는 가봐요 나 이제 머릴 자르며 새로운 삶을 준비하지만 주위의 친구들에겐 유행에 맞춘 내 새 모습 어떠냐며 자랑해야 하겠죠 내겐 두가지의 삶이 있죠 그대 함께 있던 인생과 나 홀로 살아갈 인생 나 이제 머릴 자르며 그 두번째를 준비하지만 한번만 눈을 감으면 두눈에 고인 눈물 흘러내릴텐데 어떻게 해야 하나요 나 이제 강해질께요 내 마음 속에 그댈 보낼께요

던파 잊혀진땅 잠쩔 공략 [내부링크]

취미 던파 잊혀진땅 잠쩔 공략 향함 2016. 1. 19. 14:28 이웃추가 본문 기타 기능 던전앤파이터 잊혀진땅 잠쩔에 대해 공략해드리겠습니다. 일단 잠쩔이란 잠수쩔의 줄임말로 인형을 소환하고 사냥하는 동안 플레이어는 아무것도 하지않고 경험치를 획득하는 것을 말합니다. 먼저 잊혀진땅에 들어가기에 앞서 유적 소녀를 2개 구입하세요. 경매장에서 쉽게 구할수 있으며 대부분 서버에서 2만원 이내로 구입하실 수 있을겁니다. 스타트서버는 잘 모르겠네요. 유적 소녀를 이용하는 이유는 유적 소녀같은 경우 메카닉이기때문에 각종 로봇들을 소환하여 사냥이 빠르고 잊혀진땅 잠쩔이 유명해지면서 가격도 착하기 때문입니다. 일단 잊혀진땅에 들어오신 후 지도상에서 네모친곳으로 가시면됩니다. 제 생각엔 여기가 잊땅 잠쩔에서는 가장 적절한곳인것 같네요. 구매하신 유적소녀를 소환하신뒤 빨갛게 네모친 구석에 캐릭터를 세워두시면 됩니다. 그리고 키보드 설정에서 기본공격 연사기능을 체크하신 뒤, X키를 누르신 상태에서

Zion.T(자이언티) & Crush (크러쉬) - 그냥 (Just) 듣기/가사/뮤비 [내부링크]

취미 Zion.T(자이언티) & Crush (크러쉬) - 그냥 (Just) 듣기/가사/뮤비 향함 2016. 1. 19. 15:51 이웃추가 본문 기타 기능 Young 아티스트 Zion.T, 크러쉬(CRUSH) 발매일 2015.02.02. 상세보기 Zion.T(자이언티) & Crush (크러쉬) - 그냥 (Just) 듣기/가사/뮤비(2015.02) 가사 (씨제이이앤엠주식회사에서 제공했으며, 엠넷닷컴회원이 작성한 가사일수 있습니다) 내가 안쓰러워 보여 인사하는 거라면 내 마음 다칠까 걱정 말고 그냥 지나가면 돼요 Nanana 나 나나 Nananana 나나 내 마음 아플까 걱정 말고 사실 난 아무렇지도 않아 꼭 아픈 사람처럼 보여도 하고픈 이야기 너무 많았는데 결국 나 혼자 나 혼자 나 혼자서 어쩌구 사실 나는 널 좋아하지 않아 오히려 미워해 싫어해 매일 밤 홀로 누운 침대 위에서 꼭 끌어안은 이불은 추워 내가 안쓰러워 보여 다가오는 거라면 내 마음 아플까 걱정 말고 그냥 지나가면 돼요

gta산안드레스 미션공략 #04 - Tagging Up Turf [내부링크]

취미 gta산안드레스 미션공략 #04 - Tagging Up Turf 향함 2016. 1. 19. 17:43 이웃추가 본문 기타 기능 gta산안드레스 미션공략 #04 - Tagging Up Turf gta 산안드레스 미션공략 네번째, Tagging Up Turf 시작하겠습니다. 농구하는 뚱보와 바보. 훗ㅋㅋ 페인트로 전지역을 되찾자네요. ㅋㅋ 뚱보에게 디스. 운전은 맨날 나만 시켜.. 차를 탑니다. 지도상에 네모를 쫓아가셔요. 태그를 그립니다. 뿌리고자하는 대상에 마우스 왼쪽버튼을 꾹 누르고있으면 됩니다. 2개를 찾아서 직접 뿌리고 오면됩니다. 지도에 녹색으로 표시되있으니 문제없이 하실 수 있습니다. 여기도 하나ㅎㅎ 돌아가시면 다른 갱의 구역에 들어가게됩니다. 오래 돌아다니면 문제가 생기나봐요. 무서웠음ㅠㅠ 일단 목적지를 향해갑니다. 혼자 버려지게되요. 역시 지도상의 녹색네모를 따라 스프레이를 뿌립시다. 그런데 상대 갱들이 보이네요ㄷㄷ 갱들의 얼굴에 스프레이를 뿌려 위협합니다. 그리

기리보이, 매드클라운, 주영 - 0 (YOUNG)(Feat. 노머시) 듣기/가사/뮤비 [내부링크]

취미 기리보이, 매드클라운, 주영 - 0 (YOUNG)(Feat. 노머시) 듣기/가사/뮤비 향함 2016. 1. 19. 19:21 이웃추가 본문 기타 기능 NO.MERCY (노머시) Part 3 아티스트 기리보이(Giriboy), 매드 클라운(Mad Clown), 주영 발매일 2015.02.05. 상세보기 기리보이, 매드클라운, 주영 - 0 (YOUNG)(Feat. 노머시) 듣기/가사/뮤비 가사 I got that nasty flow 넌 병든 닭 내게는 이미 왔고 넌 기다리는 중 볕들 날 스냅백 아래 굴려 대는 계산 빨리 벌려보소 개판 넌 혓바닥 데이고 맛 볼 거야 지옥 There's level to this game boy 체급이란 게 있다고 애초에 I spit fire get higher Feel so fresh as always 1은 외로운 숫자 2는 첫 번째 패배자 이슈 좇는 것들 존중 따윈 없다 Wait a minute 누구에겐 no manner shit 갑툭튀가 내 첫인상

사이퍼즈 유니크 합성 팁 [내부링크]

취미 사이퍼즈 유니크 합성 팁 향함 2016. 1. 20. 10:23 이웃추가 본문 기타 기능 사이퍼즈 유니크 합성 팁에대해서 알려드리겠습니다. 사이퍼즈 유니크 합성을 위해 가장 합리적인 조합은 2레어, 3언커먼 조합입니다. 합성비용과 추가투자 주화는 물론 풀베팅을 하는것이 좋지만 이런식으로 합성비용최대와 90주화만 투자하여도 유니크 확률이 보통이기때문에 무방하다고 생각됩니다. 주화를 조금이라도 아껴쓰기 위해서ㅎㅎ 꾸준히 시도하시다보면... 대충 3번중 1번은 유니크를 드실수 있을겁니다. 물론 확률이지만요. 다음으로 추천하는 조합은 3레어, 2언커먼입니다. 여기에 12000달러와 40주화를 베팅하여 주화를 아껴쓰는거죠. 주화가 너무 부족하거나 레어가 넘치는 경우 하시면되겠지만 3레어나 합성하는건 낭비하는감이 없잖아 있기때문에 이거보다는 2레어, 3언커먼 조합을 추천합니다. 주화가 부족하시다면 섬멸전을 통해 꾸준히 주화를 모으는것이 현명한 방법입니다. 마지막으로 필요없는 유니크가 있을

홍진영 - 사랑의 와이파이 듣기 / 가사 / 뮤비 [내부링크]

취미 홍진영 - 사랑의 와이파이 듣기 / 가사 / 뮤비 향함 2016. 1. 20. 11:39 이웃추가 본문 기타 기능 조영수 All Star - 홍진영 아티스트 홍진영 발매일 2015.02.04. 상세보기 홍진영 - 사랑의 와이파이 듣기 / 가사 / 뮤비 가사 (씨제이이앤엠주식회사에서 제공했으며, 엠넷닷컴회원이 작성한 가사일수 있습니다) 오직 나만을 사랑해 줘요 평생 나만을 바라봐 줘요 음 첫눈에 홀딱 반했나 봐요 사랑의 삘이 통했나 봐요 그대는 이제 내 꺼 영원히 내 꺼야 당신만이 내 사랑 하루도 우리 사랑 끊기면 안 돼 느려도 싫어 싫어요 낮에도 한 밤에도 팡팡 터져라 사랑의 와이파이야 첫눈에 홀딱 반했나 봐요 사랑의 삘이 통했나 봐요 그대는 이제 내 꺼 영원히 내 꺼야 당신만이 내 사랑 오직 나만을 사랑해 줘요 평생 나만을 바라봐 줘요 당신 밖에 나는 몰라요 내겐 당신 뿐이야 오늘은 나를 향한 그대 마음이 웬일로 잡히질 않아 산 넘고 물 건너도 팡팡 터져라 사랑의 와이파이야

서든어택 신병 칭호 얻는법 [내부링크]

취미 서든어택 신병 칭호 얻는법 향함 2016. 1. 20. 12:51 이웃추가 본문 기타 기능 서든어택 '신병' 칭호 얻는법에대해서 설명해드리겠습니다. 서든어택 대기화면을 보시면 가이드 대기중을 확인하실 수 있는데요. 일정 계급을 달성한 후 게임을 한판 완료하시면 미션을 줍니다. 예를들면 이건 4번째 미션데요. 미션 내용과 보상에 대해 설명해줍니다. 확인을 누르시면되요. 용병전을 해보라니 하면됩니다. 했지요. 보상을 줍니다. 참 쉽죠?ㅎㅎ AK말고도 데저트이글이나, 근접무기도 줘요ㅎ 받은건 도끼. 다음 미션은 중사 1호봉 달성시 주어지네요. 이렇게 가이드 조건을 충족시킨 후 모든 미션을 완료하면 신병이라는 칭호가 주어집니다. 레벨업만 해두면 제일 얻기 쉬운 칭호가 아닐까싶네요.

아웃사이더(Feat.나비) - 문신 듣기 / 가사 / 뮤비 [내부링크]

취미 아웃사이더(Feat.나비) - 문신 듣기 / 가사 / 뮤비 향함 2016. 1. 20. 14:20 이웃추가 본문 기타 기능 아웃사이더(Feat.나비) - 문신 듣기 / 가사 / 뮤비 문신 아티스트 아웃사이더 발매일 2015.02.05. 상세보기 가사 늘상 기대고 싶은데 내 곁엔 니가 없어 펑펑 울고만 싶은데 내 품엔 니가 없어 당장 만나고 싶은데 꾹 참고 기다리는 게 익숙해 담담하려고해도 결국 매일 밤마다 눈물이 고여 너를 너무 사랑하고 또 좋아하고 또 보고 싶은데 점점 서로가 서로의 빈자릴 채워주지 못해 잘 지내 잘 지내지 못해 실은 몸도 마음도 온통 온전하지 못해 시름시름 앓고 있어 흩어진 퍼즐처럼 산산조각이 나버린 우리 스쳐간 바람처럼 영영 어긋나버린 우리 함께한 그리운 기억들과 함께 할 설레는 그날을 그리며 하루하루를 버텨왔지만 결국 깨어진 유리 이 노래는 너와 내가 써내려간 슬픔의 기록 들리니 이 선율에 나의 목소릴 실어 그리운 너에게 내 마음을 띄워 보내 어떻게 어떻

방탈출 d&r2, 1-1 공략 [내부링크]

취미 방탈출 d&r2, 1-1 공략 향함 2016. 1. 20. 16:20 이웃추가 본문 기타 기능 방탈출 d&r2, 1-1 공략 방탈출 d&r2 1-1공략 시작하겠습니다. 문 옆에 비밀번호 4653이 있습니다. 우측에 있는 금고는 쉽게 찾으실 수 있을겁니다. 비밀번호 4653을 입력해주세요. 열쇠와 보너스 별이있네요. 금고에서 획득하신 열쇠로 문을 열면 클리어~ 보너스 탁자 위에 있던 휴대폰을 누르시면 퀴즈가 있습니다. 네모를 다 더하라는데 저 네모는 문 옆에있는 숫자들을 뜻합니다. 그러므로 4+6+5+3하셔서 18이 답입니다. 보너스 별은 아까 금고에 있던게 되겠습니다.

나얼 - 같은 시간 속의 너 듣기 / 가사 / 뮤비 [내부링크]

취미 나얼 - 같은 시간 속의 너 듣기 / 가사 / 뮤비 향함 2016. 1. 20. 18:28 이웃추가 본문 기타 기능 브라운 아이드 소울 싱글 프로젝트 1st. 같은 시간 속의 너 By 나얼 아티스트 나얼 발매일 2015.02.05. 상세보기 나얼 - 같은 시간 속의 너 듣기 / 가사 / 뮤비 가사 꼭 그러지 않아도 충분히 널 이해할 수 있어 다른 사람 곁에 서 있는 니 모습이 조금 어색하지만 다 버리지 않아도 어떻게든 이겨낼 수 있어 다른 사랑 찾아가버린 니 얼굴이 그렇게 밉진 않아 이제 우리 같은 시간 속을 남처럼 그렇게 걸으면 돼 달아나도 가지 못할 기억 안고 아무말도 하지마요 더는 안된다는거 잘 알아요 많은 날들이 아무 의미없진 않겠죠 멀어지는 바람처럼 우리 함께한 기억들을 꿈처럼 그렇게 안으면 돼 눈 감아도 잊지 못할 추억의 널 묻고 아무말도 하지마요 더는 안된다는거 잘 알아요 사랑했던 날 모두 사라지진 않겠죠 우릴 스치는 안개처럼 아무것도 묻지 않을게요 이대로 묻어둘래

테일즈 오브 제스티리아 출시, 플레이 영상 [내부링크]

취미 테일즈 오브 제스티리아 출시, 플레이 영상 향함 2016. 1. 20. 19:37 이웃추가 본문 기타 기능 반다이남코에서 내논 테일즈 시리즈의 15번째 게임, 테일즈 오브 제스티리아가 출시됬습니다. 특히 이번 시리즈는 20주년 기념으로 발매된거라 더 의미가 있는데요. 1월 22일에 PS3를 플랫폼으로 정식 발매됬습니다. 다음은 유튜브에서 퍼온 플레이영상(+한글자막)입니다. 장르는 RPG로 주인공이 동료를 모으면서 모험을 떠나는 내용입니다. 파티 내에 캐릭터와 합체하는 신의화 시스템이 추가되어 동료를 모으는 재미가 더욱 쏠쏠할 것 같습니다. 또한, 맵은 구역단위가아닌 심리스 방식을 택해서 자유롭게 필드를 돌아다닐 수 있겠습니다ㅎㅎ 테일즈 오브 제스티리아 오프닝인데요, 중독성있네요ㅋㅋ 한 번 들어보세요~

신화 - MEMORY(메모리) 듣기 / 가사 / 뮤비 [내부링크]

취미 신화 - MEMORY(메모리) 듣기 / 가사 / 뮤비 향함 2016. 1. 20. 22:48 이웃추가 본문 기타 기능 MEMORY 아티스트 신화 발매일 2015.02.03. 상세보기 신화 - MEMORY(메모리) 듣기 / 가사 / 뮤비(2015.02) 가사 (씨제이이앤엠주식회사에서 제공했으며, 엠넷닷컴회원이 작성한 가사일수 있습니다) 소리 없이 멈춰버린 기억 고요해진 내 마음 속의 Secret Notes 희미해진 조각들 스쳐가는 사람 속의 흔적들 흔적들 모두 다 지난 날의 Memory woo 텅 빈 공간 속의 내 모습 공허함에 지쳐버린 내 마음 네 목소리가 들려 아련한 추억 속에 잠든 나를 깨워 어디로 날 데려가 Let Me Go Away 네 목소리가 들려 얼룩진 기억 속에 잠시 머물다 간 Oh Go Away Let Me Go Away 내 마음 속의 Memory Uh Memories 하나 둘씩 떨어지는 나뭇잎 허나 어제처럼 기억이 생생해 마치 멜로디처럼 너무 익숙해 니가 다시

gta산안드레스 미션공략 #05 - Cleaning The Hood [내부링크]

취미 gta산안드레스 미션공략 #05 - Cleaning The Hood 향함 2016. 1. 21. 0:01 이웃추가 본문 기타 기능 gta산안드레스 미션공략 #05 - Cleaning The Hood 경찰의 똘마니에게 전화가 옵니다. 도시를 떠나지말라나..ㅋ 가끔 말을 거는 사람도 있다네요. 그냥 팁입니다. 빨간원에서 본미션 시작! gta 산안드레스 미션공략 5번째 Cleaning The Hood입니다. 마약 관련 일이네요. 처리하고 오라고 시킵니다. 나한테만 맨날 시킴ㅠㅠ 두블럭 건너에 있는 지도상의 노란색 네모로 가시면 됩니다. 가자~ G를 누르면 함게 싸운다네요. 차타고 ㄱㄱ 가깝습니다. 문 열거라. 헬로, 깜둥이. 엎어져서 말하고 싶지 않으면 꺼지라네요ㅋㅋ 반팔 난방입은 친구가 Big Bear인듯. 마약에 중독됬나봐요. 변기나 닦는 신세가되버림. 이런 깜둥이가ㅡㅡ 마약쟁이들을 쓸으러가죠. 마약은 나쁜거에요. 차를 타고 지도상에 빨간 네모로 향하세요. 똘마니를 마약으로부터

40(포티) - 63빌딩 듣기 / 가사 [내부링크]

취미 40(포티) - 63빌딩 듣기 / 가사 향함 2016. 1. 21. 9:39 이웃추가 본문 기타 기능 63빌딩 아티스트 40 발매일 2015.02.06. 상세보기 40(포티) - 63빌딩 듣기 / 가사 가사 동경했다 반짝이고 찬란한 때깔 좋고 부와 명예를 지닌 적막한 한강과 또 고층 빌딩 수면 부족 하지만 욕심 내지 다음 세상에 전부 다 가져가려고 사회 때문인가 내 맘이 문젠가 축 쳐진 동생의 어깨 때문인가 하늘 한 번 쳐다보고 아름다움을 느끼기엔 가지고 또 가져도 갖고 싶어 63빌딩 꼭대기에 오르고 싶어 먹고 먹어도 왜 배가 계속 난 고픈 걸까 63빌딩에 가리워진 길 내가 나로 살아갈 수 없다면 오늘도 모래성을 쌓고 부쉈다를 반복하며 해가 저물어서 가리워진 길 알람 시계와 나의 끝 없는 사투 연구와 연구를 거듭해 피곤함의 절정 남들 다 하는 사랑도 젊은 날의 해맑은 미소도 내겐 없다 필요 없다 생각했었으니까 63빌딩에 가리워진 길 내가 나로 살아갈 수 없다면 오늘도 모래성을

gta산안드레스 미션공략 #06 - Drive - Thru [내부링크]

취미 gta산안드레스 미션공략 #06 - Drive - Thru 향함 2016. 1. 21. 14:32 이웃추가 본문 기타 기능 gta산안드레스 미션공략 #06 - Drive - Thru gta 산안드레스 미션공략 시작하겠습니다. 미션은 빨간원에서 시작~ 6번째 Drive - Thru 입니다. 의견이 갈리는 친구들. 밥이나 먹으로가죠. 남자답게 치킨ㅋㅋ 차를타고 Clukin' Bell Drive - Thru 로 가면되요. 패스트푸드점 드라이브인 비슷한듯. 무거운 얘기를 하며 차를 몰읍니다. 뭐, 지도상에 노란네모가 있는곳으로가면 됩니다. 밥 묵자. 뚱땡이ㅋ 지금부터 모두 뚱땡이의 주문입니다. 6,7번도 시키던데, 친구들 반응 졸귀ㅋㅋ 흠ㅠㅠ 분위기 전환 뚱땡이. ! 적들이 침투했다. Drive - by, 아마 상대 갱들이 우리 똘마니 죽일라고 차타고가면서 총쏘는거를 얘기하는것 같네요. 보라색 차를 쫓아가세요. 안 쏘고 계속 먹는듯..ㅋㅋ 약간 진로를 방해한다는 느낌으로 옆에 붙어서

육지담 - 밤샜지 (Prod. By ZICO) 듣기 / 가사 [내부링크]

취미 육지담 - 밤샜지 (Prod. By ZICO) 듣기 / 가사 향함 2016. 1. 21. 16:46 이웃추가 본문 기타 기능 언프리티 랩스타 Track 1 아티스트 육지담 발매일 2015.02.06. 상세보기 육지담 - 밤샜지 (Prod. By ZICO) 듣기 / 가사 가사 난 밤샜지 증명하고자 밤샜지 밤샜지 밤샜지 이 가사 암기하려 밤샜지 육지담 사는 거 완전 빡세지 빡세 빡세 빡세 bounce it 넌 날 잘 몰라 baby 조금 날카로운 lady 잘 나가니 친한 척 왜 이래 get your party like pay day 내 앞에선 everybody may day 언니 앞을 가로질러 새치기 넌 재채기 당황한 티나 날 제치길 원한다면 그냥 내걸 갖고 베끼길 I'm back again 이 노랜 turning point 빛나 은 금색 아니어도 2 Chainz and Rollies 최연소 여성 래퍼 I'm Galileo 절대 얽매이지 않지 yes libero oh 입 벌리지 말고

gta산안드레스 미션공략 #07 - Nines And Ak's [내부링크]

취미 gta산안드레스 미션공략 #07 - Nines And Ak's 향함 2016. 1. 21. 17:57 이웃추가 본문 기타 기능 gta산안드레스 미션공략 #07 - Nines And Ak's gta 산안드레스 미션공략 7번째 시작합니다. 전화가 와서는 근육을 키우라네요. 헬스장 시설을 이용할 수 있습니다. 지도상에 덤벨로 표시된다네요. 이번 타이틀은 Nines And Ak's. 카드 게임중이네요. 이 친구가 가장 시크한듯. 이번에 주내용은 총이네요. 총을 구하러 갑시다. 차타고 Emmet의 집으로 가면되요. 아부하는 Smokeㅋㅋ 지도상에 노란네모를 찾아가세요. Emmet를 만납니다. 총을 주네요. 시범을 보여주는 Smoke. 유리병을 한번 쏴보세요. 마우스 오른쪽을 누르면 고정이되고 왼쪽을 누르면 총을 쏠 수 있습니다. 한 번 해보라네요. 가볍게 해줍시다. C를 누르면 앉을 수가 있는데, 명중률이 증가한답니다. 마지막 연습. 자동차의 주유구를 맞추세요. 그러면 차가터짐ㅋ 냉혹한

그체 섭종, 그랜드체이스 서비스종료 [내부링크]

취미 그체 섭종, 그랜드체이스 서비스종료 향함 2016. 1. 22. 19:14 이웃추가 본문 기타 기능 그랜드체이스 서비스 종료 넷마블의 그랜드체이스라는 게임을 아시나요? 제가 초등학교때부터 시작해서 가끔씩 심심하면 들어가서 즐기던 게임인데요, 없어져버렸네요...ㅠㅠ 이미 작년에 없어졌는데, 모르고 있었네요. 다행히 전 딱히 환불받을 것이 없었네요~ 게임이 없어진다는 홈페이지 공지 ㅠㅠ 가끔 들어가면 모든 서버가 쾌적했고, 이벤트도 어느순간 부터는 아예 없더라구요. 이거 망한거 같은데 이러다 없어지겠네 생각했는데 이제 섭종이라니ㅠㅠ 시원섭섭하네요. 캐릭터는 최근에 나온 우노빼고 다 모았었고, 엘리시스랑 라스 만렙도 있었고, 다른 것도 키워보고 싶었는데ㅠㅠ 라임이랑 베이가스는 점핑캐로 얻었었는데 아껴서 할려고 뒀는데 제대로 해보지도 못했네요. 섭종하는거 알았으면 진작에 들어가서 스샷이라도 남겼을텐데ㅠㅠ 이렇게 포스팅으로라도 추억남기네요. 옛날엔 엘리시스, 리르, 아르메 세 개를 기본

돈버는앱 애드라떼 후기, 사용하지마세요; [내부링크]

일상 돈버는앱 애드라떼 후기, 사용하지마세요; 향함 2016. 2. 5. 23:39 이웃추가 본문 기타 기능 돈버는앱 애드라떼 후기, 사용하지마세요; 특정앱을 다운로드하면 일정한 적립금을 주는 형태의 어플이에요, 이름은 애드라떼. 한 어플을 다운받으면 대략 150원 정도 모을 수 있고요, 중복은 안됩니다. 모은 적립금은 위와 같이 카페나 편의점 상품의 쿠폰으로 교환이 가능하해요. 저는 나름 오래해서 총 34000원 적립했네요. 5천원 문화상품권 한 장 산 경험이있어서 지금은 29000원이 있고요, 그런데 3~4년 전에 했던거고 한동안 안했네요. 제가 절대 하지말라고 한 이유는 이 어플을 도대체 관리를 하는건지 마는건지 모든 상품이 품절되어 있습니다. 정말 말도 안돼요; 살 수있는 상품이라곤 이런 쓰잘데기없는 쿠폰들 뿐... 더욱 어이없는건 제대로 된 상품은 없으면서 새로운 어플은 계속 올라온다는 거에요ㅡㅡ; 들은 소문으로는 애드라떼를 후원해주는게 끊겨서 상품이 안올라온다고 들었던 것

서울 가볼만한곳~ 덕수궁,광화문(경복궁) [내부링크]

일상 서울 가볼만한곳~ 덕수궁,광화문(경복궁) 향함 2016. 2. 7. 0:37 이웃추가 본문 기타 기능 서울 가볼만한곳~ 덕수궁,광화문(경복궁) 덕수궁 서울특별시 중구 정동 5-1 상세보기 서울에 친구 만나러 가는데, 가기전에 덕수궁이 가보고 싶어서 들렸어요~ 무한도전 중 덕수궁. 무한도전에서 무도투어 중 유재석과 광희가 외국인들과 덕수궁을 가는 걸 보고 가고 싶다고 생각했는데, 서울 간 김에 겸사겸사 들렸어요ㅎㅎ 왕궁수문장 교대의식. 마침 가니까 무슨 의식을 하고 있더라구요! 그냥 아무런 생각없이 갔는데, 대한문 앞에서 왕궁수문장 교대의식이에요ㅎㅎ 해설사가 의식에 대한 소개도 해주고, 의식을 진행하는 분들과 포토타임도 있었어요ㅋㅋ 의식을 보고싶으신 분은 시간을 잘 참고해서 가세요~ 저는 25세 미만이라 무료로 입장했어요~ 덕수궁에 들어가서 찍은 사진들이에요ㅎㅎ 장관헌. 위 사진은 정관헌이라는 건물이에요~ 정관헌은 고종황제께서 차를 즐기시고 음악을 들으시던 곳이라고하네요. 동양과

천안 가볼만한곳, 천안 독립기념관 월요일은 휴무에요ㅠㅠ [내부링크]

일상 천안 가볼만한곳, 천안 독립기념관 월요일은 휴무에요ㅠㅠ 향함 2016. 2. 9. 18:32 이웃추가 본문 기타 기능 천안 가볼만한곳, 천안 독립기념관 월요일은 휴무에요ㅠㅠ 독립기념관 충청남도 천안시 동남구 목천읍 남화리 230 상세보기 천안 독립기념관을 다녀왔어요ㅎㅎ 독립기념관은 우리나라의 자주독립을 위한 투쟁의 역사를 기리고 그 뜻을 후세에게 전하기 위한 역사 교육의 장입니다~ 들어서시면 겨레의 탑과 그 뒤에 큰 건물이 있죠. 독립기념관이라고 쓰여있는 건물 안에는 불굴의 한국인 상이라는 동상이있어요, 우리나라의 독립투쟁에 대한 불굴의 기상을 나타낸다고 해요~ 여기까진 좋았는데, 겨레의 집을 지나 뒤에 박물관에 갔는데 문이 다 닫혀있더라구요? 알고보니 월요일이라서 휴무였네요ㅠㅠ 어쩐지 사람이 없더라구요ㅋㅋ; 아쉬운데로 건물의 외관이랑 바깥에 전시되어 있는 것만 둘러봤어요ㅎㅎ 밖으로 나오면서 찍은 태극기 밭, 무슨 농사를 지어 놓은 것 같았어요ㅋㅋ 마지막으로 나오면서 찍은 겨레

내일로 여행코스추천 4박5일 여행경비 신경주 발권역 [내부링크]

일상 내일로 여행코스추천 4박5일 여행경비 신경주 발권역 향함 2016. 2. 9. 19:11 이웃추가 본문 기타 기능 내일로 여행코스추천 4박5일 여행경비 신경주 발권역 동계 내일로티켓 5일권을 끊고 갔다왔습니다ㅎㅎ 발권역을 어디로할 지 정말 고민이 되더라구요, 저는 신경주역으로 선택했습니다. 신경주역으로 발권해서 얻은 혜택을 소개해드리자면 역에서 수령하는 내일로 기념카드, 포스트잇, 빵 시식권 등이 있고요. 담요와 세면도구세트 중 택1과 여러 관광지 입장권 무료 및 할인권이 있었어요. 담요 선택해서 지금도 잘 이용중이고요ㅋㅋ 불국사 무료입장권 선택해서 무료 관람도했네요~ 코스는 이렇게 다녀왔어요~ 강릉-안동-경주-부산-대구ㅎㅎ 내일로 코스를 짜실 때는 방향을 시계 혹은 반시계로 일정하게 짜는 것이 이동시간을 절약할 수 있어요! KTX가 아닌 일반기차기 때문에 이동시간이 생각보다 길거든요, 기차시간을 확인하는 것도 필요한데 저 같은 경우 무작정 떠나서 고생을 좀 했어요. 예를들면

강릉 가볼만한곳 정동진 여행코스, 내일로 첫째날 [내부링크]

일상 강릉 가볼만한곳 정동진 여행코스, 내일로 첫째날 향함 2016. 2. 10. 18:53 이웃추가 본문 기타 기능 강릉 가볼만한곳 정동진 여행코스, 내일로 첫째날 정동진 강원도 강릉시 강동면 정동진리 상세보기 강릉 정동진에 가기 위해서 제천역을 들렸고, 제천역 근처 보령식당에서 간단히 끼니를 해결한 뒤 정동진역으로 향했어요~ 바다 앞에 바로 기차역이 있어요! 기차타고 오면서 바다를 보는 기분이 좋더라구요ㅎㅎ 솔게스트하우스 정동진점 강원도 강릉시 강동면 정동진리 299-6 지도보기 도착하자마자 예약해둔 솔게스트하우스에 짐을 풀었어요, 6인실 이용했는데 내일로 이용중이면 할인도 해주더라구요~ 시설은 평범했고, 위치는 정동진역 바로 옆에 있어요ㅎㅎ 그리고 바다를 보며 즐길 수 있는 핸드레일바이크를 체험했어요. 철로를 따라 움직이는 건데, 발도 굴리지만 거의 자동으로 움직이는 식이에요~ 괜찮았는데 겨울에는 왠만하면 하지마세요, 바람을 정면에서 맞으니까 너무 추웠네요ㅋㅋ 그리고 바로 근처

안동 가볼만한곳 여행코스 추천, 내일로 둘째날 [내부링크]

일상 안동 가볼만한곳 여행코스 추천, 내일로 둘째날 향함 2016. 2. 10. 19:25 이웃추가 본문 기타 기능 안동 가볼만한곳 여행코스 추천, 내일로 둘째날 안동역 중앙선 경상북도 안동시 운흥동 178-3 상세보기 정동진에서 일출을 보고 다시 제천역을 거쳐 안동역으로 갔어요~ 안동하면은 찜닭이겠죠ㅋㅋ 안동역 근처 안동찜닭골목에서 찜닭 하나 시켜먹었어요~ 사장님도 친절하시고 양도 많더라고요ㅎㅎ 촌닭 경상북도 안동시 서부동 181-2 지도보기 찜닭집이 너무 많아서, 고민이 많이 되실텐데요ㅎㅎ 저는 게스트하우스에서 제휴받아 할인을 받을 수 있는 촌닭찜닭이라는 곳으로 갔어요~ 참 안동에는 마패라는게 있는데, 잘 이용하시면 여러가지 혜택을 받으실 수 있을거 같더라고요~ 그리고 안동하면 빠질 수 없는 하회마을! 시내버스 타고 갈 수 있는데, 안동역에서 시간이 좀 걸려요. 먼저 하회마을의 하이라이트인 부용대를 가기 위해서 나룻배를 이용했어요. 돈을 내고 타셔야하고, 마감시간도 있으니 주의하

경주 가볼만한곳 경주 여행코스추천, 내일로 셋째날 [내부링크]

일상 경주 가볼만한곳 경주 여행코스추천, 내일로 셋째날 향함 2016. 2. 10. 19:52 이웃추가 본문 기타 기능 경주 가볼만한곳 경주 여행코스추천, 내일로 셋째날 경주역 중앙선 경상북도 경주시 성동동 40 상세보기 안동 맘모스제과에서 산 빵을 먹으면서 경주역으로 향했어요~ 저 같은 경우 내일로 신경주역 발권이기 때문에, 경주역에서 여러가지 혜택을 받았는데요ㅎㅎ 그 중 하나가 불국사 무료입장이었어요! 시내버스를 타고 불국사를 보러 갔어요~ 수학여행 때 이후로는 한 번도 안 와봤는데ㅎㅎ 사뭇 다른 기분이네요~ 다보탑 사진이에요~ 바로 옆에 있는 석가탑은 공사중이었어요.. 카리카츠 경상북도 경주시 황오동 243-13 지도보기 그렇게 불국사만 보고, 석굴암을 가기에는 다음 야경투어 일정이 빠듯해서요. 경주 시내 일식집 카리카츠에서 돈까스랑 초밥먹고 게스트하우스에서 하는 야경투어하러 갔어요~ 먼저 월정교에요~ 아마 복원공사 중일거에요? 거의 완공되어 가고 있는데, 전날 안동에서 본 월

부산 가볼만한곳 부산 여행코스추천, 내일로 넷째날 [내부링크]

일상 부산 가볼만한곳 부산 여행코스추천, 내일로 넷째날 향함 2016. 2. 11. 14:53 이웃추가 본문 기타 기능 부산 가볼만한곳 부산 여행코스추천, 내일로 넷째날 해운대역 동해남부선 부산광역시 해운대구 좌동 138-4 상세보기 경주역에서 해운대역~ 부산이라 그런지 사람이 많더라구요, 자리가 없는 내일로라서 서서 이동했네요. 저는 해운대 근처의 포비게스트하우스를 이용했어요, 해운대역에서 버스 한 번에 금방 도착하더라구요. 부산 게스트하우스 포비하우스 부산광역시 해운대구 중1동 1394-328 지도보기 바다도 코앞이고, 바로 앞에 시장도 있었어요ㅎㅎ 역시 우리나라 관광지하면 부산인가봐요. 외국인들도 많더라고요ㅎㅎ 게스트하우스에 짐을 풀고 향한 곳은 오륙도! 오륙도 스카이워크 체험하러 갔는데 금요일이었는데 사람이 많더라고요~ 줄서서 갔어요, 입장은 무료ㅎㅎ 바닥이 불투명해서 그렇게 아찔한 느낌은 없었어요ㅋㅋ 바로 밑도 바다가 아니라 바위였고요. 저것이 바로 스카이워크에요~ 그리고

대구 가볼만한곳 김광석거리, 내일로 마지막날 [내부링크]

일상 대구 가볼만한곳 김광석거리, 내일로 마지막날 향함 2016. 2. 11. 18:33 이웃추가 본문 기타 기능 대구 가볼만한곳 김광석거리, 내일로 마지막날 동대구역 경부선 대구광역시 동구 신암동 294 상세보기 부산역에서 내일로 마지막 행선지인 동대구역으로 향했어요~ 이곳은 대구 반월당 메트로센터인데요ㅎㅎ 지하에 이런 식으로 번화가가 형성되어 있더라고요~ 겨울에 쇼핑하기 좋을듯요! 삼삼국밥과비빔밥 대구광역시 중구 덕산동 88 메트로센터 204호 지도보기 식당도 참 많아서 어디로 갈지 찾아봤는데 삼삼식당이란 곳을 알게 됐네요~ 맛은 그냥 평범했던 것 같은데, 가격은 저렴했어요ㅎㅎ 그리고 간 김광석거리로 향했어요, 지하철에 내리자마자 여기가 맞다는 것을 알 수 있었어요ㅋㅋ 가는 길도 잘 나와있었어요~ 그런데 비가 추적추적, 날씨가 별로였어요ㅠㅠ 어쨌든 이렇게 대구 김광석거리를 마지막으로 4박5일 내일로 마쳤네요~~

거지키우기 후기 공략, 돈빨리모으는법 [내부링크]

취미 거지키우기 후기 공략, 돈빨리모으는법 향함 2016. 2. 11. 21:10 이웃추가 본문 기타 기능 거지키우기 후기 공략, 돈빨리모으는법 앱스토어 순위권에 있어서 해봤던 거지키우기인데요ㅎㅎ 슬슬 질려서 그동안 한 것 포스팅하려고요~ 이런 노가다 게임이 사실 이전부터 간간이 등장해서 인기를 끌고 있는데요. 그 많은 단순 노가다 중에서 이 게임이 인기를 끌었던 것 이런 병맛 만화 때문일 것 같아요ㅎㅎ 개인적으로 왕이 젤 웃긴듯요ㅋㅋ 이따금씩 등장하는 보물거지는 단순 노가다를 덜 심심하게 해주죠ㅎㅎ 광고를 보거나 게임 아이템 중 하나인 마나 1개를 이용하면 황금 깡통을 열 수 있어요~ 저의 상태인데요, 현재는 페이스쿡까지 인수했어요~ 업데이트 이후 업적도 생겼더라고요, 그래서 마나 하나도 안쓰고 모으는 중ㅎㅎ 돈을 빨리 모으는 방법은 폰을 켜두고 자는 방법 밖엔 없어요ㅠㅠ 아니면 무한 클릭인데 그럼 너무 지겹잖아요? 자기 전에 폰 켜두고 다음날 일어나면 돈이 많아져 있을 거에요!

인천공항 난카이난바역 숙소, 일본여행 첫째날 [내부링크]

일상 인천공항 난카이난바역 숙소, 일본여행 첫째날 향함 2016. 2. 19. 19:41 이웃추가 본문 기타 기능 인천공항 난카이난바역 숙소, 일본여행 첫째날 4박 5일 다녀온 일본여행에 대해 포스팅하려고요ㅎㅎ 인천국제공항에서 오사카 간사이공항 행 비행기 타고 갔어요~ 제주 항공 이용했는데 28만원에 미리 예약했어요. 환전한 돈 중 여행경비로 엔화 25만엔정도 썼네요. 유니버셜도 갔는데 입장권은 한국에서 사둬서 그건 제외하고요ㅎㅎ 난카이난바 일본 지도보기 두근두근한 해외여행! 숙소를 오사카 난카이난바역 주변에서 잡아서 일단 간사이 공항에서 지하철 타고 난카이난바역으로 갔어요. 일본은 지하철이 국영화 되어있지 않아 한 지역에 이름이 같은 여러 역들이 있어서 헷갈리더라고요ㄷㄷ 난카이, JR, 한큐... 흐흐 난카이난바역에서 숙소로 향하는 길~ DVD집이랑 애니메이션 캐릭터 관련 가게들이 많더라고요, 개방적인 일본문화ㅎㅎ 숙소에 도착하니 이미 밤이 다 됐어요, 배가 고파서 뭐라도 먹어야

개발자가 되는 것과 블로그를 운영하는 것 [내부링크]

#개발자 가 되는 것과 #블로그 를 운영하는 것 #블로그운영 #대학생 #컴퓨터 #정보 #지식 #공유 이 글은 블로그 운영을 고민하는 개발자들에게 저의 생각을 공유하기 위한 글입니다. 결론은 저도 블로그를 다시 시작하기로 마음먹었으니..! 블로그를 한 번 운영해 보자는 것입니다. 뭐 엄청 거창한 것은 아니고 하루에 하나씩 가벼운 마음으로 글을 올려보려고 합니다. 주된 목적은 컴퓨터 언어 코드나 정보, 지식들을 저장하고 공유하는 것이고 그 외 소소하게 일상이나 취미도 가끔 올려보려고 합니다ㅎㅎ 2016년 2월에 마지막으로 글을 올리고 현재 2019년 6월인데요, 그 당시에는 직접 여행 가서 찍은 사진들로 여행 관련 블로그를 하려 했는데 지금은 #컴퓨터전공 관련 지식들로 주제를 정했어요. 물론 지금 실무를 하는 개발자는 아니고 대학 재학 중입니다~ 하나 둘 글을 쓰다 보면 어느 순간 저도 실무자가 되어있겠죠,, 지금은 그때를 돌아보기 위한 시작 글을 쓰는 중입니다! 본론으로 들어가면, 제

자바 빠른 입출력 (BufferedReader, BufferedWriter) [내부링크]

#자바 빠른 #입출력 ( #BufferedReader , #BufferedWriter) #InputStreamReader #OutputStreamWriter #IOException #JAVA #flush #close #readLine #write 자바의 입출력에 대해 알아보겠습니다. 보통 자바에서 입출력을 하게 되면 scanf와 System.out.print()와 같이 c언어에서 했던 것과 비슷하게 하는 것으로 처음에는 배울 거예요~ 저도 그랬고요ㅎㅎ 그런데 #백준 이라는 문제풀이 사이트에서 위와 같은 형태로 하면 아마도 런타임 오류가 날 거예요. 그 이유는 정확히는 모르고 제 생각이지만 코드를 확인하기 위해서 여러 개의 값을 넣어가며 비교할 텐데 scanf 같은 경우 입출력하는 시간이 길기 때문에(물론 한 두 개 넣으면 얼마 차이 안 나겠지만 코드를 확인하기 위해서는 여러 개를 넣어 비교해야 합니다, 그런데 조금씩 차이 나는 게 많아지면 그 차이가 커지겠죠?) 그런 것이라고 생각해

자바 형 변환 int에서 string, string을 int로 (parseInt, valueOf, charAt) [내부링크]

#자바 #형변환 #int #string #문자열 #char #Integer #parseInt #valueOf #charAt #자바형변환 먼저 int형을 string으로 형 변환하기 위해서는 Integer.parseInt를 사용하면 된다. 아래는 그 활용 예시이다. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int s1 = Integer.parseInt(br.readLine()); BufferedReader로 사용자로부터 입력을 받는데, 여기서 입력을 받기 위해 readLine()을 이용한다. 그런데 이 readLine()은 엔터 단위까지의 문자열을 입력받는다. 그래서 readLine()을 이용해서 int형 변수를 입력받기 위해서 위와 같이 활용을 한 것이다. 즉, 사용자로부터 입력받은 문자열을 int형 변수의 형태로 저장하는 것이다. 다음으로 이러한 int형 변수를 string형으로 변환하기 위

컴퓨터 네트워크, MIME이란? [내부링크]

#MIME #컴퓨터네트워크 #네트워크 #Base64 #SMTP #아스키 #인코딩 #메일 #Base64인코딩 #예제 MIME이란? Multipurpose Internet Mail Extension의 줄임말로 전자 우편을 위한 인터넷 표준 포맷이다. 전자우편은 7비트의 아스키문자를 이용해서 전송되기 때문에, 8비트 이상의 코드를 사용하는 문자나 이진 파일들은 MIME 포맷으로 변환되어 SMTP로 전송되어야 한다. 실질적으로 SMTP로 전송되는 대부분의 전자 우편은 MIME 형식이다. MIME은 HTTP와 같은 통신 프로토콜에서도 사용되며, 점차 그 중요성이 커지고 있다. MIME으로 변환되는 과정을 도식화하면 아래와 같다. 출처 - 네이버 지식백과 MIME이 필요한 이유? 보통의 텍스트 파일을 보내고 받는 데는 아스키라는 공통된 표준을 따르기만 하면 문제가 없다. 그런데 네트워크를 통해 아스키 파일이 아닌 '바이너리 파일'을 보낼 필요가 생긴다. 예를들면 음악이나 그래픽 파일, 무비 파

자바 토큰 분리 StringTokenizer, countToken과 nextToken [내부링크]

자바 토큰 분리를 하기 위해서는 StringTokenizer를 사용하면 된다. 먼저 토큰 분리란 입력받은 문장을 특정 구분자를 기준으로 분리하는 것을 말한다. StringTokenizer를 사용하기 위해서는 다음을 import 해주면 된다. import java.util.StringTokenizer; 그리고 선언은 다음과 같이 해주면 된다. StringTokenizer st = new StringTokenizer(br.readLine()); 여기서는 BufferedReader를 이용해서 사용자로부터 입력받은 한 줄을 토큰을 분리하기 위한 StringTokenizer에 저장한 것이다. 토큰을 구분하는 구분자는 별다른 설정이 없을 경우 띄어쓰기이지만 '-'나 ','등 마음대로 지정할 수 있다. 이를 활용한 예시이다. while(st.hasMoreTokens()) { bw.write(st.nextToken() + "\n"); } hasMoreTokens()는 boolean 타입으로 현재

유니코드 한글 코드표 범위 { AC00-D7AF} , UTF-8과 유니코드표 [내부링크]

유니코드란? 문자를 표현하기 위해서 아스키코드를 만들었는데 그건 영어만 되서 나온게 유니코드이다. 대표적인 인코딩 방식으로 가변길이 인코딩인 UTF-8이 있고 더 나아가 UTF-16, UTF-32 이런 식으로 나간다. 변환하고자 하는 비트의 크기별로 정해진 형식이 있다. 아래는 위키백과에서 퍼온 표이다. 이를 참조하면 된다. 코드 범위(십육진법) UTF-16BE 표현(이진법) UTF-8 표현(이진법) 설명 000000-00007F 00000000 0xxxxxxx 0xxxxxxx ASCII와 동일한 범위 000080-0007FF 00000xxx xxxxxxxx 110xxxxx 10xxxxxx 첫 바이트는 110 또는 1110으로 시작하고, 나머지 바이트들은 10으로 시작함 000800-00FFFF xxxxxxxx xxxxxxxx 1110xxxx 10xxxxxx 10xxxxxx 010000-10FFFF 110110yy yyxxxxxx 110111xx xxxxxxxx 11110zzz 10

ERD 그리기(ER 다이어그램), 그리는 툴 추천 [내부링크]

ERD 그리기(ER 다이어그램), 그리는 툴 추천 데이터베이스 설계 단계 중 개념적 설계 단계에서 ER 다이어그램을 그려야 한다. 데이터베이스가 매우 간단하면 파워포인트 같은 것으로도 커버가 가능하지만 프로젝트 규모가 크다면 그리 간단하지 않을 것이다. 그래서 ERD를 쉽게 그릴 수 있는 툴을 추천하려고 한다. 알마인드 출처 - 알툴즈 홈페이지 원래는 마인드맵을 그리는 프로그램인데 이걸로도 ERD를 그릴 수는 있더라. 그런데 생각보다 복잡하지만 파워포인트보다는 그리기 유용할 것이다. 유료이지만 Lite 버전을 무료로 다운로드할 수 있다. 파일을 저장할 때는 err이라는 파일로 저장되는데 이미지로 저장도 가능하다. 사실 가장 추천하고 싶은 것은 이것이다. https://www.draw.io/ draw.io Language Help Decide later Save diagrams to: Google Drive OneDrive Device Remember this setting Impor

자바 EOF 사용법(hasNextLine과 NextLine) [내부링크]

자바 EOF 사용법(hasNextLine과 NextLine) EOF란? End of File의 줄임말로 더 이상 읽을 데이터가 없어서 여기가 파일의 끝이라는 것을 의미한다. c언어에서는 getchar를 통해 매크로로 정의된 EOF를 사용할 수 있는데 자바에서는 그렇게 할 수가 없다... 그래서 EOF와 비슷하게 hasNextLine()과 NextLine을 사용해야 한다. 일단 hasNextLine과 NextLine을 사용하기 위해서는 Scanner를 사용해야 한다. BufferedReader와 BufferedWriter를 이용해서 EOF를 처리해주고 싶었는데 이건 NextLine 메소드를 쓸 수 가 없다. 아무튼 Scanner를 사용하기 위해서는 다음을 import 해주고, import java.util.Scanner; 메인에서 아래와 같이 선언해서 사용하면 된다. Scanner sc = new Scanner(System.in); 먼저 hasNextLine()은 다음에 읽을 값이 있

롤토체스 해보면서 느낀 팁 여러가지 공략 [내부링크]

롤토체스 해보면서 느낀 팁 여러가지 공략 롤토체스가 오늘 나와서 몇 시간 정도 플레이 해봤는데, 1위만 찍고 그만하려고 했는데 쉽지는 않더라고요ㅋㅋㅋ 일단 겨우겨우 1위 한번 해보기는 했는데, 하면서 느낀 팁들 좀 적어보려고요. 롤토체스는 기본적으로 카드 게임 같은 거라고 생각하시면 되는데, 챔프별 정해진 특성 같은 게 있는데 기사, 유령, 해적, 총잡이 등등 다양한데 같은 특성인 애들을 모아서 챔프를 진화시키는 거에요. 먼저 초반 운영은, 제일 먼저 뽑을 건 챔프도 중요하지만 개인적으로 아이템도 중요하더라고요. 챔프는 상점에서 사는게 랜덤이라 내가 하고 싶은 걸 모으려고 해도 완전이 운입니다ㅠ 그래서 뒤집개나 공속활이 있는 챔을 골라서 아이템을 노리는 것이 좋아 보여요. 그런 아이템이 없으면 적당한 원딜이 좋을 것 같아요. 다음으로 상점 구매인데, 롤토체스는 기본 상태의 챔프들은 되팔기 가격이 모두 같아요. 그래서 초반에는 일단 같은 카드가 많이 뜬 걸 사서 은성을 만드는게 좋아요

별 찍기 코딩 팁, 규칙을 찾아서 별을 찍는 방법 [내부링크]

별 찍기 코딩 팁, 규칙을 찾아서 별을 찍는 방법 처음 코딩을 시작할 때 반복문을 배우기 위해서 간단한 규칙의 별찍기를 하긴 하지만, 아래처럼 복잡한 별찍기는 백준 사이트에서 처음 봤다. 처음에는 어떻게 해야 하는지 전혀 몰라서, 정말 하루 종일 저것만 봤다. 그러면서 어느 정도 요령을 익혔고 그걸 바탕으로 별찍기를 쉽게 하는 법을 정리해보려고 한다. public static char star[][] = new char[6561][6561]; 먼저 위와 같이 배열을 선언한다. 배열의 행과 열에 문제의 규칙에 따라서 '*'과 ' '을 넣을 것이다. 초기에 배열을 모두 공백으로 설정해주고 규칙에 맞게 별을 찍어주면 된다. 배열의 크기는 적당히 큰 값으로 미리 설정해주었다. 그리고 중요한 것은 아래이다. public static void print(int n, int x, int y) { if(n == 3) { star[x-1][y-1] = '*'; star[x-1][y-2] = '*';

Substitution Permutation Network (SPN)이란? [내부링크]

Substitution Permutation Network (SPN)이란? SPN구조라고하는 이것은 여러 개의 함수를 중첩하면 개별 함수로 이루어진 암호보다 안전하다는 이론에 근거한다. 입력을 여러 개의 작은 블록으로 나누고 각 블록을 S-box로 입력하여 대치시킨 후 S-box의 출력을 P-box로 전치하는 과정을 반복하는 방식이다. 이는 암복호화 과정에서 역함수가 필요하도록 설계되어야한다는 단점이 있지만 중간에 비트 이동 없이 한 번에 암복호화가 가능하기 때문에 페스탈(Feistel) 구조에 비해 효율적으로 설계할 수 있다. 대표적인 암호로는 AES가 있으며 널리 상용되고 있다. SPN구조 알고리즘의 전체를 짝수인 N라운드로 구성하고 1라운드부터 N/2라운드 까지는 정함수를 사용하고, (N/2)+1라운드부터 N라운다까지는 역함수를 사용한다. 정함수와 역함수는 대칭블록을 삽입해 규칙적인 반복을 피해야 한다. 이런 것을 특히 대칭 구조 SPN이라고 한다. 정말 쉽게 말하면 정해놓은

하노이탑 코딩 자바 [내부링크]

하노이탑 문제는 재귀 호출을 이용해서 해결이 가능하다. 어떤식으로 생각을 전개해야 하냐면, 탑을 지지할 핀 A, B, C 세 개가 있다고 했을 때 A에서 C로 원판들을 옮겨야 한다. n개의 원판을 옮긴다고 생각해보자. n개의 원판을 옮기는 것은 n-1개의 원판을 B로 옮기고 난 뒤, 가장 아래에 가야하는 원판을 C로 옮긴뒤 B에 있는 나머지 n-1개의 원판을 C에 옮긴다. 이것이 n개의 원판을 옮기는 방법이다. 이 대목에서 재귀호출의 힌트를 얻으면 된다. 코드는 아래와 같다. public static void hanoi(int n, int a, int b, int c) { if (n == 1) { System.out.print(a + " " + c + "\n"); } else { hanoi(n - 1, a, c, b); System.out.print(a + " " + c + "\n"); hanoi(n - 1, b, a, c); } } 먼저 if부분은 판이 하나 남았다면 a에 있는 원

ECDSA (타원곡선 DSA) [내부링크]

타원곡선 DSA, Elliptic Curve Digital Signature Algorithm 줄임말로 ECDSA 라고도 한다. 타원곡선을 이용한 전자서명 알고리즘이다. 흔히 말하는 디지털 서명에 사용된다. 타원곡선은 고등학교 때 배웠던 것 을 떠올리면 된다. 정의역 매개변수 정의역과 매개변수(domain parameter)로 (CURVE, g, n) 을 사용한다. - CURVE : 타원곡선 체(field)와 여기에 사용된 수식이다. - g : 타원곡선의 기준점(base point)이다. 해당 타원곡선의 생성원(generator)이다. - n : g의 차수이다. n * g = 0 이며, 반드시 소수이어야 한다. 보통 충분히 큰 소수를 사용한다. 절차 키쌍 (dA, QA)를 만든다. - d는 무작위로 선택된 1부터 n-1사이의 정수로서, 개인키이다. - Q는 Q = dg를 만족하는 정수로서, 공개키이다. 메시지m을 다음 절차를 따라 서명한다. 1. e = H(m)이고, H는 암호학적

프론트엔드, 백엔드, 풀스택 개발자 뜻 의미 구분 [내부링크]

프론트엔드, 백엔드의 단어를 알면 의미를 이해하기가 쉬워진다. 일반적으로 프런트엔드(front-end)와 백엔드(back-end)라는 용어는 프로세스의 처음과 마지막 단계를 가리킨다. ‘프런트엔드’는 사용자로부터 다양한 형태의 입력을 받아 ‘백엔드’가 사용할 수 있는 규격을 따라 처리할 책임을 진다. ‘프런트엔드’를 ‘백엔드’로 연결하는 것은 인터페이스의 일종이다. 출처 - https://ko.wikipedia.org/wiki/%ED%94%84%EB%9F%B0%ED%8A%B8%EC%97%94%EB%93%9C%EC%99%80_%EB%B0%B1%EC%97%94%EB%93%9C 프런트엔드와 백엔드 - 위키백과, 우리 모두의 백과사전 프런트엔드와 백엔드 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 일반적으로 프런트엔드 (front-end)와 백엔드 (back-end)라는 용어는 프로세스의 처음과 마지막 단계를 가리킨다. ‘프런트엔드’는 사용자로부터 다양한 형태의 입력을

분할 정복 알고리즘(Divde and Conquer), 이진검색과 피보나치 수열 [내부링크]

분할 정복 알고리즘은 문제를 작은 문제로 분할해서 해결(정복) 하는 방법을 만한다. 나폴레옹이 전쟁에서 사용한 전략에서 유래되었다고 한다. 보통 재귀 함수를 통해 많이 구현이 된다. 많은 예시가 있지만 이진검색을 예로 보겠다. 아래는 이진검색을 재귀적으로 즉, 분할 정복으로 구현한 것이다. public static int recursiveBinarySearch(int low, int high) { // 재귀적 이진검색 if(low > high) // 최솟값이 최댓값보다 커지면 return -1; // 위치를 못 찾은 것이므로-1 반환 int mid = (low + high) / 2; // 이진검색을 위해 중간값을 선언 if(key == s[mid]) // 값을 찾을 경우 return mid; // 위치를 반환 else if (key < s[mid]) // 값을 못 찾았는데 찾는 값이 현재의 값보다 작으면 return recursiveBinarySearch(low, mid - 1);

C언어 입출력, printf와 scanf 그리고 scanf this function or variable may be unsafe 오류 [내부링크]

C언어를 그 동안 너무 오래 안해서 언어의 시작인 입력과 출력을 정리해보려고 한다. 먼저 간단히 printf를 이용해서 Hello, wrold를 출력하는 예제이다. 입출력을 하려면 stdio.h를 포함시켜줘야 한다. #include <stdio.h> int main(void) { printf("Hello, world"); return 0; } 다음은 scanf를 이용해 사용자로부터 입력받은 int형 변수를 출력하는 예제이다. %d를 이용해 숫자를 나타낸다. #include <stdio.h> int main(void) { int n; scanf("%d", &n); printf("숫자 : %d", n); return 0; } 매우 간단하다. 그런데 이 예제를 작성하려고 글을 쓰면서 scanf에서 this function or variable may be unsafe...라는 오류가 났다. 내가 뭔가 잘못한건가 했더니 visual studio 특정 버전 이후 부터는 설정을 변경해줘야 한다

자바 Math.sqrt(), 자바 제곱근 [내부링크]

자바 제곱근을 구하기 위한 메소드는 Math.sqrt()이다. 사용 예제를 보자. while (n > 0) { StringTokenizer st = new StringTokenizer(arr[i]); int dis = -(Integer.parseInt(st.nextToken()) - Integer.parseInt(st.nextToken())); long q = (long) Math.sqrt(dis); if(q * q == dis) bw.write(2*q-1 + "\n"); else if(q*(q+1) < dis) bw.write(2*q+1 + "\n"); else bw.write(2*q + "\n"); i++; n--; } 이는 다음과 같은 수열을 출력하기 위한 과정이다. 1 2 3 3 4 4 5 5 5 6 6 6 7 7 7 7 ... 딱 보면 규칙을 알 것 같은데 이를 코딩으로 작성하기가 쉽지 않았다... 제곱근을 이용해야 하더라. 참고로 pow는 제곱을 구하기 위한 수 메소드이다

자바 자릿수 채우기 String.format으로 빈자리 0채우기 [내부링크]

숫자를 출력할 때 앞에 부족한 자릿수를 채워서 출력하려면 String.format매소드를 이용하면 된다. String.format(출력형태, 출력할 내용)을 파라미터로 주면 되는데 예시 소스를 보자. int l = 1; int n = 12; int m = 123; int o = 1234; bw.write(String.format("%03d", l) + "\n"); bw.write(String.format("%03d", n) + "\n"); bw.write(String.format("%03d", m) + "\n"); bw.write(String.format("%03d", o) + "\n"); 현재 세자리를 맞춰서 출력하기 위해 %03d로 하였다. 자릿수를 바꾸려면 앞에 숫자를 바꾸면된다. 그리고 지금은 정수형을 출력하기 위해서 d를 사용한다. 출력형식이 다르다면 바꿔주면 된다. 실행결과를 보자. 1과 12는 자리가 부족하므로 0을 넣어서 채워주고 123은 그대로 출력된다. 만약 123

오라클 sql 테이블 삭제 쉽게하는 법, drop table 그리고 purge recyclebin [내부링크]

오라클 서버에서 테이블 삭제를 쉽게 하는 법을 소개한다. 보통 테이블 삭제를 하려면 아래와 같이 해야할 것이다. DROP TABLE 테이블명; 게다가 제약조건을 삭제하려면 여기다가 추가로 적어야 한다. 그리고 테이블은 한 두개가 아니다. 그렇다면 아래코드를 사용해보자. SELECT 'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;'FROM user_objectsWHERE object_type = 'TABLE'; 이 코드를 사용하면 바로 삭제가 되는 것이아니라 삭제를 위한 명령문이 나온다. 그러면 그대로 복사해서 붙여 넣으면 된다. 모든 테이블 하나마다 명령문이 작성되기 때문에 아주 쉽게 모든 테이블 삭제가 가능하다. 참고로 현재 남아 있는 테이블을 확인하려면 다음을 써보면 된다. select * from tab; 모든 테이블 삭제 후에도 쓰레기 값이 남아 있음을 확인할 수 있다. 그렇다면 아래의 코드를 사용하자. purge recycl

OSI 7계층, 응용 표현 세션 전송 네트워크 데이터링크 물리 계층 [내부링크]

OSI모형은 국제표준화기구(ISO)에서 개발한 컴퓨터 네트워크 모델이다. 응용 표현 세션 전송 네트워크 데이터링크 물리 일곱가지를 포함한 계층으로 이루어져 있다. 그런데 일반적으로 사용하는 5계층이 있는데 여기서 표현과 세션 계층이 없는 것이다. 사실 없다기 보다는 응용 계층에 포함해서 사용한다고 한다. 각 계층에 대해 위에서 부터 간단히 소개하면, 7. 응용(application) 계층 : 네트워크 어플리케이션에 관한 계층이다. 각 응용 서비스에 맞는 프로토콜을 정의한다. 쉽게 우리가 사용하는 어플이나 서비스 등이 통신하기 위한 프로토콜을 정의하는 것이다. FTP, SMTP, HTTP 등이 있고 데이터 단위는 메시지. 6. 표현(presentation) 계층 : 코드 간의 번역을 담당하여 데이터의 형식상 차이를 다루는 계층이다. MIME이나 여러 암호화를 예로 들 수 있다. 5. 세션(session) 계층 : 응용 프로세스가 통신을 다루기 위한 방법을 제공한다. 4. 전송(tran

합병정렬(Mergesort) 코드 자바 설명, 제자리 정렬 [내부링크]

합병정렬이란? 정렬을 분할 정복의 과정으로 하는 거다. 정렬되지 않은 숫자 배열이 있을 때 배열을 반으로 나눠서 2개의 부분 배열로 분할한다. 그리고 가장 인접한 부분 배열을 정렬하면서 다시 하나의 배열로 통합하는 것이다. 아래 예시 그림을 보면 쉽다. 123 34 189 56 150 12 9 240으로 나열된 숫자를 나눈 뒤 마지막에 합병을 하면서 정렬을 하는 것이다. 이걸 자바 코드로 짜면 아래와 같다. public static void mergeSort(int n, int[] s) { //merge(h, m, u, v, s); if (n > 1) { int h = n / 2; // 배열의 인덱스 설정을 위해 배열의 크기를 반으로 나눔 int m = n - h; int[] u = new int[h]; // 나눠질 두 개의 배열을 선언 int[] v = new int[m]; System.arraycopy(s, 0, u, 0, h); // s배열을 나눠서 u와 v배열에 복사 Syst

프로세스 뜻, 정의, 상태 [내부링크]

프로세스란? 프로세스의 일반적인 영어 뜻은 "과정"을 의미한다. 컴퓨터에서는 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 프로그램과 유사하지만 프로그램은 하드 디스크에 저장되고 있는 코드 자체를 말하는 것이고 메모리 상에서 실행되는 작업의 단위를 프로세스라고 한다. 좀 더 능동적이라고 생각하면 된다. 프로세스는 프로세스 관리 블록(Process Control Block)이란 것으로 관리가 된다. 프로세스는 역할에 따라 시스템 프로세스와 사용자 프로세스가 있고 병행 수행 방법에 따라 독립 프로세스와 협력 프로세스가 있다. 프로세스의 실행 과정을 도식화한 것은 아래와 같다. 작업이 할당되면, 즉 프로세스가 할당되면 Created로 옮겨진다. Created에서는 다음 두 가지 상황이 있다. 1. 메모리가 확보되고 기타 자원이 할당된다. 2. 메모리가 확보되지 않고 기타 자원만 할당된다. (기타 자원이 할당되지 않았다면 작업으로 올라오지도 않았다.) 먼저 1상황인 ready부터 보겠

데이터베이스 개념과 필요성 [내부링크]

데이터베이스(DB : DataBase)를 하기 전에 일단 정보가 무엇인지 알아야 한다. 정보란? 데이터가 어떤 목적에 의해 해석되거나 가공된 형태를 말한다. 그렇다면 데이터베이스란? 어느 한 조직의 다양한 응용 프로그램들이 공동으로 사용하는 데이터들을 통합하여 저장한 운영 데이터의 집합을 말한다. 키워드는 공용, 통합된, 저장된, 운영 데이터라는 것이다. 이는 다음과 같은 특징을 가진다. 1. 동시 공용 2. 지속적인 변화 3. 실시간 접근성 4. 내용에 의한 참조 5. 데이터베이스 관리 시스템에 의한 관리 이러한 데이트 베이스가 출현한 배경은 다음과 같다. 1. 파일 처리 시스템의 한계(데이터를 중복으로 저장해서 비효율적이었다.) 2. 종속성과 중복성의 문제점 즉, 데이터베이스는 데이터의 종속성과 중복성의 문제를 해결한 장점을 가지고 있는 것이다. 즉, 데이터 무결성을 유지하면서 공유가 가능하고 기존 파일 처리 시스템의 구조적 한계를 극복하였다. 데이터베이스는 개체, 속성, 관계의

소수를 구하는 알고리즘, 에라토스테네스의 체 [내부링크]

에라토스테네스의 체는 고대 그리스 수학자 에라토스테네스가 발견한 소수를 찾는 방법이다. 아이디어는 다음과 같다. 만약 2부터 160사이의 소수를 찾는다고 해보자. 그러면 2와 160사이의 수에 다음과 같은 알고리즘을 적용한다. 1. 2는 소수이고, 2를 제외한 2의 배수는 소수에서 제외한다. 2. 3은 소수이고, 3을 제외한 3의 배수는 소수에서 제외한다. 3. (4는 2의 배수이므로 제외) 5는 소수이고, 5를 제외한 5의 배수는 소수에서 제외한다. 4. (6은 2의 배수에서 제외) 7은 소수이고, 7을 제외한 7의 배수는 소수에서 제외한다. 5. (8, 9 10 제외) 11은 소수이고, 11을 제외한 11의 배수는 소수에서 제외한다. 6. 12는 소수가 아니어서 제외되었다. 여기까지만 하면 2와 160사이의 소수를 구할 수 있다. 아이디어는 다음과 같다. 13과 160의 관계는 아래와 같다. 따라서 13보다 작은 수의 배수들만 지워도 충분히 소수를 구할 수 있다. 이를 자바로 작

ArrayList 동적 배열 사용법 자바 [내부링크]

배열을 선언할 때 어느 정도 사용할지 크기를 예상할 수 있다면 좋지만 그렇지 못한 경우가 있다. 그럴 경우 배열을 동적으로 선언해주어야 하는데 ArrayList를 사용하면 된다. ArrayList를 사용하려면 다음과 같이 import 해주어야 한다. import java.util.ArrayList; 간단하게 int형 동적 배열을 선언하고 어떻게 사용하는지 예시를 살펴보겠다. 여러 메소드가 있지만 삽입, 삭제, 반환에 대한 예시만 적어보겠다. ArrayList<Integer> prime = new ArrayList<>(); // 선언 prime.add(3); // 삽입 prime.add(1, 17); prime.remove(0); // 삭제 prime.get(1); // 반환 맨 윗줄이 동적 배열의 선언이다. 딱 보기에도 int형으로 선언했음을 알 수 있다. 다음은 add를 이용해 숫자 3을 삽입하는 모습이다. 그냥 삽입할 값만 넣으면 배열의 맨 뒤에 삽입이 되고 바로 밑처럼 인덱스를

자바 ?(물음표)연산자, 조건문 [내부링크]

자바에서 조건문을 사용할 때는 if나 if-else를 사용하거나 while을 사용하는 것이 일반적이다. 아니면 더 상세히는 switch / case 문을 사용하거나.. 그런데 물음표 연산자를 사용하면 매우 간단히 조건문을 이용할 수 있다. 예시를 보면, max = (a > b) ? a : b; /*if(a > b) max = a; else max = b;*/ a와 b 중 더 큰 값을 max에 저장하는 예시이다. 바로 밑에 주석처럼 if-else로 여러 줄에 걸쳐 표현한 것을 '?' 연산자를 이용하면 한 줄로 표현이 가능하다. 이는 다음과 같이 해석한다. (조건을 제시) ? 조건이 참일 경우 : 조건이 거짓일 경우;

택시 기하학이란, 택시 기하학에서 원의 넓이 [내부링크]

택시 기하학은 비유클리드 기하학의 일종이다. 먼저 유클리드 기하학이 무엇이 나면, 우리가 일반적으로 중, 고등학교 때 배운 기하학들, 예를 들면 좌표평면에서 원과 사각형의 넓이나 길이 등은 모두 유클리드 기하학에 속한다. 유클리드 기하학이 아닌 다른 종류의 기하학은 생각된 적이 없었기 때문에 유클리드라는 수식어를 사용하지 않았고, 유클리드의 공리는 직관적이고 명백하며, 절대적인 의미에서 참이라고 알려졌었다. 하지만 오늘날은 이것과는 반대되는 비유클리드 기하학이 개발되었다. 택시 기하학이 바로 비유클리드 기하학 중 하나이다. 여기서 택시는 우리가 아는 택시가 맞다. 출처 - 위키백과 택시 기하학에서 택시 거리에 대해 살펴보겠다. 택시 거리는 다른 말로 맨해튼 거리라고도 한다. 위의 그림에서 점과 점 사이의 거리를 구할 때 우리는 사각형의 대각선임을 알고 다음과 같이 거리를 구할 수 있다. 이것이 흔히 아는 유클리드 기하학이다. 반면에 택시 기하학은 말 그대로 택시는 블록 외의 길을 가

C언어 프로그래밍 기본 [내부링크]

C언어 프로그래밍 기본 C언어 역사 및 소개 - 커닝 헨이 만든 B언어로 UNIX를 개발했지만 잘 되지 않았다. 이후 데니스 리치가 투입되어 C언어를 개발했고, UNIX의 80%를 개편하여 UNIX를 제대로 작동시키는데 성공했다. - C언어는 B언어와 다른 자료형의 개념이 많이 투입되었다. - C언어의 표준 스펙은 현재 많이 사용하는 C95부터 C99, 최근에는 C11등 많이 개발되었다. 실습환경 Visual Studio - Professional 버전의 사용을 추천한다. - 구형 버전은 버퍼 오버플로우가 발생하는 함수(주로 문자열)의 결함에 대한 경고를 해주지 않는다. 즉, 최신 버전이 SDL옵션으로 시큐어 코딩이 가능하다. - 버퍼 오버플로우 : 메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 것이다. 프로그래밍에서 데이터를 버퍼에 저장할 때 프로그래머가 지정한 곳 바깥에 저장하는 것을 의미한다. 버퍼 오버런이라고도 한다. - SDL(Security Development

필환경 시대 / 친환경 마크 제도 [내부링크]

요새 미세먼지가 전국을 강타하면서 환경에 대한 관심이 뜨거워지고 있다. 바야흐로 필환경 시대가 도래했다고 할 수 있다. 더 이상 '하면 좋은' 친환경이 아니라 '지켜야만 하는' 필환경의 시대가 온 것이다. 필환경과 친환경.. 정말이지 한 단어 차이이다. 사실 의미는 비슷하고 전하고자하는 뜻은 같다고 할 수 있다. 여기서 한 가지 짚고 넘어가고 싶은 것이 친환경 마크에 관한 것이다. 환경마크는 같은 용도의 다른 제품에 비해 제품의 환경성을 개선한 경우 그 제품에 로고를 표시하여 소비자에게 환경 개선에 대한 정보를 제공하고, 소비자의 환경마크 제품 선호에 부응에 기업이 친환경제품을 개발 및 생산하도록 유도하여 자발적 환경개선을 이끌어내는 제도이다. 즉 필환경 시대에 맞게 우리는 '친'환경 마크(환경 표지)가 달린 제품을 '필'히 사용해야하는 것이다. 더불어 환경을 해치는 제품을 생산하는 기업들에 대한 정보도 소비자들이 알 수 있도록 하고, 필히 그러한 제품의 사용을 제한할 수 있도록 해

구글 드라이브 구글 문서 소스코드 삽입하기, code block 사용법 [내부링크]

소스 코드를 그냥 복붙하면 보기가 안 좋다. 네이버 블로그에서도 아래처럼 소스코드를 넣을 수 있게 해줬다. 옛날에는 없었던 것 같은데 생겼다. #include <stdio.h> int main(void) { char szName[12] = {"Hello"}; return 0; } 구글 드라이브에서 구글문서를 작성할 때 이런 기능을 기본적으로는 제공해주지 않는다. 하지만 다음의 부가기능을 이용해서 소스코드를 보기 좋게 삽입할 수 있다. 구글 드라이브에서 다음의 부가기능을 선택하고 부가기능 열기를 누른다. 다음과 같은 창을 볼 수 있다. code block을 검색한다. 이것을 다운 받아서 사용하면 된다. 사용법을 설명하겠다. 문서에 코드를 붙여넣는다. 그리고 부가기능 - code blocks - start를 누른다. 그러면 아래의 창이 뜬다. 언어나 테마를 설정할 수 있다. 그냥 기본 설정으로 해보겠다. 아까 붙여놓은 코드를 드래그한다. 그리고 format을 눌러주면 아래와 같이 원하는

C언어 자료형 [내부링크]

자료형 자료형 - 형식, B언어 x, C언어 o - 일정 길이의 메모리에 저장된 정보를 해석 방법을 의미한다. 비트 - 비트를 이용해 전기적 신호 형태를 0또는 1로 표현한다. - n비트 일 때 표현 가능한 범위(경우의 수)는 0 ~ 2^n - 1이다. 변수와 상수 - 변수는 아직 확정되지 않고 변화할 수 있는 수 를 의미한다. 데이터의에 붙은 이름, 메모리라고 이해해도 된다. - 상수는 확정된 수이며 변하지 않는 수를 의미한다. - 상수의 종류에는 리터럴 상수와 심볼릭 상수가 있다. 자료형 종류 및 크기(바이트) - 정수형 - char(1), short(2), int(4), long(4), long long int(8), unsigned 조합(부호 비트도 데이터 비트로 해석하는 부호가 없는 정수형) - 실수형 - float(4), double(8), long double(8 이상) - 유도형 - *(4 : 32비트 시스템의 포인터, 8 : 64비트 시스템의 포인터 등. 시스템 아키

교착상태 예방(Deadlock prevention methods) 설명 및 비유 [내부링크]

교착상태(Deadlock)을 해결 하는 방법으로 예방, 회피, 탐지 및 복구가 있는데 예방에 대해 정리해보겠다. 교착상태 예방(Deadlock prevention methods)는 4개의 deadlock 발생 필요 조건 중 하나를 제거하는 것이다. 4개의 조건은 아래와 같다. - Exclusive use of resources - Non preemptible resources - Hold and wait (Partial allocation - Circular wait 이 조건 중 하나만 제거하여도 절대 Deadlock이 발생하지 않는다. 그러나 교착상태 예방은 사실상 불가능하다고 봐야하는데, 조건 별로 그 이유를 소개하겠다. Exclusive use of resources를 제거한다는 것은 모든 자원의 공유를 허용한다는 것이다. 그런데 한 자원을 두고 여러 프로세스가 자원을 공유해서 쓴다는 것은 불가능하다. 밥먹는 숟가락이 하나인데 어떻게 여러 사람이 동시에 공유해서 숟가락을 쓴다는

모바일 디펜스 게임 추천, 공략불가 운빨 디펜스 공략 리뷰 [내부링크]

공략불가 운빨 디펜스 공략 리뷰 워크래프트나 스타크래프트에서 디펜스게임 좋아하는 분들 많았을텐데, 그런 분들을 위한 게임입니다~ 이것만 보면 딱 아시겠죠~? 게임도 간단합니다. 같은 타워를 두 개 모으면 상위 단계로 넘어가는데 짓는 타워도 랜덤, 업그레이드된 타워도 랜덤인 운빨 게임입니다~ 공략불가라고는 하지만,, 가능해요ㅎㅎ 다운받자마자 이지에서 하드, 헬까지 뚫었습니다! 게임으 난이도는 어렵지 않은 것 같아요, 간단히 공략을 적어보자면 중앙에 상위 클래스의 타워를 밀집시키는 것이 중요하다는것? 업그레이드는 적절히 해주면 되고, 업그레이드를 하려면 돈이 필요해요~ 돈을 벌기 위해서는 퀘스트를 깨야해요. 퀘스트는 중간 보스 같은애 한 마리를 잡는거에요. 못잡으면 목숨이 날라가니 적절한 시기에 쿨 돌때마다 잡아줘야 돈을 최대한 벌 수 있습니다! 게임이 끝나지 않는 모드가 있는데 웨이브 기록이 나오고 다른 사람들과 비교해서 평가도 내주는 것 같아요! 저는 꽤 괜찮은 평가를 받았어요ㅎㅎ

브롤스타즈 캐릭터 순위 추천, 트로피 모으기 [내부링크]

브롤스타즈 제 상황이고요,, 캐릭터도 세 개빼고 다모았네요, 현질없이 그냥 상자만 깠는데도 이 정도인걸 보면 꾸준히 하면 캐릭터는 금방 얻을 수 있을 것 같아요. 트로피 모으는 팁은 모든 캐릭터가 트로피를 다 같이 얻는거에요~ 트로피가 올라갈수록 상대의 수준도 올라가는데 캐릭터별로 트로피가 다르다보니,, 낮은 트로피의 캐릭터가 트로피를 모으기가 쉬워요! 원래는 시즌 종료 때마다 트로피별로 상자깔 수 있는 포인트를 줬는데,, 이번에는 스타 포인트가 도입되면서 한 캐릭터를 열심히 파는게 좋더라구요.. 하나만 계속하는게 사실 재미는 떨어지는 것 같은데 이렇게 해놓으니 좀 별로더라고요.. 일단 맵별로 간단히 어떤 캐릭터를 하는게 좋을지 적어볼게요. 일단은 기본적으로 어떤 콘텐츠인지도 중요하지만 사실 맵의 구조가 더 중요해요 벽이 많은 맵이라면 -> 벽 뒤로 공격 가능한 캐릭터 부쉬가 많은 맵이라면 -> 근거리 센 캐릭터 뻥뚫린 맵이라면 -> 멀리서 개팰 수 있는 캐릭터 위에서 제시한 것은

카운팅 알고리즘이란? 정렬 [내부링크]

카운팅 알고리즘이란? 카운팅 알고리즘은 수의 범위가 작을 때 더욱 빠르게 정렬할 수 있는 알고리즘이다. 말의 뜻에서 유추할 수 있듯이 수가 몇 개 있는지 세서 정렬을 하는 것이다. 다음과 같은 상황에서 사용한다. 먼저 숫자의 중복을 허용하는 경우, 그리고 수의 범위를 아는 경우이다. 아래는 N개의 수가 주어질 때 10000보다 작거나 같은 자연수를 정렬하는 경우에 대한 카운팅 알고리즘이다. (자바로 작성되었다.) import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buff

C언어 표준 입/출력 도구 [내부링크]

표준 입/출력 도구 HCI(Human Computer Interaction, 인간 컴퓨터 상호작용) - HCI는 어떻게 하면 사람들이 쉽고 편하게 컴퓨터 시스템과 상호작용할 수 있는가를 연구하는 학문으로, 시스템을 디자인하고 평가하는 것과 함께 이러한 시스템을 사용하는 인간의 특성에 대해 연구하는 분야다. HCI에서 상호작용은 사용자와 컴퓨터 사이에 있는 사용자 인터페이스에서 발현되는 작동을 의미하는데, 그 의미가 점차 확대되고 있다. 아울러 기술의 발전과 더불어 사용자, 컴퓨팅, 인터페이스 등의 정의와 의미 또한 확장되고 있다. - HCI는 CLI → GUI → UX 등으로 발전되었다. - CLI가 가장 근간이다. 컴퓨터 구조 배경지식 - 컴퓨터 = H/W + S/W - S/W = 시스템(OS) + 응용 - H/W, Kernel(OS), user, Process, Thread - 커널(kernel) : 컴퓨터의 운영 체제의 핵심이 되는 컴퓨터 프로그램의 하나로, 시스템의 모든 것을

미드 추천 체르노빌 원전사고 다룬 미드 체르노빌 러닝타임은? [내부링크]

먼저 러닝타임은 매 화별로 약 한 시간이라 총 5부작 = 총 5시간 정도입니다. 5시간이면 정말 재밌는 미드 시리즈 하나를 다 보는거에요. 체르노빌 원전사고를 사실 들어보지는 못했어요. 이 미드를 보면서 알게되었는데 드라마 내용이 체르노빌 원전사고를 다루고 있거든요. 어쩌다가 폭발이 일어나게 되었는지, 그리고 그것을 수습하고 바로 잡으려는 사람들과 무능함을 숨기려는 정부,, 그러한 관계 속에서 느낄 수 있는 것들이 많아요. 실화 기반 영화다 보니 마지막 화에 마지막에 실사랑 코멘트들을 보면서 더욱 확 와닿았는데요. 몇 가지 관련해서 이야기를 해보면,, 드라마에 등장하는 울라나 호뮤크라는 인물은 당시 진실을 밝힌 레가소프를 이어서 헌신하고 봉사한 여러 과학자들을 대표하는 인물이라고 하네요. 드라마에 등장하는 인물들이 담배를 피는 장면이 많은데요. 방사능에 노출되어 피해를 입은 사람들중에도 담배를 피더라고요. 건강을 해치는 담배에 대한 경고 같은 걸 담는 것이 아닌가 싶었어요. 눈에 띄

C언어 연산자 기본 [내부링크]

연산자 기본 프로그램 구성 - 항이 모이면 구문이다. - 구문이 모여서 블록을 이룬다. 구문은 절차적인 흐름(Context)으로 진행된다. - 블록이 모여 프로그램이 구성된다. 연산자 우선순위 우선순위 연산자 설명 결합 법칙(방향) 1 x++ x-- ( ) [ ] . -> (자료형){값} 증가 연산자(뒤, 후위) 감소 연산자(뒤, 후위) 함수 호출 배열 첨자 구조체/공용체 멤버 접근 포인터로 구조체/공용체 멤버 접근 복합 리터럴 → 2 ++x --x +x -x ! ~ (자료형) *x &x sizeof 증가 연산자(앞, 전위) 감소 연산자(앞, 전위) 단항 덧셈(양의 부호) 단항 뺄셈(음의 부호) 논리 NOT 비트 NOT 자료형 캐스팅(자료형 변환) 포인터 x 역참조 x의 주소 자료형의 크기 ← 3 * / % 곱셈 나눗셈 나머지 → 4 + - 덧셈 뺄셈 → 5 << >> 비트를 왼쪽으로 시프트 비트를 오른쪽으로 시프트 → 6 < <= > >= 작음 작거나 같음 큼 크거나 같음 → 7

LIS(Longest Increasing Subsequence), 가장 긴 증가하는 부분 수열 [내부링크]

자바로 작성된 LIS알고리즘 코드이다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.StringTokenizer; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int num = Integer.parseInt(br.readLine()); int[] progA

C언어 연산자 응용 [내부링크]

연산자 응용 sizeof() 연산자 - 컴파일 타임 연산자이다. - 컴파일 타임(compile time) : 컴파일러에 의해 수행되는 동작(컴파일 타임 동작), 성공적으로 컴파일되기 위해서 소스 코드가 충족해야 하는 프로그래밍 언어 요구사항(컴파일 타임 요구사항), 또는 컴파일 동안 추론될 수 있는 프로그램의 속성을 나타낸다. - CPU를 사용하지 않는 연산이라 CPU부하가 없다. - 가급적 자주 사용하는 것이 좋다. - 피연산자는 자료형이다. - sizeof(1) → 4(int), sizeof(‘1’) → 1(char), int nData; sieof(nData) → int, sizeof(nData+1.2) → double - 배열에서는 int aList[3]; siezof(aList) → 3 * 4(int) = 12 - sizeof()를 사용하지 않고 직접 계산해서 상수로 쓰는 것은 좋지 않다. 왜냐하면 유지보수가 어렵기 때문이다. 머신코드 - 단축키 Alt + 8 로 디스어셈블

달팽이 출력, c언어 [내부링크]

달팽이 출력이란 아래 처럼 달팽이 등껍질 모양으로 수를 1씩 증가시켜 삽입한 배열을 출력한 것을 말한다. 코드는 어렵지 않지만 처음에 생각하기가 쉽지 않다. 아래는 c로 작성한 코드이다. #include <stdio.h> int main(void) { int num = 0; scanf_s("%d", &num); int arr[10][10] = { 0 }; int cnt = 0; int len = num; int row = 0; int col = -1; int op = 1; while (1) { for (int i = 0; i < len; i++) { col += op; arr[row][col] = ++cnt; } if (--len == 0) break; for (int i = 0; i < len; i++) { row += op; arr[row][col] = ++cnt; } op = -op; } for (int i = 0; i < num; i++) { for (int j = 0; j

c언어 기본 제어문 [내부링크]

기본 제어문 if문 - if(조건식) { ~; } (←조건이 참인 경우 실행) - 조건식 뒤에는 세미콜론이 없다. - 블록 스코프를 사용하고 들여쓰기를 잘 해야한다. if-else - if(조건) {조건이 참인 경우 실행} else {조건이 참이 아닌 경우 실행} 디버깅 단축키 - F9 : Position Breakpoint - 변수에다 Breakpoint를 걸면 Data(Condtion)Breakpoint - F5 : Debug Run - F10 : Step over 중첩 제어문 - 블록 스코프 안에 또 제어문을 중첩으로 사용이 가능하다. - if-else → 2분할(분할 정복) - 경우의 수를 잘 따지는 것이 중요하다. - 식별자 검색순서(스코프의 중첩) - 변수 ← 식별자 : 이름은 속한 스코프에서 ‘유일’하지만 속한 스코프를 벗어난 외부 or 내부에서는 중복 가능하다. - 검색순서는 스택을 생각하면 된다. - 스택 : 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LI

C언어 - 반복문 [내부링크]

반복문 while문 - 조건 기반 반복문이다. (if문과 유사) - 예시 #include <stdio.h> int main(void) { int i = 0; while (i < 5) { printf("i = %d\n", i); i++; } return 0; } - 개행문자를 입력받을 때까지 입력 받은 것을 출력하는 예제 #include <stdio.h> int main(void) { char ch; while ( (ch = getchar()) != '\n') { putchar(ch); } return 0; } 무한루프 #include <stdio.h> int main(void) { int nInput; scanf_s("%d", &nInput); // 0입력 int i = 0; while (i >= nInput ) { // 무한루프, i가 정수 오버플로우 되면 종료됨 ++i; } return 0; } 반복문 - 반복문 내에서 변수 선언을 하면 안된다. (스택에 올라가고 내려가고를 반복

LCS(Longest Common Subsequence), 최장 공통 부분 수열 [내부링크]

LCS는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 알고리즘이다. 예를들어 ABAB와 AAB에서 답은 AAB인 3이되고, ABCD와 DBCA에서 답은 BC인 2가 된다. 아래는 자바로 작성된 LCS알고리즘이다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new Output

c언어 scanf 문자열 입출력 [내부링크]

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { char s1[10]; printf("문자열을 입력하세요: "); scanf("%s", s1); printf("%s\n", s1); return 0; } c언어 문자열 입출력을 할 때 scanf를 이용하면 위에 처럼 하면 된다. 그런데 scanf는 보안상 결함이 있기 때문에 오류가 나는데 이를 방지하기 위해 #define을 추가해준 것이다. 이렇게 하면 문자열 입출력이 잘 된다, 한가지 유의할 점은 char은 배열이기 때문에 scanf에서 s1을 쓸 때 &연산자를 붙이지 않는다는 점이다. 만약 그냥 int형 숫자였다면 &을 붙여야 했을 것이다. 한 가지 더, scanf는 보안상 결함이 있기 때문에 scanf_s의 사용을 권장한다. 그런데 scanf_s는 문자열 입력 받을 때 위에랑 똑같이 하면 안 된다. 찾아보니 문자열의 길이가 인자로 더 필요했다. 그러니까 만약 위의

C언어 배열 [내부링크]

배열 배열 - 형식이 같은 자료 여러 개가 모여 새로운 하나를 이룬 형식(유도 형식 중 하나) - 집합체, 여러개가 모여서 하나가 되는 것 - int aList[5] 와 같은 형태로 사용 - aList는 식별자(이름) - 자료형은 int[5]라고 해야 한다. 아래를 보면 같은 사이즈를 가짐을 알 수 있다. #include <stdio.h> int main(void) { printf("%d\n", sizeof(int[5])); int aList[5]; printf("%d\n", sizeof(aList)); return 0; } - aList = &aList = aList + 0 = &aList[0]은 모두 같은 값을 가진다. - 다만 aList는 기준 주소(= 메모리의 주소)이고, 기준주소 + 인덱스(정수)는 상대 주소이다. 또 aList + 1과 &aList + 1은 전혀 다른 값이다. #include <stdio.h> int main() { int aList[5] = { 1, 2,

배열을 활용한 프로그래밍 기법(c언어) [내부링크]

배열을 활용한 프로그래밍 기법 선택정렬 - 최댓값 / 최솟값을 계속해서 구하면 정렬이다. 선택정렬은 아래와 같은 방식으로 구해진다. - 시간 복잡도가 O(n^2)으로 느린편이다. - 코드 #include <stdio.h> // 선택정렬 int main(void) { int aList[5] = { 30, 40, 10, 50, 20 }; int i = 0, j = 0, nTmp = 0; int nIndexMin = 0; for (i = 0; i < 4; i++) { int nIndexMin = i; for (j = i + 1; j < 5; j++) { if (aList[nIndexMin] > aList[j]) { nIndexMin = j; } } if (i != nIndexMin) { nTmp = aList[i]; aList[i] = aList[nIndexMin]; aList[nIndexMin] = nTmp; } } for (int i = 0; i < 5; i++) printf("%d\

c언어 함수에 대한 기본 이론 [내부링크]

함수에 대한 기본 이론 함수 - 함수를 사용하는 것을 Call(호출)한다고 한다. main함수에서 puts함수를 사용한다고 할 때, main은 Caller(호출자)가 되고 puts는 callee(피호출자)가 된다. - int main (void)의 모양 - int : 반환 형식(자료형) - main : 이름(주소) - (void) : 매개변수 목록 - 사용자 정의 함수 예시 #include <stdio.h> // 함수 시그니처, 함수 원형이라고 함 int Add(int a, int b) { // 함수 바디 시작 int nResult; // 지역변수 + 자동변수 (함수의 매개변수도 같은 역할을 함) nResult = a + b; return nResult; } // 함수 바디 끝 int main(void) { // 프로그램의 시작 int nResult = 0; nResult = Add(3, 4); printf("%d\n", nResult); return 0; } - 자동변수 : 프로그

c언어 메모리와 포인터 [내부링크]

메모리와 포인터 메모리 - 무수히 많은 메모리 공간에서 사용할 곳을 지정하는 것이다. 지정은 자동적으로 된다. - 지정에는 직접지정(ex.변수선언)과 간접지정이 있다. - *((int*)0x0018FF28) = 600; 처럼 직접 지정을 할 수도 있다. 함수도 마찬가지. ( void 함수 포인터 형식 - (void(*)(int)) ) - 간접지정 예시 #include <stdio.h> int main() { int nData = 300; int *pnDta = &nData; return 0; } - 예를들어 주소를 말할 때 GPS를 꺼내 실제 위치를 말하는 것을 직접지정, 근처 건물(기준)에서 3m 떨어진 곳(상대적 위치)에 있다고 말하는 것을 간접지정이라고 할 수 있다. Byte order → Little Endian(↔Big Endian) - 엔디언(Endianness) : 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는

c언어 함수 응용 [내부링크]

함수 응용 함수 호출 및 매개변수 전달 - 호출하는 함수를 Caller, 호출 되는 함수를 Callee라고 한다. 이를 묶어서 Binding이라고 한다. Binding은 컴파일Time에 실행이 된다. - Call by value : 함수 호출 시 매개변수가 값인 경우 - Call by reference : 함수 호출 시 매개 변수가 주소인 경우 #include <stdio.h> void TestFunc(int *pnParam) { *pnParam = 10; } int main() { int nData = 0; TestFunc(&nData); printf("%d\n", nData); return 0; } - call by reference로 두 변수의 값을 변경하기 #include <stdio.h> void Swap(int *pLeft, int *pRight) { int nTmp = *pLeft; *pLeft = *pRight; *pRight = nTmp; } int main() {

c언어 구초제와 공용체 [내부링크]

구조체와 공용체 용어 정리 - 자료형 : 일정 길이의 메모리에 저장된 정보의 해석 방법 - 배열 : 동일 형식(자료형)의 연속된 ‘집합체’ - 구조체 : 서로 같거나 다른 형식들의 연속된 집합체, 다양한 기본 자료형을 가진 요소들을 모아 새로운 자료형으로 만든 것(사용자 정의 자료형) - 공용체 : 한 형식(같은 크기)에 여러 해석 방법을 부여하는 문법 구조체 - 예시 #include <stdio.h> typedef struct USERDATA { unsigned int nHeight; char szName[12]; char szPhone[12]; unsigned char sex; } USERDATA; int main(void) { USERDATA a; a.nHeight = 180; strcpy_s(a.szName, sizeof(a.szName), "Ho-sung"); strcpy_s(a.szPhone, sizeof(a.szPhone), "123-1234"); a.sex = 'M';

펜윅트리(Fenwick tree) 자바 구현 예시 [내부링크]

펜윅트리(Fenwick tree)는 세그먼트 트리에서 조금 더 진화된 버전입니다. 사용처는 연속된 구간의 합을 구할 때 사용하면 빠르고 효율적인 계산을 할 수 있습니다. 복잡도는 O(log n)의 복잡도를 가집니다. 이진 트리 인덱스라고도 하는데, 이진수의 성질을 이용해서 트리를 구현했기 때문입니다. 펜윅트리의 기능은 두 가지가 있는데 합과 갱신 입니다. 그림으로 어떻게 돌아가는지를 보면 다음과 같습니다. 아래 그림처럼 생각하면 됩니다. 위에가 인덱스이고 아래가 마지막 2진수의 위치입니다. 만약 13까지의 합을 구하려면 8까지의 합 + 12까지의 합 + 13까지의 합을 구하면 됩니다. 갱신을 할 때도 13을 갱신할 때 12부분과 8부분을 갱신해줘야 합니다. 이를 자바 함수로 구현하면 다음과 같습니다. 합을 구하기 public static long sum(int[] tree, int i) { long ans = 0; while (i > 0) { ans += tree[i]; i -= (

c언어 파일 입출력 [내부링크]

파일 입출력 파일 - 데이터 파일(mp3, avi, ppt 등)과 실행 파일(exe, dll 등)이 있다. 이를 관리하는 체계를 파일 시스템(FAT32, NTFS 등)이라고 한다. - 파일이 디스크에 저장되는 모습을 그림으로 나타내면 아래와 같다. - 파일이 저장된 위치가 기록된 테이블이 FAT(File Allocation Table)이다. - usermode에서 커널 모드로 진입할 수 있는 인터페이스 - 파일마다 고유의 I/O버퍼가 있다. - 파일의 논리구조는 선형 구조이다. 따라서 Streaming이 가능하다. - 파일 기본 - fopen() : 파일을 엶 - fclose() : 파일을 닫음 모드 설명 - r : 읽기만 가능하며 파일이 존재해야 한다. 존재하지 않을 경우 에러가 리턴된다. - w : 쓰기만 가능하며 파일을 생성한다. 파일이 존재하면 그 파일을 지우고 생성한다. - a : 파일 끝에 추가만 가능하며 파일이 존재하지 않으면 파일을 새로 생성한다. - 그 외에 다른 모

c언어 변수와 상수 고급이론 [내부링크]

변수와 상수 고급이론 의존성 - 아래의 네 코드에서 1번과 2번은 순차적으로 진행되어야하고 3번과 4번도 마찬가지이다(의존성O). 하지만 각각의 덩어리 1, 2번과 3, 4번의 순서는 상관이 없다(의존성 X). 1. a = b+3; 2. c = a * 2; 3. x = 10 + y; 4. z = x * y; - 의존성은 변수(자료)를 기준으로 판단한다. 최적화 - 아래의 코드에서 컴파일러는 for문 부터 nResult를 출력하는 3줄을 그 아래의 printf 한 줄로 최적화를 한다. #include <stdio.h> int main(void) { int nResult = 0; for (int i = 0; i < 10; i++) nResult = 10; printf("nResult = %d\n", nResult); printf("nResult = %d\n", 10); return 0; } - 최적화를 하려면 특정 변수(자료)에 대해 의존성이 존재하는 연산을 구별할 수 있어야 한다. -

c언어 전처리기 [내부링크]

전처리기 전처리기 - 컴파일러가 소스코드를 컴파일하기 전에 미리 선행하는 것이 전처리기이다. - cpu의 연산과는 상관 없다. (오직 컴파일 타임에 일어나는 것이다) - #을 붙여서 사용한다. (예를들어 #include) #include - #include <~.h> : 컴파일러 설정 내 디렉토리에서 헤더파일을 검색한다. - #include “~.h” : 현재 폴더(일반적으로 프로젝트 파일이 있는 폴더이다.)에서 헤더파일을 검색한다. - 직접 헤더파일을 만들어서 쓸 수도 있다. 그 경우 #pragma once를 붙여줘야 한다. 매크로와 __inline 함수 - 매크로는 실제로 함수가 아니라 한 행 혹은 여러 행으로 기술할 수 있는 구문이다. - 매크로 예시 #include <stdio.h> #define ADD(a, b) (a + b) int main() { printf("%d\n", ADD(3, 4)); return 0; } - 매크로 사용은 최대한 자제해야 한다. → 가능하면 _

c언어 함수에 대한 고급 이론 [내부링크]

함수에 대한 고급 이론 성능 향상을 위한 이론 - 컴파일러 최적화가 잘 되도록 코드를 작성해주면 된다. - __inline 함수 - 매크로의 장점을 살리면서 단점(매개변수 같은 것)을 극복했다. - __inline함수가 될 수 있는 제약이 있긴한데 컴파일러가 알아서 판단해 준다. 함수 호출 규칙 - 매개변수를 전달하는 순서 및 매개변수가 사용한 메모리 관리방법 등에 관한 규칙이다. (대표적으로 __cdecl, __stdcall, __fastcall이 있다.) - 기본 함수 호출 규칙은 __cdcel이다. (옵션에서 변경 가능) - __cdcel 예시와 스택 #include <stdio.h> int __cdecl GetMax(int a, int b, int c) { int nMax = a; if (b > nMax) nMax = b; if (c > nMax) nMax = c; return nMax; } int main(void) { // 디폴트는 __cdecl이다. (옵션에서 변경 가능

자바 문자열 자르기 substring [내부링크]

자바 문자열을 자를 때 사용하는 메소드 substring입니다. str.substring(a) : str의 인덱스 a부터 끝가지의 문자를 반환합니다. str,substring(a, b) : str의 인덱스 a부터 b 직전까지의 문자를 반환합니다. 사용 예시 spl[idx++] = str.substring(i, i + n); 아래는 카카오 블라인드 코딩 테스트에 나온 문제를 푼 것인데, str의 문자열을 잘라서 다른 String배열에 나눠서 사용하는 것입니다. public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String str

자바 2차원 배열 조합, 백준 치킨 배달 [내부링크]

백준의 치킨 배달이라는 문제의 정답 코드와 설명이다. https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 문제 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 " 치킨 거리 "라는 말을 주로 사용한다. 치킨 거리 는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리 를 가지고 있다. 도... www.acmicpc.net 해당하는 알고리즘은 브루트 포스인데, 주어지는 입력이 2차원 배열이다. 그래서 2차원 배열에 대한 경우의 수를 구해야 하는데, 재귀 호출을 이용하였다. 아래가 재귀호출을 하는

동적계획법 파일 합치기, 연쇄행렬곱셈 응용 [내부링크]

백준에 있는 파일 합치기 문제입니다. https://www.acmicpc.net/problem/11066 11066번: 파일 합치기 11066번 제출 맞은 사람 숏코딩 풀이 풀이 작성 풀이 요청 재채점/수정 채점 현황 강의 파일 합치기 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 256 MB 8773 4618 2956 51.480% 문제 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본이 들어있는 한 개의 파일을 만든다. 이 과정에서 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나... www.acmicpc.net 배열이 입력으로 주어지는데 각 배열을 무조건 연속으로만 합칠 수 있습니다. 배열을 합치는 것은 그 만큼의 비용이 든다고 할 때, 비용이 최소가 되도록 모든 배열의 원소를 합치는 것이 문제입니

C++ 기초 배우기, 입출력 문법 함수 [내부링크]

C++스타일 입출력 - 출력(cout) #include <iostream> int main() { std::cout << "Hello, World!" << std::endl; } - << 는 출력할 데이터를 분리할 용도로 쓰인다. #include <iostream> int main() { std::cout << "Hello, World!" << 10 << 'c' << std::endl; } - endl 은 줄바꿈을 해주는 것이다. 네임스페이스(namespace) - 서로 다른 공간에서는 같은 이름이 있어도 된다. #include <iostream> namespace a { int n; } namespace b { int n; } int main() { a::n = 10; b::n = 20; } - std::은 using namespace std; 를 써주면 없애도 된다. #include <iostream> using namespace std; int main() { cout << "

your cpu does not support required features (vt-x or svm) 오류 해결, 안드로이드 스튜디오 [내부링크]

안드로이드 스튜디오를 설치하고 AVD를 깔 때 your cpu does not support required features (vt-x or svm) 이런 오류가 발생하는 경우가 있다. 이유는 AMD CPU를 사용해서 안드로이드 스튜디오가 그러한 가상 환경을 지원해주지 않아서인데, 자세히는 모르겠다. 아무튼 이를 해결하려면 다음과 같이하면 된다. 먼저 처음 설치할 때도, 이런 오류가 발생하는데 그럴 경우 컴퓨터 부팅 중 바이오스 모드에 진입해야 한다. 1. AMD 라이젠 기준 F2로 바이오스 모드 진입 후 2. 고급 설정에서 CPU Configuration 에 SVM Mode 를 찾아야 한다. 메뉴를 잘 뒤져서 SVM 어쩌고 저쩌고를 찾으면 된다. 3. SVM Mode를 enable로 바꿔준다. 이렇게 설치를 잘 마치고 AVD를 실행시키려면 1. 실행창에서 Windows 기능 켜기/끄기를 실행하고 2. 아래 창에서 Windows Hypervisor Plaform을 체크하고 확인을 눌

C++ 범위기반 2중 for문으로 이차원 배열 출력하기, 배열 포인터 [내부링크]

2차원 배열을 출력하는데 범위기반 for문만을 사용하는 것이다. 먼저 다음과 같은 2차원 배열을 선언하고, int arr[2][3] = { { 1, 2, 3 }, {4, 5, 6 } }; 처음에는 아래 같이 배열 하나로 출발했다. for (int n : arr[0]) { cout << n << ' '; } 그런데 이렇게하면 범위 기반 for문이 아니라 일반 for문을 사용해야 한다. for (int i = 0; i < 2; i++) { for (int n : arr[i]) { cout << n << ' '; } } 그래서 범위기반 for문만 하려면 아래처럼 포인터를 사용해야 한다. 그러면 일단 배열 행의 첫 번째 원소가 나온다. for (int *n : arr) { cout << *n << ' '; } 그래서 정확한 답이자 결론은 아래이다. for (int(&ln)[3] : arr) { for (int &col : ln) { cout << col << ' '; } cout << en

C++ 네임스페이스(namespace) [내부링크]

std::cout 에서std::을 지우고 간편히 쓰려고 다음을 선언한적이 있다. using namespace std; 여기서 등장하는 namespace이다. 네임스페이스를 아래처럼 직접 만들 수도 있다. #include <iostream> using namespace std; int n; void set() { n = 10; } namespace lee { int n; void set() { n = 20; } } namespace kim { int n; void set() { n = 30; } } int main() { ::set(); lee::set(); kim::set(); cout << ::n << endl; cout << lee::n << endl; cout << kim::n << endl; } 같은 이름의 변수지만 네임스페이스가 다 다르다. 메인에서 어떻게 선언하는지도 눈여겨 보자. 다음 예제는 네임스페이스 안의 set()함수를 위에서 선언만하고 정의를 메인함수 뒤로 보낸

자바 동적 계획법 재귀 호출, 백준 내리막 길 [내부링크]

https://www.acmicpc.net/problem/1520 1520번: 내리막 길 1520번 제출 맞은 사람 숏코딩 풀이 풀이 작성 풀이 요청 재채점/수정 채점 현황 강의 내리막 길 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128 MB 24131 5668 4197 26.966% 문제 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으며, 각 지점 사이의 이동은 지도에서 상하좌우 이웃한 곳끼리만 가능하다. 현재 제일 왼쪽 위 칸이 나타내는 지점에 있는 세준이... www.acmicpc.net 동적 계획법 문제인데, 이차원 배열로 맵이 주어지는데 왼쪽 끝 출발점에서 오른쪽 아래 도착점까지 가는 경우의 수를 모두 구하는 것이다. 다만 아래처럼 현재 위치에서 낮은 숫자로만 이동을 할 수 있다. 아래는 전체 코드이다. 코드는 생

0-1 배낭 채우기 동적 계획법 자바 구현 [내부링크]

정해진 가방의 무게에 물건을 채우는데 각 물건은 가치와 무게가 정해져있다. 그 때 최대한의 가치로 가방을 채우는 알고리즘이 배낭 채우기이다. 동적 계획법으로 아래와 같이 구현했다. 일단 아래의 변수들을 전역으로 선언했다. static int num; // 물건의 수 static int maxWeight; // 가방에 들어갈 수 있는 무게 static int[] weight; // 무게들의 배열 static int[] value; // 가치들의 배열 static int[][] dp; // 답을 구할 배열 static int maxValue = 0; // 구한 답에서 최대의 가치 아래는 알고리즘 부분이다. public static void napsack() { int w = weight[0]; for(int i = w; i < maxWeight + 1; i++) dp[0][i] = value[0]; for (int i = 1; i < num; i++) { w = weight[i]; fo

동전교환 동적 계획법, 백준 동전1 문제 자바 [내부링크]

동적 계획법 관련 알고리즘으로 백준의 동전이라는 문제이다. 동전의 수와 목표하는 동전의 최대가치가 주어지고, 동전의 수 만큼 각 동전의 가치가 주어질 때 여러 동전을 합해서 목표하는 가치를 채우는 경우의 수를 구하는 것이다. 알고리즘 자체는 크게 어려운 것 같지는 않은데, 동적 계획법은 알고리즘을 생각해 내는 것이 너무 어려운 것 같다. 아래가 주요 알고리즘이다. public static int cntCoin() { for (int i = 0; i < num; i++) { dp[value[i]]++; for (int j = value[i] + 1; j <= maxValue; j++) { dp[j] = dp[j] + dp[j - value[i]]; } } return dp[maxValue]; } 이 문제는 메모리의 제약이 커서 일차원 배열로 구현해야 한다. 어떤식으로 했냐면, 먼저 dp[동전 가치]를 하나 늘려준다. 그리고 그것의 배수, 예를들어 동전가치가 2이면 dp[2] = 1이

C++ 정적 멤버 static [내부링크]

C++에서 객체를 클래스 내 멤버로 가지거나 전역으로 사용하려면 static을 이용해서 정적으로 선언해주어야 한다. 정적 멤버는 하나의 붕어빵 틀이라고 생각하면 된다. 붕어빵틀은 항상 똑같고 나오는 붕어빵이 다른 것이므로 붕어빵틀은 정적이다. 아래 예시를 보자. #include <iostream> using namespace std; class Color { public : Color() : r(0), g(0), b(0) { } Color(float r, float g, float b) : r(r), g(g), b(b) { } float GetR() { return r; } float GetG() { return g; } float GetB() { return b; } static Color MixColors(Color a, Color b) { return Color((a.r + b.r) / 2, (a.g + b.g) / 2, (a.b + b.b) / 2); } private : f

const, 상수형 매개변수와 상수형 메소드 (c++) [내부링크]

const를 이용한... 1. 매개변수의 상수화 (모든 함수) 2. 메소드의 상수화 (멤버 메소드) 예시 #include <iostream> using namespace std; class Account { public : Account() : money(0) { } Account(int money) : money(money) { } void Deposit(const int d) { // 매개변수 상수화 money += d; cout << d << "원을 예금했다!!" << endl; } void Draw(const int d) { // 매개변수 상수화 if(money >= d) money -= d; cout << d << "원을 인출했다!!" << endl; } int ViewMoney() const { // 메소드의 상수화 return money; } private : int money; }; 1번(매개변수 상수화)은 매개변수가 메소드 내에서 바뀌는 것을 막아준다. 2번(메소드

operator 연산자 오버로딩 C++ [내부링크]

먼저 사용은 이렇다. Vector2 operator+(const Vector2 rhs) const; 아래는 설명이다. 연산자 오버로딩을 설명하기 위해 Vector를 예로 들겠다. 두 벡터 a와 b를 더한다고 할 때 우리가 아는 +연산자를 써서 a+b 로 할 수 있다면 좋지만 아래처럼 Sum함수를 만들어서 매개변수로 넘겨줘서 , Sum(a, b) 를 호출해야 한다. 그런데 operator를 이용해 연산자 오버로딩을 사용하면 +기호를 이용해 벡터를 더할 수 있다. 원래는 a.operator+(b) 이렇게 되는 것인데, Vector2 c = a + b; 처럼 쓸 수 있게 된다. 아래 예시를 보면 쉽게 이해할 수 있다. #include <iostream> using namespace std; class Vector2 { public: Vector2(); Vector2(float x, float y); float GetX() const; float GetY() const; Vector2 op

액티비티(Activity) 생명주기, 안드로이드 스튜디오 [내부링크]

액티비티는 어플리케이션 구성요소로서, 전화를 걸거나 사진을 찍거나 지도를 보는 등의 일을 하기 위한 화면을 제공하는 것이다. 쉽게 말해 보이는 창, 화면이다. 액티비티마다 창이 하나씩 주어지고 이곳에 사용자 인터페이스를 끌어올 수 있다. onCreate() - 액티비티가 처음 생성되어 실행되는 순간에 딱 한번 호출된다. 초기화와 사용자 인터페이스 설정을 수행한다. onStart() - 유저에게 액티비티가 보이도록 해준다. 이 단계는 매우 빠르게 끝나고, onResume() 상태로 들어간다. onResume() 와 onPause() - Foreground로 나오면 onResume()을 호출하고, 다른 액티비티가 Background로 나오게 되면 onPause()를 호출한다. 예를들어 사용자에게 전화가 오거나 다른 액티비티로 이동하면 onResume()에 있던 액티비티가 onPause()를 호출한다. onStop() 와 onRestart() - onStop()에서 유저가 다시 해당 액티

C++ 동적할당, 변수 배열 객체 [내부링크]

정적 할당은 일반적으로 하는 변수 선언이고 동적 할당은 메모리를 유동적으로 사용하는 것이라고 생각하면 된다.정적 할당 : int a; 동적 할당 : 프로그램 실행 중에 변수를 메모리에 할당하는 것 변수의 동적할당은 아래와 같다. #include <iostream> using namespace std; int main() { int *a = new int(5); cout << a << endl; cout << *a << endl; *a = 10; cout << a << endl; cout << *a << endl; delete a; } 변수앞에는 포인터를 붙이고, new라는 키워드를 사용하여 선언하고 delete를 이용해 반납을 한다. 자주 사용하는 동적할당은 배열이다. 배열을 정적으로 선언하면 배열의 크기를 미리 정해야 하기 때문에 쓰지 않는 메모리(공간)에 대해 낭비가 발생할 수 있다. 하지만 동적으로 선언하면 딱 쓸만큼의 메모리를 할당할 수 있는 장점이 있다. #include <

c++ 좌표있는 다각형 클래스 구현, 이동 복사 생성자 복사 연산자 [내부링크]

좌표가 있는 다각형 클래스를 C++로 구현한 소스코드이다. 깊은 복사가 일어나는 복사 생성자와 얕은 복사가 일어나는 이동 생성자, 그리고 각각에 대한 복사 대입 연산자도 구현되어 있다. #include <iostream> using namespace std; struct Point { int x, y; }; class Polygon { public : Polygon() { nPoints = 0; points = NULL; } Polygon(const int nPoints, const Point *points) : nPoints(nPoints) { this->points = new Point[nPoints]; for (int i = 0; i < nPoints; i++) this->points[i] = points[i]; } Polygon(const Polygon &rhs) { // 복사 생성자 nPoints = rhs.nPoints; points = new Point[nPoints];

자바 객채 정렬 Comparable [내부링크]

자바 객체를 정렬하는 Comparable 이다. 먼저 클래스를 하나 만들어준다. 필요 없는 부분은 지웠다. class를 선언할 때 implements Comparable<클래스 이름>을 붙여 줘야 한다. 그리고 compareTo를 int형으로 선언해 주고 값을 비교한다. 지금은 매개변수의 값이 this의 값 보다 크면 -1 같으면 0 작으면 1인데, 이럴 경우 오름차순으로 정렬이 된다. 추가적으로 지금 같은 경우에 비교 대상이 되는 endTime이 아닌 startTime을 활용해서 우선순위를 정하도록 하였다. class meeting implements Comparable<meeting> { private int startTime; private int endTime; public int compareTo(meeting r) { if (this.endTime < r.endTime) { return -1; } else if (this.endTime == r.endTime) { if (

롤토체스 1티어 조합, 야생어쎄신 공략 배치 템 [내부링크]

롤토체스 1위한 조합표 공유합니다. 조합은 아래와 같습니다. 1성 워윅, 니달리 2성 제이스, 파이크 3성 렝가, 바이 4성 아칼리, 나르 최종덱이 4성까지기 때문에 완성이 빠르고 1성부터 쭉 고르게 분포되어 있어서 중간에 갈아타고 뭐 할 필요도 없어서 난이도도 쉬운 편입니다. 배치도랑 템 분배는 아래랑 같습니다. 일단 초반에 니달리랑 워윅, 제이스 파이크가 좀 많이 뜬다 싶으면 노려볼만 합니다. 파이크에 모렐로, 렝가에 공템 아칼리는 궁 빨리 돌리게 마나 채워주면 됩니다. 애들 모으면서 돈 모으다가 일렙을 더 올리면 모든 조합이 맞춰진다 싶을 때 돈으로 경험치 다 사서 시너지를 최대한 빨리 맞춰주는게 관건인 것 같습니다. 이상 롤토체스 공략이었습니다. 건승하세요.

C++ 제너릭 프로그래밍, 템플릿 프로그래밍, STL - vector [내부링크]

제네릭 프로그래밍(generic programming) 제네릭 프로그래밍은 모든 상황에 대해서 일반적으로 적용할 수 있게 프로그래밍해서 재사용율을 높인 것이다. 서로 다른 데이터 타입을 하나의 배열로 처리하는 것을 예시로 들 수 있다. 템플릿을 사용하여 구현을 한다. 템플릿 프로그래밍(template programming) 템플릿 프로그래밍은 언어에서 제공하는 템플릿 위에 프로그래밍을 하는 것이다. 이를 메타 프로그래밍이라고도 한다. 정의는 아래와 같다. template<class T, T::type n = 0> class X; struct S { using type = int; }; 간단한 사용 예시이다. 참고 - https://www.geeksforgeeks.org/templates-cpp/ Templates in C++ - GeeksforGeeks A template is a simple and yet very powerful tool in C++. The simple idea

백준 검문 Java 최대공약수 응용 알고리즘 [내부링크]

백준의 검문이라는 문제의 해설이다. https://www.acmicpc.net/problem/2981 2981번: 검문 2981번 제출 맞은 사람 숏코딩 풀이 풀이 작성 풀이 요청 재채점/수정 채점 현황 강의 검문 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 6985 1239 998 21.738% 문제 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간을 때우기 위해서 수학 게임을 하기로 했다. 먼저 근처에 보이는 숫자 N개를 종이에 적는다. 그 다음, 종이에 적은 수를 M으로 나누었을 때... www.acmicpc.net 숫자 목록이 주어지고, 모든 숫자를 어떠한 수 M으로 나눴을 때 같은 나머지가 나오게 하는 M을 구하는 것이다. 최대공약수를 구하는 유클리드 호제법을 이용해야 한다. 이 문제 같은 경우 수학이기 때문에

이항계수 알고리즘 java [내부링크]

이항계수를 구하는 알고리즘을 Java로 구현한 것이다. 이항계수는 다음과 같이 2차원 배열로 생성이 가능하다. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 어떤 규칙인지 눈에 보일 것이다. nCk 일 때, 위에서부터 n이 0, 1, 2, 3, ... 이런 식으로 나가는 것이고, 오른쪽으로는 k는 0, 1, 2, 3, ... 이런식으로 나간다. 맨 위의 1은 0C0, 그 밑에는 1C0, 1C1이 그 밑에는 2C0, 2C1, 2C2가 되는 것이다. 숫자를 구할 때 바로 위의 수 + 바로 위에서 왼쪽에 있는 수를 더해서 구하면 된다. 아래는 알고리즘이다. if(n2 > n1 / 2) n2 = n1 - n2; 입력받은 수 n1이 n이고 n2가 k이다. nCk = nC(n-k)를 적용한 것이다. 왜냐하면 k의 수를 줄이면 배열의 크기가 줄어 들어 좀 더 효울적이기 때문이다. public static int bin(int n, int k) { int[][] a

연속된 수의 소인수 분해 빠르게하기, 이항계수 [내부링크]

이항계수 nCr에서 끝자리 0의 개수를 출력하는 문제이다. 끝자리 10의 개수를 확인하려면 해당 숫자를 2로 소인수분해, 5로 소인수분해해서 2의 개수와 5의 개수 중 최솟값을 출력하면 된다. 이러한 소인수 분해를 빠르게 하는 방법은 아래와 같다. public static int findTwo(int n) { int cnt = 0; for (long i = 2; n / i >= 1; i *= 2) cnt += n / i; return cnt; } 수를 입력 받아서 n / i가 1보다 크거나 같을 때 까지 i를 2부터 2씩 곱하고 cnt에 n/i를 더해주면 된다. 이렇게 하면 5를 입력 했을 때 4일 때 + 2, 2일 때 +1이 된다. 즉 5를 입력하면 1, 2, 3, 4, 5 중 2의 개수를 빠르게 계산한다. 유의할 점은 i의 범위가 매우 커질 수 있으므로 long으로 선언해줘야한다. 아래는 전체코드이다. import java.io.BufferedReader; import java.

자바로 큐(queue) 구현하기 [내부링크]

자바로 큐를 구현하려면 먼저 아래의 두 가지를 import해준다. import java.util.LinkedList; import java.util.Queue; 그리고 다음과 같이 선언을 해서 사용한다. Queue<Integer> que = new LinkedList<Integer>(); 매소드는 다음과 같다. offer : 값 삽입, poll : 값 삭제, peek : 값 반환 이다. 큐는 먼저 들어간 것이 가장 나중에 나온다는 것을 알면 된다. 자세한 내용은 다음의 주소를 참고하면 좋다. https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html Queue (Java Platform SE 7 ) Type Parameters: E - the type of elements held in this collection All Superinterfaces: Collection <E>, Iterable <E> All Known Subin

자바 덱(deque) 구현 [내부링크]

자바의 덱(deque)은 아래처럼 구현한다. Deque<Integer> deq = new ArrayDeque<Integer>(); 사용하려면 다음을 import 해주어야 한다. import java.util.ArrayDeque; import java.util.Deque; 사용은 큐와 상당히 유사하다. 삽입은 offer, 출력 후 삭제는 poll, 출력만은 peek 이고, 바로 뒤에다가 앞에서 할 때는 First를 뒤에서 할 때는 Last를 붙여주면 된다. 예를들면 pollFirst(), pollLast() 처럼 해주면 된다. 아래는 사용 예시의 전체코드이다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.ArrayDeq

자바 중복없는 순열 출력하기 [내부링크]

중복없는 순열을 출력하는 알고리즘이다. 두 수 m과 n이 주어질 때 1부터 m까지의 수 중 n개를 뽑을 수 있는 경우의 수를 따지는 것이다. 예를들면 3 1 일 때는 1, 2, 3이고 4 2 일 때는 1 2, 1 3, 1 4, 2 1, 2 3, ..., 4 3 이 된다. 이는 아래처럼 재귀적으로 구현해야 한다. public static void solve(int pos) { if (pos == n) { for (int i = 0; i < n; i++) System.out.print(arr[i] + " "); System.out.println(); return; } else { for (int i = 0; i < m; i++) if (visit[i] == 0) { arr[pos] = i + 1; visit[i] = 1; solve(pos + 1); arr[pos] = 0; visit[i] = 0; } } } m과 n, 출력할 배열 arr과 방문여부인 visit은 모두 전역으로 선언했다

n-여왕말 문제 풀이, 되추적 알고리즘 [내부링크]

되추적은 노드들을 쭉 구해나가다가 다음 노드가 유망하지 않다고 판단되면 바로 이전의 노드로 돌아오고 다음의 경우를 따지는 알고리즘이다. n-여왕말은 숫자 n이 주어질 때 n X n 의 체스판에서 한 줄에 하나씩 퀸을 놓는다고 했을때 모든 퀸이 서로를 공격할 수 없는 위치에 놓일 수 있는 경우의 수를 구하는 문제이다. 참고로 퀸은 가로 혹은 세로 혹은 대각선으로 움직일 수가 있다. 아래가 전체 코드이다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; public class Main { public static int N, i, j; public static int ans = 0; public static int[] col; public static v

백준 스도쿠 백트래킹 알고리즘 [내부링크]

백트래킹을 이용한 스도쿠 풀이이다. 9x9 배열에서 빈 칸이 0으로 된 스도쿠가 입력으로 주어진다. 가능한 해결 방법 하나만 찾으면 된다. 0자리에 가능한 숫자를 하나씩 dfs 식으로 넣어주면 된다. 하나라도 찾으면 출력하고 프로그램을 종료하도록 한다. 쭉 나가다가 만약 불가능한 경우가 나오면 그 경우는 종료하고, 0에 가능한 숫자를 넣을 때 다른 가능한 수를 넣어주면 된다. 아래가 전체 코드이다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main { public static int[][] arr; public static int zero = 1; public

백준 곱셈, 분할정복 알고리즘 [내부링크]

A를 B번 곱한 것을 C로 나눈 나머지를 구하는 문제이다. A, B, C의 숫자가 0부터 int의 최댓값 사이기 때문에, 분할정복으로 해결해야 한다. 이는 다음의 수식을 바탕으로 해결해야 한다. 아래가 전체코드이다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new Buffered

분할정복으로 이항계수 구하기, 페르마의 소정리 [내부링크]

페르마의 소정리 : https://ko.wikipedia.org/wiki/%ED%8E%98%EB%A5%B4%EB%A7%88%EC%9D%98_%EC%86%8C%EC%A0%95%EB%A6%AC 페르마의 소정리 - 위키백과, 우리 모두의 백과사전 11월 9일 서울 금천구에서 위키컨퍼런스 서울 2019 후속 오프라인 토론회 가 열립니다. 제2회 위키탐방 참가 신청이 11월 16일까지 진행됩니다. 오버워치 에디터톤 이 11월 16일 서울에서 열립니다. [ 숨기기 ] 페르마의 소정리 수론 에서, 페르마 소정리 (Fermat小定理, 영어 : Fermat’s little theorem )는 어떤 수가 소수 일 간단한 필요 조건 에 대한 정리이다. 추상적으로, 소수 크기의 유한체 위의 프로베니우스 사상 이 항등 함수 임을 의미한다. 정의 [ 편집 ] {\displaystyle p} 가... ko.wikipedia.org 페르마의 소정리에 따르면 p가 소수이고 a가 정수일 때 아래가 성립한다. 그리고

피보나치 수 주기, 피사노 주기(Pisano Period) [내부링크]

피보나치수를 어떠한 모듈러로 나누면 항상 같은 수가 나오는 일정한 주기가 나오게 된다. 예를들어 피보나치 수는 다음과 같이 진행된다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 이를 모듈러 3으로 나눈 나머지를 나열하면 아래와 같다. 0, 1, 1, 2, 0, 2, 2, 1, 0, 1, 1, 2, 0, 2, 2, 1, 0, 1 /로 주기를 구분해보면 0, 1, 1, 2, 0, 2, 2, 1 / 0, 1, 1, 2, 0, 2, 2, 1 / 0, 1 즉 8의 주기를 가진다. 모듈러의 수에 따라 주기를 구하는 식이 있다. 모듈러가 10^k (k > 2) 주기는 15 * 10^(k - 1) 이다. 이를 유도하는 식은 아래 위키백과에 설명되어 있다. https://en.wikipedia.org/wiki/Pisano_period Pisano period - Wikipedia Pisano period From W

백준 히스토그램에서 가장 큰 직사각형, 분할정복 알고리즘 with Java [내부링크]

백준 분할정복 문제이다. 직사각형의 수와 여러 직사각형의 높이가 주어진다. 7, 2, 1, 4, 5, 1, 3, 3 이 직사각형들로 만들어진 히스토그램에서 가장 큰 직사각형을 찾는 문제이다. https://www.acmicpc.net/problem/6549 6549번: 히스토그램에서 가장 큰 직사각형 6549번 제출 맞은 사람 숏코딩 풀이 풀이 작성 풀이 요청 재채점/수정 채점 현황 강의 히스토그램에서 가장 큰 직사각형 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 14090 3456 2209 25.350% 문제 히스토그램은 직사각형 여러 개가 아래쪽으로 정렬되어 있는 도형이다. 각 직사각형은 같은 너비를 가지고 있지만, 높이는 서로 다를 수도 있다. 예를 들어, 왼쪽 그림은 높이가 2, 1, 4, 5, 1, 3, 3이고 너비가 1인 직사각형으로 이루어진 히스토그램이다. 히스토그램에서 가장 넓이가 큰... www.acmicpc.net 이는 분할정복으로 문

소스트리 브랜치 만들어서 사용하기 [내부링크]

github을 쉽게 사용할 수 있는 소스트리에 대한 사용법을 설명하고자 한다. 일단 기본적으로 소스트리가 설치가 되어 있어야 한다. 먼저 github과 소스트리를 연동해보자. 아래 탭에서 +를 누르면 새로운 탭이 나온다. 여기서 Clone을 선택한다. 그러면 아래의 창이 나온다. 소스 경로에는 github의 url을 넣어 주면 된다. 목적지 경로는 탐색을 눌러서 컴퓨터 내에 원하는 폴더를 지정해주면 된다. 이를 로컬저장소라고 한다. url은 아래에서 보이는 것을 복사하면 된다. 이러면 github과 소스트리를 연동하는 것은 끝난다. 다음은 브랜치 생성이다. 생성된 탭의 내용을 보면 다음과 같이 되어 있다. 커밋 / Pull / Push / 패치 / 브런치 / 병합 .. 등등 다음으로 브랜치를 만들어보려고 한다. 브랜치는 번역하면 가지라는 뜻인데, 하나의 기둥에서 어떤 가지를 만들어내면 그 가지에서 어떠한 일을 하든 기둥에는 일단 반영이 안된다고 생각하면 된다. 나중에 이를 반영하면

나블로거야 이벤트, 네이버페이 포인트 받자~ [내부링크]

저는 컴퓨터공학을 전공 중인 학부생으로서 관련 전공 지식을 블로그에 저장하는 블로거입니다. 이처럼 블로그 소개를 하고 #나블로거야 태그만 탈아도 네이버 페이를 준다길 래 이 이벤트를 위해 글을 씁니다. 여러분도 하세요~

백준2261 두 점사이의 최소 거리를 찾는 알고리즘 [내부링크]

백준2261 문제로 좌표평면에 여러 점들이 주어졌을 때, 어떠한 두 점 사이의 최소 거리를 찾는 알고리즘이다. 아래는 전체코드이다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static int n, x, y, min = Integer.MAX_VALUE; public static Point[] points; public static boolean[][] table = new boolean[20002][20002]; public static boolean[] X = new boolean[20002

컴퓨터 비전이란? [내부링크]

컴퓨터 비전은 기계의 시각에 대한 연구를 하는 분야이다. 인접한 학문으로 영상 처리, 컴퓨터 그래픽스, 패턴 인식 등이 있고 서로 협력하여 시스템을 만들어낸다. 응용분야로는 일상생활에서 스마트폰으로 와인병을 인식하거나 사용자의 동작을 인식하는 게임기 등이 있다. 일상생활 외에 자율주행, 수술용 로봇, 화성 탐사선, 과일 채집, 군사용 로봇 등 다양한 분야에 활용되고 있다. 사람의 시각은 빠르고 매우 강건하지만 컴퓨터로 사람 수준을 달성하는 것은 어려운 일이다. 컴퓨터 비전의 두 가지 목표가 있는데, 하나는 사람의 시각에 맞먹는 인공 시각을 만드는 것이고 다른 하나는 한정된 범위에서 특정한 임무를 달성하는 인공 시각을 만드는 것이다. 첫 번째 목표는 과학적 접근으로 사람 시각의 원리를 컴퓨터로 모방하는 것으로 뇌 과학이 주요 관심사이며 인공 지능이 필수로 들어간다. 두 번째 목표는 공학적 접근으로 사람보다 정밀한 측정이 가능한 컴퓨터의 특성을 이용한 것으로 현재 응용 현장에서 많이 쓰

영상 처리란? [내부링크]

영상 처리는 주어진 목적을 달성하기 위해 원래 영상을 새로운 영상으로 변환하는 컴퓨티 비전의 전처리 과정이다. 1920년 디지털 영상의 전송이 가능해지면서 미디어 산업에 혁신이 일어났다. 한 세기가 지난 현재 모바일 폰으로 고해상도 사진을 찍어 전송하거나 고품질 동영상 실시간 방송도 가능해지면서 영상 처리와 컴퓨터 비전이 주목받고 있다. 사람의 눈과 카메라는 비슷한 구조를 가진다. 카메라로 획득한 디지털 영상은 좌표계로 나타낼 수 있으며 한 점을 화소, 영상의 크기를 해상도라 한다. 영상의 명암값이 나타난 빈도수를 히스토그램으로 나타낼 수 있다. 히스토그램을 이용해 영상의 특성을 파악할 수 있다. 이러한 히스토그램을 평활화하여 영상의 품질을 개선하거나 물체의 모양은 무시하고 컬러 분포만으르 검출하여 물체를 판별할 수도 있다. 이러한 검출 방법을 히스토그램 역투영이라고 한다. 역투영을 이용하여 얼굴 검출을 할 수 있다. 다만 비슷한 색 분포를 갖는 다른 물체 구별을 못하고, 검출 대상

업력 뜻 [내부링크]

업력 뜻 창업 기업에 대해 조사를 하다가 업력이라는 단어가 나왔다. (2018년 창업기업실태조사_보고서 중에서) 업력이라는 단어를 쓸 때 업종이라는 말을 같이 많이 쓰던데, 업종은 들어본 말이라 직업의 분야정도로 해석이 가능하다. 근데 업력은 몰라서 사전에서 찾아봤다. 이는 불교에서 쓰이는 용어지, 내가 알고 싶은 단어가 아니다. (업력을 모르는데 과보랑 업인은 또 뭘까요ㅠ) 아무튼 사전에 없는 이말은 과연 표준어인가? 계속 찾아보던 중 온라인 국립국어원에서 다음의 글을 보았다. https://www.korean.go.kr/front/onlineQna/onlineQnaView.do?mn_id=216&qna_seq=169177&pageIndex=1 온라인가나다 상세보기 | 국립국어원 축소 확대 온라인가나다 상세보기 業歷(업력)의 어원 유사어 여부 확인요청 작성자 이정* 등록일 2019. 8. 26. 조회수 42 業歷 업력 회사경력 연차수를 의미할때 쓰는 비지니스용어 현재 사전에 없는

파이썬 정규식 사용 예 및 xml [내부링크]

휴대폰 번호 010-xxxx-xxxx에서 뒤의 네 자리를 ####으로 바꾸는 것이다. 정규식을 이용하지 않으면 아래처럼 작성가능하다. data = """ park 010-9999-9988 kim 010-9909-7789 lee 010-8789-7768 """ result = [] for line in data.split("\n"): word_result = [] for word in line.split(" "): if len(word) == 13 and word[:3].isdigit() and word[4:8].isdigit() and word[9:]: word = word[:3] + "-" + word[4:8] + "-" + "####" word_result.append(word) result.append(" ".join(word_result)) print("\n".join(result)) 하지만 정규식을 이용하면 아래처럼 간단해진다. import re data = """ park

opencv 텍스트 출력 예제 코드 [내부링크]

#include "opencv2/highgui/highgui.hpp" #include "opencv2/opencv.hpp" using namespace cv; int main() { Mat img; img = imread("C:/opencv-4.2.0/image/house.jpg"); putText(img, "Hello, house!", Point(60, 50), FONT_HERSHEY_SIMPLEX, 1, Scalar(255, 0, 0), 1, 4, false); rectangle(img, Rect(30, 25, 350, 30), Scalar(0, 0, 255)); namedWindow("Hello"); imshow("Hello", img); waitKey(5000); return 0; } opencv에서 이미지를 띄어놓고 텍스트를 출력하는 간단한 코드이다. 띄우는 이미지로 house.jpg를 준비하였다. putText를 이용해 글자를 출력한다. 매개변수는 순서대로 영상, 텍스트,

OpenCV 히스토그램 코드 [내부링크]

히스토그램은 영상에서 명암이 나타나는 빈도수이다. 아래는 히스토그램을 그리는 코드이다. #include <opencv2/highgui/highgui.hpp> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> using namespace std; using namespace cv; void calc_histogram_gray(Mat&, double[]); Mat draw_histogram_gray(double[]); int main() { double hist[256]; Mat gray; Mat img = imread("C:/opencv-4.2.0/image/house.jpg"); cvtColor(img, gray, COLOR_BGR2GRAY); namedWindow("입력 영상"); imshow("입력 영상", gray); calc_histogram_gray(gray,

opencv 영상 평활화, 이진화, 히스토그램 코드 [내부링크]

영상을 평활화, 이진화 하는 것과 히스토그램을 그리는 것을 해보겠다. 아래가 코드이다. 사용방법을 설명하면 e를 누르면 평활화된 영상이, b를 누르면 이진화된 영상이, h를 누르면 히스토그램이 나오게 된다. 평활화와 이진화를 설명하면, 평활화는 영상의 화질을 개선하기 위해 하는 것인데 영상의 특성에 따라 화질이 더 안 좋아 질 수도 있다. 이진화는 영상을 흑과 백으로만 나타내는 것이다. 코드 아래에 실행결과를 첨부할테니 확인해 보면 좋을 것이다. #include <opencv2/highgui/highgui.hpp> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> using namespace std; using namespace cv; int main() { Mat img = imread("C:/opencv-4.2.0/image/house.jpg"); Mat gray,

opencv 이진화 트랙바를 이용하여 임계값 조절하기 [내부링크]

이번에는 영상을 이진화 하는데 임계값을 트랙바로 조절하는 방법이다. 임계값에 따라 해당 화소가 흑인지 백인지 조절되는데, 그 임계값을 직접 조절하는 것이다. 아래는 예시코드이다. #include <opencv2/highgui/highgui.hpp> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> using namespace std; using namespace cv; void thresholdByTrackbar(int, void*); int pos = 128; int main() { Mat f = imread("C:/opencv-4.2.0/image/house.jpg"); if (f.empty()) { cout << "ERR:" << endl; getchar(); exit(0); } cvtColor(f, f, COLOR_BGR2GRAY); namedWindow("이진화

opencv 디졸브 코드, 트랙바 디졸브 [내부링크]

디졸브는 화면이 전환될 때 서서히 변하도록 주는 효과이다. 예를들어 집(house.jpg)과 수족관(aqua.jpg) 두 가지 사진이 있다고 하자. 왼쪽의 사진에서 오른쪽 사진으로 서서히 화면이 전환되는 것이 디졸브이다. 아래는 그 중간 과정이다. 아래가 코드이다. #include <opencv2/highgui/highgui.hpp> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; #define DissolveLevel 100 #define Duration 10000 int main() { Mat f1 = imread("C:/opencv-4.2.0/image/house.jpg"); Mat f2 = imread("C:/opencv-4.2.0/image/water.jpg"); assert(!f1.empty() && !f2.empty() && f1.size() == f2.s

opencv 비디오 영상 재생하기 [내부링크]

앞에서는 움직이지 않는 이미지에 대한 처리를 많이 해보았다. 이번에는 opencv로 움직이는 동영상을 재생해보겠다. 코드는 아래와 같다. #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; int main() { VideoCapture v("C:/opencv-4.2.0/image/sample.wmv"); assert(v.isOpened()); int delay = (int)(1000 / v.get(CAP_PROP_FPS)); namedWindow("video play"); Mat frame; while (true) { v.read(frame); if (frame.empty()) break; imshow("video play", frame); char c = waitKey(delay); if (c == 27) break; } return 0; } 영상을 저장할 변수로 Vid

opencv 에지검출, 소벨과 캐니 에지 마우스 지정 [내부링크]

opencv로 이미지의 에지검출을 해보겠다. 여러 방법이 있는데, 여기서는 소벨과 케니 알고리즘으로 에지검출을 해보았다. 둘은 미분을 이용해 에지를 검출하지만 알고리즘적인 차이가 있어서 결과물이 약간 다르게 나온다. 결과를 먼저 보겠다. 원본 캐니 소벨 캐니 검출의 선이 좀 더 깔끔하게 나오는 것을 볼 수 있다. 아래는 코드이다. #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; int main() { Mat f = imread("C:/opencv-4.2.0/image/house.jpg"); assert(!f.empty()); Mat gray, edge; cvtColor(f, gray, COLOR_BGR2GRAY); blur(gray, gray, Size(3, 3)); Canny(gray, edge,

opencv 영상 효과 주기, 엠보싱 수채화 컬러 스케칭 [내부링크]

opencv를 이용해서 영상의 다양한 스타일링 효과를 주는 방법을 알아보자. 엠보싱, 수채화, 스케치 효과인데 수채화와 스케치는 이름에서 쉽게 유추할 수 있는 효과이고, 엠보싱은 표면에 무늬를 찍어낸 것 같은 효과를 주는건데 예시를 보면 어떤 느낌인지 알 수 있다. 원래 영상 엠보싱 수채화 스케치 트랙바를 이용해서 스케치의 농도를 조정할 수 있도록 하였다. 코드를 살펴보겠다. 메인에서 switch를 이용해서 원하는 스타일링을 선택할 수 있도록 하였다. #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> using namespace cv; using namespace std; void emboss(Mat&), sketch(Mat&), sketchByTrackbar(Mat&), waterColor(Mat&)

opencv 물체 인식 SIFT 코드 [내부링크]

SIFT를 이용해서 물체를 검출하고 매칭하는 코드이다. 먼저 SIFT 키포인트를 검출한다. SIFT를 사용하려면 opencv contrib에 있는 extra 모듈을 이용해야 한다. 그래서 cmake를 이용해서 그 과정을 진행했는데, 아래의 사이트를 참고하였다. https://webnautes.tistory.com/1036 Visual Studio 2017용으로 OpenCV 4.0.1 빌드 하기 (opencv_contrib 포함) OpenCV's extra modules( opencv_contrib )을 포함하여 OpenCV 4.0.1 라이브러리를 Visual Studio 2017에서 사용하기 위해 컴파일한 과정을 다루고 있습니다. 윈도우즈용으로 미리 빌드된 OpenCV 라이브러리에는 e.. webnautes.tistory.com 검출 결과 아래처럼 나온다. 콘솔 창에도 값이 나오도록 하였다. 아래는 SIFT 검출 결과를 바탕으로 매칭을 하는 것이다. 그리고 인식된 것을 빨간 라인으로

opencv로 얼굴 및 눈 검출하고 추적하기 [내부링크]

얼굴을 검출해서 파란색 박스로 나타내는 코드이다. 눈은 빨간색 원으로 나타낸다. #include <opencv2/core/core.hpp> #include <opencv2/objdetect/objdetect.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; String face_cascade = "C:/img/haarcascade_frontalcatface.xml"; String eye_cascade = "C:/img/haarcascade_eye.xml"; CascadeClassifier face; CascadeClassifier eye; void FaceAndEyeDetect(Mat); int main() { Mat f = imread("C:/img/people.jpg"); assert(f.data); bool b1 = face.load(face_c

원랜디 솔 헬 클리어 팁~ [내부링크]

원랜디 솔 헬 여러 시도 끝에 성공했습니다.. 고수들이야 솔 신도 쉽게 깨지만 저는 이것도 쉽지 않았네요ㅠ 첫째로 처음 10라운드 라인사를 안하면서 스토리를 밀어야 해요. 요새는 흔함이 공격을 안해서 특별함을 빨리 뽑더라고요. 도박이 혹시라도 망하더라도 여길 잘 마무리 하는게 중요해요. 다음으로 중요한 건 스토리 입니다. 스토리 사를 막기 위해서 스토리에 좋은 걸 무조건 뽑아줘야 해요. 저는 아오키지 히든을 뽑았는데, 아래를 참고하세요. https://cafe.naver.com/clanopcr/685350 9.0 beta fix5 전설, 히든... 대한민국 모임의 시작, 네이버 카페 cafe.naver.com 스토리를 잘 마무리하면 조합입니다. 너무 늦으면 중간에 라인사를 하죠. 제 생각엔 적절한 초월 하나 불멸 하나를 섞고 스턴만 잘 맞춰주면 될 것 같아요. 물뎀 마뎀 이런것도 중요하지만 신 난이도보다는 그런 제약 사항이 적은 것 같아요. 잘 안된다면 조합 도우미를 켜서 보상으로

롤 나만의 상점 원리 분석(빅데이터) [내부링크]

롤 나만의 상점이 어떻게 만들어지는지 상세 분석한 보고서 입니다. 빅데이터에 대해서 배우면서 사례를 찾던 중 롤 나만의 상점에 어떤식으로 적용이 되는지 궁금하여 여기저기 많이 찾아보면서 작성했습니다. 참고자료에 적어둔 개발자의 이야기가 있는데, 그걸 바탕으로 제가 이해한대로 재해석한 것입니다. 따라서 잘못된 부분이 있을 수도 있습니다. 감사합니다. 주제 소개 1.1 사례 선정 배경 디지털 콘텐츠가 더욱 발전하면서 온라인 게임을 취미로 가지는 사람이 점차 증가하고 있다. 그에 따른 게임 회사들의 매출은 점차 증가하는 추세이고, 실제로 최근 3년간 전 세계적으로 디지털 게임과 대화형 매체에 대한 수익은 상향 그래프를 그리고 있다. (그림 1 참조) 여러 게임들이 계속해서 등장을 하고 있는 와중에 게임 회사들은 사용자를 만족시킬 수 있는 적절한 서비스를 제공해야할 필요가 있다. 그러기 위해서는 사용자들에게 획일화된 콘텐츠를 제공할 것이 아니라, 사용자가 게임에 몰입할 수 있도록 개인별로

롤토체스 1티어 달빛조합 운영 공략법 [내부링크]

빛 + 달로 좋은 성적을 낼 수 있는 롤토체스 조합을 알려드리겠습니다. 시너지는 다음과 같이 받게 됩니다. 아래가 주요 챔피언과 배치 및 아이템 상태입니다. 운영법을 간단히 알려드릴게요. 초반 첫 회전 초밥은 장갑이나 대검, 방템을 두른 잭스가 좋습니다. 없다면 대검, 곡궁 등을 가진 적절한 것을 뽑습니다. 지팡이만 아니면 웬만해서 괜찮습니다. 초반은 최대한 1코스트를 모아서 2성을 띄웁니다. 시너지를 맞추면 더 좋습니다. 예를들어 마오카이+아이번을 2성으로 띄우고 니코나 르블랑 배치해서 숲드루 시너지를 받을 수 있습니다. 그러면서 나서스와 레오나 그리고 잭스는 꾸준히 먹어줍니다. 나서스 레오나가 2성이 먼저 나온다면 훨씬 좋습니다. 파수꾼으로 버팁시다. 그리고 베인도 먹어줍니다. 그리고 리롤은 절대 하지 마시고, 1라운드가 끝나면 경험치를 한 번 올려서 최대한 남들에게 이겨야 합니다. 따라서 템을 미리 만들어서 껴줘도 좋습니다. 위의 사진에 있는 템을 만들어주면 됩니다. 초반부터

시스템 프로그래밍 myshell 구현 코드 [내부링크]

리눅스 환경에서 나만의 쉘을 만들어 보았다. 간단한 설명 후 전체 코드를 올리겠다. main() int main(void) { act.sa_handler = SIG_IGN; // 시그널을 수신했을 때 무시 sigaction(SIGINT, &act, NULL); sigaction(SIGQUIT, &act, NULL); while (userin(prompt) != EOF) { // 명령어 실행 act.sa_handler = SIG_IGN; sigaction(SIGINT, &act, NULL); sigaction(SIGQUIT, &act, NULL); if (procline() == -1) break; } return 0; } 메인에서 userin()을 이용해 입력을 받는다. userin()은 아래의 무한루프를 실행한다. userin() while (1) { if ((c = getchar()) == EOF) // 한 줄을 입력 받음 return EOF; if (count < MAXBUF)

데이터베이스 개념적 논리적 설계 예시 3가지(영화, 배송, 유튜브) [내부링크]

1. 영화 관련 데이터베이스 - 개념적 설계 - 논리적 설계 Actor(A_ID, Name, DOB) Movie(M_ID, Title, Year, Outline, Length, C_ID) Director(D_ID, Name, DOB) Company(C_ID, Name, Address) G_Genres(G_ID, G_Desc) Q_quotes(Q_ID, Q_Desc, M_ID) Acts(A_ID, M_ID, Role) can_Act(A_ID, D_ID) Direct(M_ID, D_ID) Quote(M_ID, Q_ID, Q_Num, A_ID) Genre(M_ID, G_ID) 영화와 영화의 장르, 제작사, 명대사, 감독, 배우에 대한 데이터베이스 설계입니다. 2. 배송 관련 데이터베이스 - 개념적 설계 - 논리적 설계 Location(L_ID, L_Desc) Package(P_ID, P_Desc) Customer(C_ID, Name, Phone, Address) History(P_ID,

OpenCV visual studio에서 extra module 설치하기 [내부링크]

아래의 동영상을 보고 그대로 따라하면 extra module이 포함된 opencv를 설치할 수 있다. 간단하게 설명하면 oepncv와 oepncv_contrib를 github에서 다운 받은 뒤, cmake로 이를 잘 합쳐서 visual studio에 적용하는 것이다. eigen은 opencv 연산 속도를 빠르게 하기 위해 쓰는 것인데 cmake로 설정을 하면서 같이 적용하면 된다. opencv extra module은 opencv 정식 버전에는 포함되지 않은 모듈들이 들어있는데 sift 알고리즘 처럼 유용한 것들이 있기 때문에 심화된 opencv를 사용하기 위해서는 필요하다. https://youtu.be/VgORxv50LVY 다운받아야할 것들 목록이다. opencv : https://github.com/opencv/opencv opencv/opencv Open Source Computer Vision Library. Contribute to opencv/opencv developm

영화 시간을 달리는 소녀(The Girl Who Leapt Through Time. 2017) 리뷰 [내부링크]

오랜만에 애니메이션 영화가 보고 싶어서 옛날에 안 봤던 것 중 재밌는 게 뭐가 있을까 하다가 언젠가 한 번 들어본 "시간을 달리는 소녀"라는 영화를 찾아보게 되었습니다. 해당 작품은 원작인 책이 여러 번 리메이크 되어 드라마나 영화로 많이 등장했는데요. 제가 본 것은 국내에서 2007년 개봉한 애니메이션 영화입니다. ※영화를 보지 않은 분들에게는 스포일러가 될 수 있으니 주의 부탁드립니다 시간을 달리는 소녀(The Girl Who Leapt Through Time. 2017) 기다려, 지금 너에게 달려갈게.. 영화의 주인공인 콘노 마코토는 17세 여학생이다. 그녀는 내리막길에서 자전거를 타고 내려가던 도중 브레이크가 고장 난 것을 보고 크게 당황한다. 때마침 내리막길의 끝인 철도에서는 열차가 들어오는 중이었고, 마코토는 곤두박질치면서 자전거에서 떨어져 나가 죽을 위기에 처하는데.. 주인공 콘노 마코토 순간적으로 마코토는 타임리프를 경험하게 된다. 그리고 자신이 죽지 않고 살아있다는

Visual Studio 21017 윈도우 C 소켓 프로그래밍 설정 [내부링크]

윈도우 소켓프로그래밍을 하기 위해서 VisualStudio2017에서 C언어로 소켓 프로그래밍을 하기 위한 설정을 소개한다. 1. 비주얼 스튜디오를 실행한다. 2. 파일 - 새로 만들기 - 프로젝트 (새 프로젝트를 만드는 것이다) 3. 여기서 Windows 데스크톱 마법사로 프로젝트를 만들어야 한다. Windows 콘솔 응용 프로그램도 되는 것 같다. 어쨌든 콘솔 화면에서 진행해야 한다. 4. 프로젝트 - [프로젝트명]속성 - 링커 - 입력에서 ws2_32.lib; 을 추가해 준다. 윈속 관련 라이브러리이다. 이게 싫으면 코드 맨 위에 이것을 추가해주면 된다. #pragma comment(lib, "ws2_32") 이렇게 하면 기본적인 설정은 끝난 것이다. VisualStudio를 2개 켠다음 하나는 서버 사이드 코드를 작성해서 컴파일 하고 다른 하나는 클라이언트 사이드 코드를 작성해서 컴파일 하면 된다. 코드에 따라 다르지만 대충 아래처럼 실행된다. 추가적으로 여러 오류가 발생할

파이썬 opencv 사용하는 방법 (pycharm 파이참) Could not find a version 오류 해결 [내부링크]

파이참에서 opencv를 설치하고 사용하는 방법에 대한 소개이다. 원하는 파이썬 버전과 파이참을 먼저 설치한다. 파이썬 : https://www.python.org/downloads/ Download Python The official home of the Python Programming Language www.python.org 파이참 : https://www.jetbrains.com/ko-kr/pycharm/ PyCharm: JetBrains가 만든 전문 개발자용 Python IDE 지능적인 코드 완성, 즉각적인 오류 검사, 빠른 수정 등 다양한 기능을 갖춘 Python 및 Django IDE입니다. www.jetbrains.com 환경변수 설정 잘해서 설치를 완료하고 아래처럼 테스트 해 볼 수 있다. 윈도우 명령 프롬프트(cmd)를 키고 python을 입력해보자. 자신이 설치한 버전이 잘 나오면 잘 한 것이다. 다음으로 opencv를 설치할 것이다. 아래 명령어를 입력하면 설

Docker 설치 오류 : “This computer doesn’t have VT-X/AMD-v enabled." 해결 방법 [내부링크]

Docker를 설치하는데 “This computer doesn’t have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory” 같은 오류가 났을 때 해결하는 방법이다. 1. 윈도우 검색창에서 PowerShell을 검색한다. 2. PowerShell을 관리자 모드로 실행한다. 3. 다음의 명령을 실행한다. docker-machine create default --virtualbox-no-vtx-check 4. 뭔가 다운 받을 것이다. 기다린다. 시간이 좀 필요하다. 이렇게 하면 해결된다! 다른 사람들은 가상화 설정을 안 했거나 코어 격리 설정의 문제였는데 나는 그런 건 다 괜찮았다. 그래서 위의 과정을 진행하니 잘 된다. 참고한 사이트이다. https://forums.docker.com/t/error-with-pre-create-check-this-computer-doesnt-have-vt-x-amd-v-enabled-enabling

알고리즘 시간복잡도 분석 연습문제 풀이 [내부링크]

알고리즘 (FOUNDATION OF ALGORITHMS USING JAVA PSEUDOCODE) 책의 연습문제 중 일부입니다. 다음 중첩루프의 시간복잡도 T(n)은? 간략하게 하기 위해서, n이 2의 거듭제곱이라고 가정해도 좋다. 즉, 어떤 양의 정수 k에 대해서, n = 2^k이다. for( I = 1; I <= n; i++){ j = n; while(j >= 1){ <body of the while loop> // Needs θ(1) ⌊j⌋ = ⌊ j/2 ⌋<- 단위연산 } } n=2이고, i=1일 때, 단위연산 2번 수행. i=2일 때, 단위연산 2번 수행. n=4이고, i=1일 때, 단위연산 3번 수행. i=2일 때, 단위연산 3번 수행. i=3일 때, 단위연산 3번 수행. i=4일 때, 단위연산 3번 수행. n=8일 때, 단위연산 8*4=32번 수행. n=16일 때, 단위연산 16*5=80번 수행. 즉 n = 2^k라고 할 때, i루프는 n번 수행하고, 수행될 때마다 단위연

컴퓨터 비전 책 후기, 오일석 한빛아카데미 [내부링크]

한빛아카데미에서 출판한 컴퓨터 비전에 관한 책에 대한 후기이다. 저자는 오일석이다. 컴퓨터 비전 저자 오일석 출판 한빛아카데미 발매 2014.07.30. 컴퓨터 비전의 소개부터 영상처리, 에지검출, 특징검출, 영상분할, 매칭, 기계 학습, 인식, 모션, 3차원 비전, 장면 이해 등 컴퓨터 비전에서 다룰법한 내용들을 설명하고 있다. 자세한 사항은 목차를 살펴보면 좋다. 필자 같은 경우는 컴퓨터비전 입문서로 이 책을 선택했는데 단도직입적으로 입문자에게 적절한 책은 아니라고 생각된다. 주로 수학적인 알고리즘에 대한 설명이 잘 나와 있고 코드도 따라서 타이핑 해볼 수 있는게 아니라 의사코드처럼 작성되어 있다. 이론적인 부분에 대해 자세히 알고 싶다면 추천할만 하다. 다만 직접 따라해보면서 하기에는 무리가 있고 맨 뒤에 해볼 수 있는 부분이 있긴 하지만 상당히 적은 양이다. 책 디자인도 깔끔해서 몰랐지만 14년도에 첫 출판된 책이었다. openCV가 꽤 많이 발전되어 있어 옛날 책 보다는 최

파이썬 빠른 입력 sys.stdin.readline [내부링크]

파이썬의 빠른 입력을 위해서는 sys.stdin.readline()를 사용해야 한다. 먼저 보통의 파이썬 입출력은 다음과 같이 input()을 이용한다. n = input() 숫자 입력을 받으려면 int를 붙이면 된다. n = input() n = int(n) 여러 개의 숫자를 입력 받고 싶으면 split()을 붙여주면 된다. x, y = input().split() x = int(x) y = int(y) 다만 빠른 입력을 원하는 경우 sys를 import하고 sys.stdin.readline()를 이용해 입력을 받으면 된다. 그리고 rsplit()을 이용해서 여러 개의 입력을 받을 수도 있다. x, y = sys.stdin.readline().rsplit() 아래는 테스트 케이스만큼 입력을 받아 합을 출력하는 예시이다. import sys n = input() n = int(n) for i in range(0, n): x, y = sys.stdin.readline().rsplit(

파이썬 int배열을 한 번에 입력 받는 map 함수 [내부링크]

파이썬 리스트에서 for문을 이용하지 않고 한 번에 배열 입력을 받으려면 아래와 같이 하면 된다. num_list = list(map(int, input().split())) 1 2 3 4 5 처럼 입력을 넣으면 num_list에 순서대로 저장이 된다. 아래는 n 크기의 배열에서 x보다 작은 수를 찾는 코드 예시이다. n, x = input().split() n = int(n) x = int(x) num_list = list(map(int, input().split())) for i in num_list: if i < x: print(i, end=' ') 모든 것이 개행과 같이 이루어 지고 있다. 출력도 end=' '처럼 해주면 하나씩 띄어서 출력이 되는 것이다.

swift 버튼 만들어서 화면 이동하기 코드 예시 [내부링크]

프로젝트를 생성한 뒤에 1. Navigation Controller 를 놓음, 연결된 View Controller는 일단 삭제 2. View Controller를 만들고 Navigation Controller 위에 파란색 네모를 컨트롤 누르고 끌어다 놓으면 연결이 됨 3. 해당 화면에 버튼을 만들고 버튼도 컨트롤 누르고 클릭해서 연결된 클래스에 놓아줌, 클래스를 연결하고 Assistant 항목 눌러주면 연결된 클래스 코드가 나옴 4. 새로운 View Controller 만들고 그거에 넣어줄 새로운 storyboard도 만들어줌 그리고 연결 5. 코드는 다음과 같이 해주면 됨 6. 그리고 Navigation Controller에 연결된 루트 View Controller에 버튼을 만들어 주고 아래처럼 코드를 작성해주면 끝 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.vie

swift WebView 웹뷰 예제 ,Could not instantiate class named WKWebView because no class named WKWe [내부링크]

XCode Swift에서 WebView를 이용해 인터넷 창을 띄우는 실습이다. 프로젝트를 생성한 다음 WebView object를 추가한다. 검은색 투평한 창이 생기는데 화면에 맞게 늘려주고 위, 아래, 양 옆에 제약조건을 추가해 준다. 그리고 클래스를 연결하고 컨트롤을 누르고 웹뷰를 클래스에 넣어준다. 코드는 아래와 같다. import UIKit import WebKit class ViewController: UIViewController { @IBOutlet weak var WebviewMain: WKWebView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let urlString = "https://www.google.com" if let url = URL(string: urlString) { let urlReq = URLRequest(ur

swift 테이블 뷰 만들기 예제 코드 [내부링크]

항목들을 간단하게 나타낼 수 있는 테이블 뷰를 만드는 코드 예제입니다. 전화번호부 같은 리스트를 떠올리면 될 것 같아요. 아래는 코드입니다. import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 10 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = UITableViewCell.init(style: .default, reuseIdentifier: "TableCellType1") cell.textLabel?.text = "\(indexPath.row)" re

swift UITableViewCell 예제코드 [내부링크]

많이 사용하는 테이블 뷰라고 한다. import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { @IBOutlet weak var TableView: UITableView! func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 10 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "Type1", for: indexPath) as! Type1 cell.TextLabel.text = "\(indexPath.row)" return cell

swift로 뉴스앱 만들기 (tableViewCell, news api) [내부링크]

일단 실행화면을 먼저 보면 다음과 같다. 왼쪽이 시작화면이다. 뉴스 목록들이 나오고 기사 제목이 있다. 클릭하면 오른쪽처럼 이미지와 뉴스 내용이 나온다. 해당 뉴스는 news api라는 사이트에서 가져온건데 api 주소를 무료로 제공해준다. 많은 기사를 쓰려면 유료이지만 학습용으로는 충분하다. https://newsapi.org News API - A JSON API for live news and blog articles Search worldwide news articles and headlines from all over the web in real-time with our free News API. newsapi.org 회원가입하고 api주소를 복사해서 쓰자. 보는 것처럼 한국어 기사도 있다. 다음은 인터페이스이다. 네비게이터를 만들고 루트에서 기사제목 테이블로 연결, 테이블 뷰에서 기사 내용 테이블로 세그웨이 연결해주면 된다. 기사내용은 ViewController.swift

C++ 콘솔 실행 명령어, 다른 cpp 컴파일 [내부링크]

cmd창에서만 실행할 수 있는 명령어를 C++ 스크립트에서 실행하는 코드이다. 생각보다 간단하다. #include <array> #include <iostream> #include "main.h" std::string exec(const char* cmd) { std::array<char, 128> buffer; std::string result; std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose); if (!pipe) { throw std::runtime_error("popen() failed!"); } while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) { result += buffer.data(); } return result; } 위 함수를 이용하면 된다. 함수에 인자로 명령어를 넘겨주고 출력하면 끝이다. 예를들면 아래와 같다. int

C++ extern 변수로 다른 파일의 변수 가져오기 [내부링크]

만약 프로그래밍 초보자에게 값이 7이고 이름이 tmp인 int 형 변수를 코드창에서 작성하는 문제를 낸다고 해보자. 그럼 아래처럼 작성할 것이다. int tmp = 7; 그럼 변수를 잘 선언하고 초기화 했는지 평가하는 코드를 작성할 수 있겠는가? extern 을 이용하면 가능하다. main.cpp에서 초보자가 변수를 초기화 했다고 하자. 그러면 main.h에서 아래처럼 해준다. #ifndef main_h #define main_h extern int tmp; #endif extern int tmp; 이거 하나면 된다. 그리고 이것을 채점하기 위한 grader.cpp 에서 아래처럼 해주면 된다. int main() { if(tmp == 7) std::cout << "Right Number!" << std::endl; return 0; } 만약 변수를 맞게 초기화 했다면 아래처럼 출력될 것이다!

Selenuum 으로 javascript click event 속성 가져오기 [내부링크]

일단 셀레니움 연견을 아래처럼 할 수 있다. with webdriver.Firefox() as driver: wait = WebDriverWait(driver, 10) driver.get("http://localhost:8081") 그리고 일반적으로 html 속성을 가져올 때 아래처럼 find_element_by_path를 하고 태그 위치를 넣어준다. element = driver.find_element_by_xpath("/html/body/button") 그리고 get_attribute("class") 같은걸 해주면 해당 태그가 가진 클래스를 추출할 수 있다. 그런데 만약 html이 아닌 javascript에서 클릭되면 생기는 속성을 셀레니움으로 가져오려 한다면 아래처럼 해보자. action.click(element).perform() head = driver.find_element_by_xpath("/html/body/h1") style = head.get_attribute("s

SK infosec, 안랩, 이스트시큐리티 기업의 교육체계 정리 [내부링크]

관심있는 컴퓨터 보안 기업인 SK infosec, 안랩, 이스트시큐리티의 기업 교육체계 정리에 대한 내용입니다. 기간이 한 일년정도 지난 내용이어서 바뀌었을 수도 있으며 내용의 출처는 각 회사 홈페이지입니다. SK infosec 미션 1. Platform for New ICT : 인공지능, 빅데이터, 사물인터넷, 클라우드 등 New ICT 영역의 지식과 기술력 확보 2. Platform for Eco System : 이기종 데이터와 기술의 융합, 시너지를 위한 공유 및 협력, 신뢰 기반의 융∙복합 보안 생태계 조성 3. Platform for Shared Infra : 위협정보, 해킹방어기술, 플랫폼 기반기술 공개를 통해 보안 그 자체로써의 사회적 가치 창출 비전 “ Connect everything, Secure everything ” SK인포섹은 산업 전 영역의 디지털화(Digitalization)에 발맞춰 위협과 위험으로부터 사이버 자산과 물리적 자산 모두를 보호하고, 융복합

검색 및 피보나치 수열을 통한 알고리즘 효율성 비교하기(JAVA) [내부링크]

알고리즘 (FOUNDATION OF ALGORITHMS USING JAVA PSEUDOCODE) 책의 문제 중 일부입니다. 목적 1. 순차검색, 이진검색, 재귀적 이진검색에 대한 Java 프로그램을 작성하여 배열의 사이즈를 증가시키면서 실제 수행 시간 결과를 비교해본다. 2. 피보나치수열에 대한 재귀 알고리즘과 반복 알고리즘을 Java 프로그램으로 작성하여 역시 수행 시간을 비교하고 분석해본다. 3. 알고리즘의 예시인 검색과 피보나치수열을 통해 같은 기능을 하는 알고리즘이더라도 어떻게 작성하느냐에 따라서 효율이 다르다는 것을 파악한다. 순차검색 public static int sequentialSearch() { // 순차검색 int location = 0; // 배열 인덱스의 위치를 나타내는 변수 선언 while(location < num && s[location] != key ) // 배열의 인덱스의 위치가 최댓값을 넘지 않거나 값을 못 찾을 때까지 반복 location++; /

퀵소트(quicksort)는 얼마나 빠를까? 자바 퀵정렬 알고리즘 [내부링크]

퀵소트 코드입니다. 퀵소트는 pivotpoint라는 기준을 바탕으로 정렬을 합니다. 기준을 바탕으로 분할을 하는 partition 함수와 해당 함수를 호출하고 재귀로 다시도는 quickSort 함수 두 개를 이용하 퀵정렬을 합니다. 자세한 설명은 주석을 참고하세요. public static void quickSort(int low, int high) { //quicksort [Algorithm 2.6] //int pivotPoint = partition(int low, int high) int pivotpoint; // 퀵정렬의 기준으로 사용할 변수 if(high > low) { // 배열의 최대 인덱스가 최소 인덱스보다 클 때 pivotpoint = partition(low, high); // 기준으로 사용할 변수를 구하고 quickSort(low, pivotpoint - 1); // 기준을 제외하고 다시 퀵정렬 quickSort(pivotpoint + 1, high); } } p

동적프로그래밍의 예시 - 이항계수, 플로이드 알고리즘, 연쇄행렬곱셈 with JAVA [내부링크]

알고리즘 (FOUNDATION OF ALGORITHMS USING JAVA PSEUDOCODE) 책의 문제 중 일부입니다. · 서론 이번 실습의 내용은 동적 프로그래밍의 대표적인 예시들에 관한 것들입니다. 실습으로는 이항계수와 플로이드 알고리즘을 직접 코딩하는 것입니다. 연습문제로는 최적경로를 찾아가는 플로이드 알고리즘의 과정과 연쇄행렬곱셈에서 최적의 해를 구하는 과정을 직접 해봄으로써 알고리즘이 어떻게 동작하는지를 파악할 수 있습니다. · 본론 이항계수 알고리즘 public static int binomial1(int n, int k) { int i, j; // 반복문의 인덱스 int[][] B = new int[n + 1][k + 1]; // 이항계수를 담을 이차원 배열 for (i = 0; i <= n; i++) // n에 대한 반복 for (j = 0; j <= minimum(i, k); j++) // k에 대한 반복, k는 항상 n보다 작거나 같기 때문에 minimum을 활

자바(java) 탐욕적 알고리즘 예시 비교 - 다익스트라, 최소비용신장트리(프림, 크루스칼), 허프만 알고리즘 등 [내부링크]

· 서론 이번 과제는 무엇인가를 결정할 때마다 그 순간에 가장 최적이라고 생각되는 것을 선택함으로써 최종적인 해답에 도달하는 탐욕적 알고리즘에 관한 것입니다. 탐욕적 알고리즘 중 하나인 단일 출발점에서 최단경로를 구하는 다익스트라 알고리즘에 대해 실습을 했습니다. 다익스트라 알고리즘은 모든 정점을 대상으로 하는 플로이드 알고리즘과 달리 한 특정 정점에서 다른 모든 정점으로 가는 최단경로를 구하는 문제입니다. 구해진 답은 최소비용신장트리를 의미하기도 하는데 최소비용신장트리를 구하는 다른 방법인 프림 알고리즘과 크루스칼 알고리즘에 대한 문제를 풀었습니다. 그리고 다른 탐욕적 알고리즘으로 최적 이진 전치 코드를 구하는 허프만의 알고리즘과 마감시간과 이익을 가지고 스케줄을 짜는 알고리즘에 대한 문제도 풀었습니다. · 본론 다익스트라 알고리즘 public static Edge[] dijkstra(int n) { Edge[] f = new Edge[n*(n-1)/2]; int vnear = 0

xCode Hello SwiftUI, preview 맛보기 [내부링크]

출시된 지는 좀 지나긴 했다만,, swiftUI 로 아이폰 앱을 만들어보자. 먼저 그 유명한 프리뷰를 체험해보겠다. xCode 프로젝트를 만드는데 UI를 swiftUI로 설정해주면 된다. 프리뷰 설정을 해주자. 맥북이 작아서 프리뷰를 바텀에 두었더니 보기 좋았다. 기본 코드인데 Hello, World! 가 바로 보인다. 보이지 않으면 resume을 눌러줘야 한다. 단축키는 option + command + p 글자의 색을 바꾸면 바로 적용이 된다. 사실 안드로이드스튜디오에서는 당연한 일들이었던 것 같아서.. 이전에 swift를 해본적이 없어 엄청난 것을 크게 실감하지는 못하겠다.. 라이브러리를 드래그해서 코드창은 물론 뷰에도 추가할 수 있다. 단축키는 shift + command + l 물론 인스펙터도 그대로 사용 가능하다. 다만 뭔가 잘못된 문법이 발견되면 당연하지만 오류가 난다. Cannot preview in this file - [app name].app may have cr

N-여왕말 문제, 분기한정법 및 되추적 기술 직접 그려보기 [내부링크]

어떤 집하에서 어떤 기준을 만족하면서 그 집합에 속한 대상의 순서를 선택하는 문제를 푸는 데 사용하는 되추적 기술과 이러한 되추적 기술에서 가지치기를 최고우선검색으로 하는 분기한정법에 대한 내용입니다. 되추적 기술에서는 N-여왕말 문제에 대한 코딩을 하고 부분집합의 합, 그래프 색칠하기, 해밀튼 경로, 0-1배낭채우기 문제에 대한 연습문제를 풀었고 분기한정법에서는 0-1배낭채우기를 너비우선과 최고우선검색으로 해결하는 문제와 외판원 문제를 연습문제로 풀었습니다. N-여왕말 문제 코드 import java.io.BufferedReader; import java.io.InputStreamReader; public class Nqueens{ public static int[] col = null; public static int N = 0; public static void main(String[] args) throws Exception { BufferedReader br = new Bu

swiftUI 스택 예제 코드(상품 리스트) VStack, Hstack [내부링크]

해당 코드는 스윗한 SwiftUI의 예제코드이다. https://book.naver.com/bookdb/book_detail.nhn?bid=16324763 스윗한 SwiftUI 더 우수한 앱을 더 적은 코드로!SwiftUI를 활용한 스마트한 iOS 앱 개발 길라잡이애플이 UIKit를 지원하기 시작한 지 11년, 그리고 Swift를 발표한 지 5년 만에 드디어 Swift를 기반으로 처음부터 완전히 새로 설계한 UI 프레임워크가 탄생했다. 이 책은 애플이 오랜 시간 준비하여 야심차게 내놓은 차세대 UI 프레임워크인 SwiftUI의 핵심 특성과 개념에 대해 쉽고 빠르게 접근하도록 도와주는 길잡이 역할을 한다. 여러 예제와 설명을 통해 단계별로 기본 개념을 먼저 익히고, 앱을 점점 발전시켜 나가면서 배운 내용이 ... book.naver.com siwftUI에서 스택을 어떻게 사용하는지에 대한 글이다. 상품 리스트와 같은 ui를 만들고 싶을 때 스택을 사용하면 좋을 것 같다. VStack은

SQL SELECT 사용 예시 및 설명(DLETE, COUNT, IN, EXISTS 등) [내부링크]

검색 쿼리에 대한 예시와 간단한 코멘트를 남깁니다. 1. Book 테이블의 제목 속성을 검색 SELECT title FROM Book; 2. Borrower 테이블의 모든 속성을 검색 SELECT * FROM Borrower; 3. Book 테이블의 제목 속성을 검색, 단 연도가 2010년에서 2014년 사이인 것 SELECT title FROM Book WHERE year BETWEEN 2010 AND 2014; 4. Book 테이블에서 1950년 이전에 출판된 책 삭제 DELETE FROM Book WHERE year < 1950; 5. Book 테이블에서 제목을 검색, 단 ISBN이 BookCopy 테이블의 ISBN 중 BookLoan 테이블에 없는 것 (복사본인 책들 중 빌려가지 않은 것) SELECT title FROM Book WHERE ISBN NOT IN (SELECT c.ISBN FROM BookCopy c, BookLoan l WHERE c.copyNo = l.co

xCode git 연결하기 remote [내부링크]

xCode와 git을 바로 연동할 수 있다. 매우 편리한 기능이다.. github 설치는 필수이다. https://git-scm.com/downloads Git - Downloads Downloads Mac OS X Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. Latest source Release 2.29.2 Release Notes (2020-10-29) Download 2.29.2 for Windows GUI Clients Git comes with built-in GUI tools ( git-gui , gitk ), but there are several third-party tools... git-scm.com 설치가 되었는지 보려면 cmd에서 다음을 입력해보자. git --vesrion 버전 정보가 나오면 설치된 것이다. 이제 본격적으로 깃헙과 xcode

안드로이드 스튜디오 비행기 앱 예제 [내부링크]

안드로이드 스튜디오로 만든 간단한 앱 화면이다. 결론적으로 다음과 같은 화면이 나온다. 좌석 등급, 기내식, 좌석 위치, 사람 수를 여러 버튼을 이용해 입력 받고 총 금액을 계산한다. 어떤 좌석이냐에 따라 사진도 바뀐다. 0번 xml 코드 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="5pt" android:layout_marginTop="10pt" android:layout_marginRight="5pt" android:orientation="vertical" tools:context=".MainActivity"> <!-- 가장 큰 틀인 L

swift 아이폰 앱 만들기, 앱 아이콘 설정 [내부링크]

xCode를 이용해 앱의 아이콘을 설정해보자. Assets.xcassets 를 누르면 위 처럼 아이콘을 등록할 수 있는 화면이 나온다. 이는 미리 등록이 된 화면이다. 각 해상도에 맞게 설정을 해줘야 한다. 이처럼 친절하게 몇 픽셀인지 알려주므로 어렵지 않다. 아이콘은 아래 사이트에서 가져온건데, 연습할 겸 만드는 프로젝트라 막 가져다 사용했지만 저작권에 유의해야 한다. https://www.flaticon.com/ Flaticon, the largest database of free vector icons Download all icons in SVG, PSD, PNG, EPS format or as webfonts www.flaticon.com 아이콘을 다운 받고 해상도별로 편집을 해야하는데 너무 귀찮을 것이다. 이를 해주는 사이트가 있다. https://appiconmaker.co/ App Icon Maker - Resize App Icon to all sizes for iOS

xCode 런치스크린(Launch Screen) 설정하기, swift 아이폰 앱 만들기 [내부링크]

런치스크린은 앱이 실행 될 때 잠깐 나타나는 화면을 말한다. xCode에서 이를 만들어보겠다. 아이콘을 만들었던 Assets에 원하는 이미지를 가져오자. 현재는 1x에 있지만 2x로 옮길 수 있다. 옮겨서 진행을 했다. 그리고 좌측 파일들 중 LaunchScreen.storyboard를 선택하자. 그러면 화면이 나온다. 라이브러리(library)에서 이미지뷰를 끌어다 놓자. 단축키는 커맨드+쉬프트+L 라벨도 끌어다 놓자. 먼저 이미지를 설정하자. 가져다 놓은 파일명이 splash.png여서 우측 메뉴에서 다섯번째 아이콘을 눌러 설정을 해주면 된다. 라벨도 적절히 설정해주자. 다음은 이미지와 라벨을 함께 드래그 한 다음 아래에 있는 캔버스 메뉴(Canvas Menu)에서 제일 끝에 있는 아이콘을 눌러보자. 그리고 이를 스택 뷰(Stack View)로 설정해라. 그러면 둘이 같이 묶인다. 그리고 제약 조건을 설정한다. 이미지를 눌러보자. 화면에서 바로 눌러도 좋지만 잘 안눌린다면 좌측에

Swift 메인 레이아웃 설정하기, 뷰 컨트롤러? [내부링크]

이번에는 앱의 메인을 간단히 설정해보겠다. 기존의 메인 스토리보드와 설정되어 있던 네비게이션 컨트롤러는 지우고 연습삼아 다시 해보자. 라이브러리에서 Navigation Controller를 검색해서 놓자. Navigation Controller 를 캔버스에 놓으면 두 개의 씬이 나온다. 화면을 관리하는 씬 하나와 실제로 표기되는 씬 두개이다. 목록을 놓기 위한 테이블 뷰가 기본으로 만들어지는데, 뷰란 버튼이나 이미지 같은 것을 말하고 이러한 뷰가 모여 하나의 화면이 된다. 이러한 뷰를 관리하는 게 뷰 컨트롤러(View Controller)이다. 그리고 초기화면을 설정해줘야 한다. Is Initial View Controller를 체크해 초기 화면을 설정할 수 있다. 네비게이션 컨트롤러 옆에 붙여주자. 그리고 타이틀을 변경할 수 있다. 원하는 이름으로 변경하고, 크기도 키워보자. 이번엔 왼쪽 화면에서 타이틀을 누르고 Prefers Large Titles를 체크하자. 또 간단한 버튼을

swift class 만들기 (Model) [내부링크]

파일트리에서 New Group 으로 폴더를 만들고, New File로 Model.swift 파일을 만들자. 이 파일에 클래스를 넣을 것이다. import Foundation class Memo { var content: String var insertDate: Date init(content: String) { self.content = content insertDate = Date() } static var dummyMemoList = [ Memo(content: "Developer Want?"), Memo(content: " + ️ =") ] } swift 클래스는 위와 같이 구성된다. 사용할 변수를 넣고 초기화는 init으로 한다. insertDate는 현재 날짜를 바로 넣기 때문에 인자를 받을 필요가 없다. 더미 메모를 기록할 리스트도 static으로 만들었다. 참고로 맥북에서 특수문자를 넣는 단축키는 컨트롤+커맨드+스페이스바이다. 앞으로 유용하게 사용할 듯하다.

swift 테이블 뷰로 메모 리스트 만들기 [내부링크]

이번에는 테이블 뷰를 이용해 메모 리스트를 만들어보겠다. 네비게이션 뷰에서 셀을 눌러 Style을 Subtitle로 변경하자. 제목과 날짜 두 개를 띄울 예정이다. 도큐먼트 아웃라인에서 subtitle을 눌러 글자의 색깔을 바꿔주었다. 그리고 테이블뷰 셀의 Identifier을 cell로 설정하였다. 클래스와 연결하기 때문에 중요한 부분이다. 셀이 여러개라면 특별한 이름을 설정해줘야 한다. 그리고 연결할 클래스를 만들기 위해 새로운 파일을 하나 만들었다. cocoa touch class 파일이다. 그리고 태이블 뷰에 연결할 것이므로 UITableViewController로 설정해야하며, 이것을 설정하면 자동으로 이름이 설정되는 것이 있는데(TableViewController) 이것을 접미어로 사용하는 것이 관례라고 한다. 만든 클래스 이름을 복사해 네비게이션 뷰의 클래스에 설정을 해줘야 한다. 엔터를 눌러 확실히 설정하고 빌드(커맨드+b)로 다시 한 번 확인해야 한다. 간혹 버그 때

리눅스 프로그래밍, C 파일 입출력으로 호텔 투숙객 관리하기 [내부링크]

호텔 투숙객을 관리하는 hotel.c 파일이다. 아래가 전체 코드이다. 코드 아래에 간단한 설명을 하겠다. #include <stdio.h> #include <fcntl.h> #include <unistd.h> #define NAMELENGTH 5 #define NROOMS 10 char namebuf[NAMELENGTH]; // 이름을 받는 버퍼 char *getoccupier(int roomno) { // 전체 투숙객을 출력하는 함수 off_t offset; ssize_t nread; int infile = -1; if (infile == -1 && (infile = open("residents", O_RDONLY)) == -1) { // 파일을 읽기 전용으로 엶 return NULL; } offset = (roomno - 1) * NAMELENGTH; // 방 번호를 바탕으로 offset설정 if (lseek(infile, offset, SEEK_SET) == -1) // 파일

switf 테이블 뷰 델리게이트 구현 예제 [내부링크]

ios 앱을 만들었다면 델리게이트(delegate)라는 개념에 대해 들어봤을 것입니다. 델리게이트는 대리자라는 뜻으로 하나의 객체에서 하는 일의 일부를 다른 객체에 위임한다는 의미입니다. 이는 다음과 같은 과정으로 구현이 됩니다. 1. 테이블 뷰 배치 2. 프로토타입 셀 디자인, 셀 아이덴티파이어 지정 3. 데이터 소스, 델리게이트 연결 4. 데이터 소스 구현 5. 델리게이트 구현 처음으로 테이블 뷰 배치입니다. 네비게이션 뷰를 만들 때 생기게 됩니다. 그리고 셀을 지정하고 셀의 아이덴티파이어를 지정해야 합니다. 여기서는 cell이라고 하였습니다. 데이터 소스와 델리게이트 연결은 테이블 뷰를 만들 때 자동으로 설정이 됩니다. 다만 스토리보드에서 클래스 연견이 되어있는 것은 필요합니다. 다음으로 데이터 소스는 쉽게 말해 테이블 뷰에게 들어갈 데이터의 수, 디자인, 지정할 데이터 등을 알려주는 객체입니다. 이론적으로는 UITableViewDataSource 프로토콜을 채택한 형식입니다.

Swift Date Formatter, xCode IOS 앱 만들기 (DateFormmater) [내부링크]

현재까지 포스팅한 메모 앱 만들기는 유튜브 kxcoding을 참고했음을 밝힙니다! https://www.youtube.com/channel/UCtVacbJccQlQL_FP5XSEQMQ KxCoding 궁금한 점은 해당 영상 아래에 댓글로 남겨주세요 :) 에러가 발생하는 부분, 에러를 재현하는 방법, 에러 해결을 위해 어떤 작업을 했는지 등을 최대한 자세하게 설명해 주시면 충실한 답변을 드릴 수 있습니다. 구독과 좋아요는 ️입니다! 강의에 포함된 광고를 시청해 주시면 무료 강의... www.youtube.com 이번에는 메모에 출력되는 날짜의 형식을 바꾸는 과정입니다. 메모리스트 클래스에 다음과 같이 추가해줍니다. let formatter: DateFormatter = { let f = DateFormatter() f.dateStyle = .long f.timeStyle = .short f.locale = Locale(identifier: "Ko_kr") return f }() 날짜와

ios 뷰 컨트롤러로 새로운 화면 만들기(swift, xCode) [내부링크]

KxCoding 메모앱 만들기 프로젝트입니다! 이번에는 뷰 컨트롤로 새로운 화면을 띄우는 것을 해보겠습니다. 우선 라이브러리에서 뷰 컨트롤러를 검색해서 추가한 다음, 뷰 컨트롤러를 선택하고 캔버스 메뉴의 다섯번 째 버튼에서 Navigation Controller를 선택하면 네비게이션 컨트롤러가 embed 되어 자동으로 연결됩니다. 그리고 + 버튼을 누르면 새로운 화면으로 띄우게 할 것입니다. +버튼을 드래그해서 네비게이션 컨트롤러로 드롭합니다. 그리고 놓아주면 위와 같이 뜨는데, Present Modally를 선택해줍니다. 그러면 연결선이 하나 생기는데 이를 segueway라고 합니다. 현재는 Sheet가 생겼지만 스토리보드 속성에서 Presentation을 Full Screen으로 바꾸면 새로운 화면이 영역 전체를 채우도록 할 수도 있습니다. 다시 원래 기본값인 Same As Destinatiion 으로 바꾸고 진행하겠습니다. 보시면 이처럼 화면이 새로 만들어지는 게 아니라 쌓이는

swift 기존 화면으로 돌아가는 취소 기능 구현 [내부링크]

이번에는 cancel 버튼의 기능 구현입니다. 내용의 출처는 아래 링크입니다. https://www.youtube.com/channel/UCtVacbJccQlQL_FP5XSEQMQ KxCoding 궁금한 점은 해당 영상 아래에 댓글로 남겨주세요 :) 에러가 발생하는 부분, 에러를 재현하는 방법, 에러 해결을 위해 어떤 작업을 했는지 등을 최대한 자세하게 설명해 주시면 충실한 답변을 드릴 수 있습니다. 구독과 좋아요는 ️입니다! 강의에 포함된 광고를 시청해 주시면 무료 강의... www.youtube.com 위쪽에 목록 같은 아이콘을 클릭합니다. 이것을 누르고 Assistant를 누르면 보조 도구가 나옵니다. 아래처럼 화면에 대한 코드가 열리는 것을 볼 수 있습니다. 이 때 어떤 파일인지 Jump bar에 나오는데, 내가 사용할 파일이 잘 열려있는지 확인해야 합니다. 취소 기능을 구현해봅니다. Cancel을 컨트롤을 누르고 드래그해서 클래스 안에 놓아줍니다. Connection은 ac

그로스 해킹이란? (그로스 해킹의 정의 및 사례) [내부링크]

그로스 해킹이 무엇인지 책을 읽고 알게 된 것을 공유합니다. 책은 라이언 홀리데이의 그로스 해킹입니다. 그로스 해킹 저자 라이언 홀리데이 출판 길벗 발매 2015.04.13. 목차는 그로스 해킹이란, 그로스 해킹 스텝, 그리고 그로스 해킹 국내 사례에 대해 소개해드리겠습니다. 그로스 해킹이란? 그로스 해킹의 정의에 대해 얘기해보겠습니다. 그로스 해킹이란 그로스와 해킹이라는 두 단어로 이루어져 있습니다 흔히 들어봤을 단어이죠. 그로스는 성장이란 뜻인데요. 합치면 뭐 성장을 해킹한다는 의미인데요. 그로스 해킹은 스타트업을 위한 실용주의 마케팅입니다. 바로 데이터 분석에 기반한 마케팅이라고 보시면 됩니다. 그로스 해킹(Growth hacking)은 창의성, 분석적인 사고, 소셜 망을 이용하여 제품을 팔고, 노출시키는 마케팅 방법으로 스타트업회사들에 의해 개발되었다. 그로스 해킹은 창의성, 분석적인 사고, 소셜 망을 이용하여 제품을 팔고, 노출시키는 마케팅 방법으로 스타트업회사들에 의해 개

메모앱 저장 기능 구현(ios, swift, xcode) [내부링크]

입력된 메모를 저장하고 내용이 없으면 경고를 해주는 기능을 구현한다. 저장 버튼을 컨트롤 눌러 드래그하여 뷰 컨트롤러에 Action으로 추가한다. 해당 함수에 기능을 추가할 것이다. 그리고 메모 자체의 내용을 가져와야 하므로 마찬가지로 컨트롤을 누르고 드래그해준다. 이것은 Outlet으로 설정해야 한다. 코드는 아래와 같다. import UIKit class ComposeViewController: UIViewController { @IBAction func close(_ sender: Any) { dismiss(animated: true, completion: nil) } @IBOutlet weak var memoTextView: UITextView! @IBAction func save(_ sender: Any) { guard let memo = memoTextView.text, memo.count > 0 else { alert(message: "메모를 입력하세요") return

ios, swift 노티피케이션 사용 예(메모앱 저장) [내부링크]

저장한 메모를 테이블 리스트에 띄우는 예제이다. 노티피케이션을 사용하지 않는 방법을 먼저 해보겠다. 테이블 뷰와 네비게이션 뷰를 이어주는 세그웨이를 선택하고 Presentation을 Full Screen으로 변경한다. 그리고 메모 리스트를 띄우는 MemoListTableViewController.swift에 아래의 함수를 추가한다. override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) tableView.reloadData() print(#function) } 그러면 바로 메모를 띄울 수 있다. 콘솔에도 출력이 잘 된다. 처음 앱을 켰을 때 한 번, 메모를 저장했을 때 한 번 출력되는 것이다. Presentation을 다시 기본 값으로 바꿔보자. 이렇게 바꾸면 ios 버전에 따라 실행이 안될 수 있다. ios 버전이 낮을 때는 AppDelegate.swift에서 다음 window를 추가해주면 sh

돌이킬수없는약속 결말 사진에 대한 생각 [내부링크]

책 돌이킬 수 없는 약속에 대한 간단한 후기와 줄거리 및 결말에 대한 글이다. 돌이킬 수 없는 약속 저자 야쿠마루 가쿠 출판 북플라자 발매 2017.02.02. 베스트셀러이기도 하고 재밌다길래 구매했다. 한 때 유튜브에서 광고도 많이 했다고 하는데, 사실 유튜브 프리미엄이라 유튜브에서는 못 봤고 페북에서 잠깐 본 것 같다. 줄거리 이야기는 는 과거 야쿠자에게 쫓기던 주인공 다카토(=무카이)가 우연히 노부코라는 노파를 만나면서 시작된다. 노부코는 범죄자에게 자신의 딸이 심한 짓을 당하며 죽임을 당한 것에 분노하며 살아가고 있다. 범죄자들은 감옥에 들어가버렸고 노부코는 그들이 나오면 복수를 다짐하지만, 시한부를 받은 노부코는 그럴 수 없는 입장이 되었다. 그래서 다카토에게 거액의 돈을 빌려주는 대신 나중에 범죄자들이 나오면 죽여달라고 부탁한다. 고민하던 다카토는 제안을 수락하고 거액의 돈으로 신분을 세탁하고 성형을 해서 무카이라는 새로운 사람이 된다. 새로운 삶을 시작한 무카이는 동업자

[2020 마이블로그 리포트] 한 눈에 보는 올해 내 블로그 데이터! [내부링크]

중간에 큰 공백이 있었지만 벌써 6년이 지났네요.. 앞으로도 열심히 하겠습니다! 2020 마이 블로그 리포트 올해 내 블로그 대표 키워드 확인하고 네이버페이 받아가세요! campaign.naver.com

xCode, push/pop 이 되는 화면 구성하기 [내부링크]

1. 메인스토리보드에서 새로 이동할 화면을 만든다. (View Controller) 2. cell을 선택하고, 컨트롤 키를 누르고 방금 만든 뷰 컨트롤러에 놓는다. 그리고 Selection Segue에서 Show를 선택한다. 3. 해당 셀의 Accessory 옵션을 Disclosure Indicator로 설정한다. 그러면 push와 pop은 동작한다. 근데 별 다른 기능이 없으므로 추가적인 화면을 구성해보자. - Cocoa Touch Class 파일을 만들고 새로 만든 뷰 컨트롤러에 클래스를 등록해주자. - 그리고 네비게이션 바를 눌러 Large Title은 Never로 설정하여 크기를 줄여주자. - 추가로 Tool Bar 를 아래에 추가해주자. Tool Bar 를 선을 잘 맞춰 놓으면 아래처럼 화면 아래를 모두 차지하게 할 수 있다. - 그 위에는 테이블 뷰를 놓아준다. - 테이블 뷰의 왼쪽, 오른쪽, 위, 아래에 제약 조건을 추가한다. - 툴 바의 왼쪽, 오른쪽, 아래에 제약 조

메모 내용을 가져오기 swift xCode ios [내부링크]

테이블의 셀을 누르면 새로운 화면이 나오면서 메모 내용과 날짜를 출력하는 방법이다. 메인 스토리보드에서 내용을 띄워줄 테이블 뷰 안에 table view cell을 추가하자. 이렇게 추가해주면 된다. 맨 위에 이렇게 해주면 네비게이션에 가려지지 않고 자연스럽게 동작하도록 된다. 이 table view cell은 메모 내용을 띄울 예정이고 이름은 memoCell로 해주자. 그리고 테이블 뷰를 눌르고 attribute inspector에서 content를 Dynamic Prototypes로 설정해주고 셀의 수를 2개로 해주면 셀이 늘어난다. 밑의 셀의 이름은 dateCell로 하고 Color를 gray로 설정한다. 정렬도 가운데로 되도록 하였다. 이제는 dataSource와 delegate를 연결해보겠다. 테이블 뷰에서 컨트롤을 누르고 드래그하여 아래 보이는 Detail View Controller에 드롭한다. 그리고 dataSource를 선택해주자. 테이블 뷰에서 우클릭하면 아래 같은

Swift 5, Xcode 11 테이블 뷰 selection, 줄바꿈 [내부링크]

테이블 뷰의 줄바꿈 하는 방법에 대해 알아보자. 먼저 테이블 뷰의 속성에서 Separator 를 None, Selection은 No Selection로 해주자. Separator는 테이블의 구분선인데 이를 없에준 것이고, Selection은 셀을 클릭하면 선택되는 것을 꺼준 것이다. 그리고 ios 버전에 따라 차이는 있지만 셀을 오래 클릭하면 강조 색상(하이라이트)이 나오는 것이 있기 때문에 이를 제거하는 것이 좋다. 메모 내용을 출력하는 셀과 날짜를 출력하는 셀 두 개다 속성에서 Selection을 None으로 한다. 이러고 실행하면 아래처럼 한 줄에 내용이 나오고 생략되는데, 줄바꿈이 필요하다. 레이블의 속성에서 출력되는 라인 수를 의미하는 Lines를 0으로 해주고, Line Break를 Word Wrap으로 해주자. 이러면 자동 줄바꿈이 되는데, Word Wrap은 단어가 잘리지 않게 출력해주는 기능도 있다. 그런데 한글은 지원이 안된다고 한다.. 아래처럼 메모 내용이 줄이

Swift, Xcode 데이터베이스 구현 1 [내부링크]

메모 내용을 데이터베이스에 저장해봅시다. Core Data를 이용해 구현할 것인데, 프로젝트 네비게이터에서 모델 파일을 선택한다. Memo 엔티티를 만들고, 메모 내용과 날짜 속성도 추가해주자. 기존에 사용했던 모델 대신 데이터를 관리할 스위프트 파일을 만든다. import Foundation import CoreData class DataManager { static let shared = DataManager() private init() { } var mainContext: NSManagedObjectContext { return persistentContainer.viewContext } var memoList = [Memo]() func fetchMemo() { let request: NSFetchRequest<Memo> = Memo.fetchRequest() let sortByDateDesc = NSSortDescriptor(key: "insertDate", ascendi

Swift, Xcode 데이터베이스 구현 2 [내부링크]

메모 데이터를 데이터베이스에 저장하는 코드를 알아보자. 앞에서 이어서 진행하기 때문에 앞 글을 참고하면 좋다. https://blog.naver.com/easeon11/222181345266 Swift, Xcode 데이터베이스 구현 1 메모 내용을 데이터베이스에 저장해봅시다.Core Data를 이용해 구현할 것인데, 프로젝트 네비게이터에서 ... blog.naver.com 데이터를 가져오기만 했던 데이터 매니저 파일에 아래 코드를 추가한다. func addNewMemo(_ memo: String?) { let newMemo = Memo(context: mainContext) newMemo.content = memo newMemo.insertDate = Date() memoList.insert(newMemo, at: 0) saveContext() } 내용에는 매개변수인 memo를 넣고 날짜는 현재 날짜를 넣는다. memoList에 insert를 해줘야 추가할 때마다 목록이 갱신되어 불

swift 메모 편집 기능 구현 [내부링크]

아이폰 메모앱 만들기, 이번에는 저장한 메모를 편집하는 기능을 구현해보았다. 먼저 메모목록을 띄우는 툴바를 선택하고 속성의 System Item 을 Compose로 바꿔준다. 그리고 선택하면 편집창을 띄우도록 컨트롤을 눌러 네비게이션 바 위에 놓아준다. 또 테이블뷰를 리로드 하는 것도 필요하기 때문에 컨트롤을 눌러 DetailViewController 클래스에 추가해준다. 아래 코드가 추가될 것이다. @IBOutlet weak var memoTableView: UITableView! 다음은 전체 코드이다. import UIKit class DetailViewController: UIViewController { @IBOutlet weak var memoTableView: UITableView! var memo: Memo? let formatter: DateFormatter = { let f = DateFormatter() f.dateStyle = .long f.timeStyle =

swift 메모 저장 여부 선택 팝업 띄우기 [내부링크]

기존 메모 내용을 편집한 뒤, 시트를 풀 다운해서 닫는 경우 편집한 메모를 저장할 것인지 묻는 팝업을 띄울 것이다. 확인을 누르면 아래처럼 저장이 잘 되어야 한다. 단 취소 된 경우 당연히 저장되지 않고 메모가 편집된 내용이 없는 경우는 팝업이 나오지 않는다. ComposeViewController.swift 파일에서 클래스에서 편집한 메모 내용을 담을 변수를 만들고, var originalMemoContent: String? 메모 편집 시 값을 해당 변수에 저장한다. originalMemoContent = memo.content 그리고 텍스트 뷰 내에 델리게이트로 지정하기 위해 아래 두 메소드를 추가한다. override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) navigationController?.presentationController?.delegate = self } override fun

swift 메모 삭제 기능 구현 예제 코드 [내부링크]

xcode 앱 만들기 이번에는 메모를 삭제하는 기능을 구현한다. 툴바에 버튼을 추가해서 삭제하는 것과 스와이프를 이용해 삭제하는 것 두 가지를 구현한다. 먼저 스토리보드에 툴바에 Bar Button Item과 Flexible Space Bar Button Item 을 추가해준다. 추가해준 바 버튼 아이템의 속성은 삭제 버튼처럼 보이도록 설정해주자. 그러면 널찍한 공간과 함께 편집 버튼 옆에 삭제 버튼이 만들어진다. 그리고 어시스턴트를 열어 메소드를 추가해준다. 코드 부분이다. @IBAction func deleteMemo(_ sender: Any) { let alert = UIAlertController(title: "삭제 확인", message: "메모를 삭제할까요?", preferredStyle: .alert) let okAction = UIAlertAction(title: "삭제", style: .destructive) { [weak self] (action) in DataMa

CSS 선택자 공백이 의미하는 것 [내부링크]

먼저 CSS 선택자에 대해 간단히 정리해보겠습니다. . (점) = 클래스 .select { } # (해시태그) = id #footer { } 아무것도 없음 = HTML 태그 ol { } CSS 선택자에서 공백(띄어쓰기)이 있으면 하위 엘리먼트에서 모두 조건에 맞는 엘리먼트를 찾고, 붙어있으면 같은 엘리먼트에서 모든 조건에 맞는 엘리먼트를 찾습니다. 예를들어 html 내 .footer 하위에 # select 클래스가 존재하면 둘은 띄어써야 합니다. (공백이 있어야 하는 경우) HTML <h1 id="footer"> <p class="select"> </p> </h1> CSS .footer #select { } 반대로 article 태그와 .text 클래스처럼 같은 수준으로 존재하면 붙여써야 합니다. (공백이 없어야 하는 경우) HTML <article id=text> </article> CSS article.text { }

나무위키 크롤링으로 알아보는 롤 챔피언 출시 순서 목록 [내부링크]

나무위키 사이트에 출시된 챔피언 목록이 나와 있다. https://namu.wiki/w/%EB%A6%AC%EA%B7%B8%20%EC%98%A4%EB%B8%8C%20%EB%A0%88%EC%A0%84%EB%93%9C/%EC%B1%94%ED%94%BC%EC%96%B8/%EC%B6%9C%EC%8B%9C%EC%9D%BC 리그 오브 레전드/챔피언/출시일 - 나무위키 상위 문서: 리그 오브 레전드/챔피언 1 . 개요 2 . 2009년 3 . 2010년 4 . 2011년 5 . 2012년 6 . 2013년 7 . 2014년 8 . 2015년 9 . 2016년 10 . 2017년 11 . 2018년 12 . 2019년 13 . 2020년 1. 개요 [편집] 리그 오브 레전드 의 챔피언 들의 출시일이다. 출시일은 각 나라에 상관없이 최초로 PBE를 제외한 서버에 플레이어블로 나온 것을 기준으로 기재한다. 은 기본 일러스트 변경이 없는 챔피언들이다. 2. 2009년 [편집] 발매일 순서 초상화 챔...

리액트 개발환경 구축하기(in MacOs, with Visual Studio Code 에디터) [내부링크]

먼저 아래 사이트에서 노드 파일을 다운로드 받는다. https://nodejs.org/ Node.js Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 그리고 터미널 창을 열고 아래 명령어를 열어 설치가 잘 되었는지 확인한다. node -v 설치한 버전이 나오면 ok 그리고 같이 설치된 npm의 명령어를 이용해 최신 버전의 Node.js를 설치해준다. sudo npm install npx -g 노드는 설치는 마무리되었고 이번엔 에디터를 설치해주자. https://code.visualstudio.com Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applicati

swift 공유 기능 구현 코드 (ios 앱 만들기) [내부링크]

이번에는 간단한 공유 기능을 구현해보겠습니다. 공유를 해줄 버튼을 만들어 줍시다. BarButtonItem을 넣어주고 System Item을 Action으로 설정해주면 됩니다. 버튼 사이에 flexible space bar button 을 넣어주면 위처럼 적절한 공간이 생기게 됩니다. 그리고 Assistant를 누르고 버튼을 컨트롤 드래그하여 코드에 넣어줍시다. Action을 연결해줍니다. 이름은 자유롭게 설정하세요. 그리고 아래 코드를 구현합니다. @IBAction func share(_ sender: Any) { guard let memo = memo?.content else { return } let vc = UIActivityViewController(activityItems: [memo], applicationActivities: nil) present(vc, animated: true, completion: nil) } 이렇게만 해주면 끝입니다. 현재 시뮬레이터에는 서드

siwft 키보드 Notifications 코드(ios 앱 만들기) [내부링크]

키보드 노티피케이션을 이용해 글을 작성할 때 키보드가 화면을 가리지 않도록 하는 swift 코드에 대해 알아봅니다. 위의 실행 결과를 보면 텍스트의 아래를 키보드가 가려 보이지 않는 것을 볼 수 있습니다. 이를 해결하기 위해 키보드 노티피케이션에 대한 옵저버를 처리할 변수와 해제하는 코드를 추가합니다. var wlllShowToken: NSObjectProtocol? var willHideToken: NSObjectProtocol? deinit { if let token = wlllShowToken { NotificationCenter.default.removeObserver(token) } if let token = willHideToken { NotificationCenter.default.removeObserver(token) } } 변수에 대해 다음과 같은 동작을 하도록 코드를 작성합니다. willShowToken = NotificationCenter.default.addOb

엑셀 체크박스 컨트롤 서식 100% 활용하기, 롤 숙련도 기록 [내부링크]

엑셀 체크박스 컨트롤 서식을 이용해 내가 어떤 챔피언의 숙련도를 모두 완료했는지 체크하는 방법을 공유해드립니다. 파일만 필요하다면 아래에서 다운 받아 이용하시면 됩니다. 첨부파일 롤숙련도.xlsx 파일 다운로드 먼저 챔피언은 출시일로 정렬을 해두었습니다. 방법은 이걸 참고해주세요. https://blog.naver.com/easeon11/222192719907 나무위키 크롤링으로 알아보는 롤 챔피언 출시 순서 목록 나무위키 사이트에 출시된 챔피언 목록이 나와 있다. https://namu.wiki/w/%EB%A6%AC%EA%B7%B8%20... blog.naver.com 그리고 체크박스를 만들어줍니다. 개발자 도구에 체크 박스를 추가해준 뒤 가져옵니다. 그리고 체크박스 우클릭 후 컨트롤 서식을 눌러 지정해줘야 합니다. 그런데 일일이 하면 귀찮습니다. 그래서 매크로를 이용합니다. 체크 박스 우클릭 후 매크로 지정을 해줍니다. 아래 코드를 넣어주면 됩니다. Sub 체크박스연결() Dim

데이터베이스 설계하고 SQL server에서 데이터 다루기(사용자 정의 함수, 프로시저) [내부링크]

사용한 데이터베이스는 아래와 같다. - 개념적 설계 - 논리적 설계 Game(G_ID, Name, Price, Release_Day) Video(V_ID, Title, Length, G_ID, Y_ID, Time, Date) Youtuber(Y_ID, Nickname, Subscriber_Num) Member(M_ID, Name, Phone, DOB) Buy(G_ID, M_ID, Time, Date) Watch(V_ID, M_ID, Count) 이걸 가지고 Microsoft SQL server에서 다뤄보겠다. 데이터는 미리 다 넣어 놓았다. 1 Consider your database 여기서는 사용자 정의 함수를 정의하고 사용해본다. My database : GameYoutuber Write user-defined functions such as: A function that takes a table name as input and returns the column names wit

안드로이드 스튜디오 네비게이션 앱 만들기 예제 [내부링크]

출발 지역과 도착 지역에 대한 정보를 저장하는 네비게이션 앱 예제이다. 안드로이드 스튜디오 프로젝트 파일은 제일 아래에서 다운로드 받을 수 있다. 코드 설명 Manifest 일단 Manifest 파일에 기본 Main액티비티, 출발지/도착지를 추가하는 액티비티와 수정하는 액티비티를 각각 추가하였다. 전체 구조는 Main액티비티에서는 리스트뷰로 경로가 저장된 파일의 내용을 불러온다. 액션바에서 add를 클릭하면 경로가 입력된 파일을 추가할 수 있는 인텐트가 열린다. 리스트의 항목을 길게 클릭하면 컨텍스트 플로팅 메뉴가 나오고 해당 항목을 수정 혹은 삭제할 수 있다. 삭제를 누르면 바로 해당 항목의 파일이 삭제되고 리스트가 업데이트 되고, 수정을 누르면 경로를 수정을 할 수 있는 인텐트가 열린다. 일단 Main액티비티에 대해 설명하겠다. layout : activity_main 화면 구성은 아래와 같다. 리스트뷰만을 추가하였고 별다른 것은 없다. 그리고 액션바를 아래처럼 추가하였다. me

JDBC(Java Database Connectivity) 사용법(MySQL) [내부링크]

데이터베이스 설계부터 서버 사이드의 프로그래밍과 클라이언트 사이드의 프로그래밍에 대한 예제 코드입니다. 프로젝트 파일도 아래에 첨부되어 있습니다. 사용한 데이터 베이스에 대한 설명 1. Introduction It is a database that collects and provides information about the games in the videos taken by various game youtubers and records of games purchased by members. The database also tells you what game YouTube videos your members have watched. Based on this database, you can recommend new games to members. 2. Database Design - Conceptual design - logical design Game(G_ID, Name, Price

안드로이드 스튜디오 MP3 플레이어 만들기 예제 코드 [내부링크]

안드로이드 스튜디오로 만든 MP3 플레이어 애플리케이션입니다. 마지막에 프로젝트 파일을 첨부하였으니 참고 바랍니다. 실행화면 1 어플리케이션이 시작되면 위와 같은 화면이 나온다. 맨 위에 실행죽인 음악의 제목과 가수가 TextView로 나오고, 그 아래에 재생/일시정지, 이전 곡으로 이동, 다음 곡으로 이동하는 ImageButton, 그리고 음악의 제목과 가수 2가지 아이템이 ListView에 담겨서 출력된다. 옵션 메뉴에서 종료 버튼을 클릭하여 어플리케이션을 종료할 수 있다. 음악 재생 제어는 Service로 구현하였다. 음악이 처음 시작되는 것은 startService 형태로 구현하였고, 일시 정지 및 다시 재생, 이전 곡이나 다음 곡 재생은 bindService 형태로 구현하였다. 실행화면 2 어플리케이션이 실행되면 노티피케이션이 표시된다. 음악이 재생 혹은 일시정지 중일 때 액티비티를 종료한 뒤 노티피케이션을 터치하여 다시 어플리케이션으로 돌아올 수 있다. 노티피케이션에는 아

SQL relational algebra tree(관계 대수 질의 트리), 트랜잭션 선행 그래프 예시 [내부링크]

1. 쿼리 프로세싱(Query Processing) • Consider the Hotel Schema: 사용한 DB Hotel (hotelNo, hotelName, city) Room (roomNo, hotelNo, type, price) Booking (hotelNo, guestNo dateFrom, dateTo, roomNo) Guest (guestNo, guestName, guestAddress) Draw a relational algebra tree for each of the following queries and use the heuristic rules to transform the queries into a more efficient form. 1-1. SELECT r.roomNo, r.type, r.price FROM Room r, Booking b, Hotel h WHERE r.roomNo = b.roomNo AND b.hotelNo = h.hotelNo AND h

리눅스 프로그래밍 예제 기초, 리눅스 네트워크 프로그래밍 [내부링크]

리눅스 프로그래밍 기초 1. 리눅스 개요 Unix - 리눅스의 원형이다. - 멀티유저, 멀티태스킹이 가능한 운영체제이다. - C언어 커널로 재작성 되었다. - The Open Group에서 관리하며 단일 유닉스 규격 기술 표준을 제정하였다. Linux - 유닉스와 유사한 커널을 가진 무료 운영체제이다. - Linus Torvalds 가 개발하였다. - kernel.org에서 커널 배포하고 있다. Free Software Foundation(FSF) - Richard Stallman이 만든 비영리 단체로 소프트웨어의 상업적 목적 이용을 배제한다. - Richard Stallman : 자유 소프트웨어 운동 개척자, GNU 프로젝트 시작(소프트웨어의 상업적인 관점에서 빌게이츠와 대비된다.) GNU Project - GNU General Public License 하에 자유롭게 실행 배포 복제 개조 가능하다. - GCC, G++, GDB, GNU, Bision, Bash, GNU Emacs

정보보호개론 - 암호기술의 개요 [내부링크]

Q. 신뢰할 수 없는 두 사람이 전화상에서 큰 정수를 가지고 간단한 작업을 할 수 있다. (페루 동전던지기처럼) 이 때 정수의 범위가 제한적이면 발생하는 문제는? A. 만약 선택하는 정수의 범위가 제한적이라면 홀수인지 짝수인지 추측해야하는 B가 f(x)에 제한된 정수를 넣어서 미리 계산을 해두고 A가 보낸 f(x)의 값을 미리 계산해 둔 값과 비교해서 원상 x를 찾아내어 짝수인지 홀수인지 알아낼 수 있습니다. Q. 비트코인의 불관찰성, 불연결성 측면에 대한 분석은? A. 비트 코인을 전달하기 위해서는 주소를 알아야 한다. 주소만으로는 비트 코인을 전달하거나 전달받는 사람이 누구인지 알 수 없으므로 불관찰성이 보장됩니다. 그리고 사용자가 여러 개의 주소를 만들어 사용한다면 같은 사람이 같은 사람에게 비트코인을 전달할 때 매번 주소가 바뀌므로 같은 사람이 전달한 것인지 알 수가 없습니다. 즉 불연결성이 보장됩니다. 하지만 한 사용자가 하나의 주소만을 사용하는 경우에는 같은 사람이 비트코

OSI 7계층과 TCP/IP (데이터 통신) [내부링크]

통신 프로토콜의 개념 통신 프로토콜 - 특정 통신 서비스 또는 기능 수행을 위해 관련 통신 당사자간 어떤 종류의 정보를 어떤 표현 방식으로 어떻게 교환하고 어떤 절차를 수행해야 하는지 정의한 규약을 의미한다. 다양한 형태의 서비스를 제공한다. 프로토콜의 3대 요소 구문 : 특정 통신 서비스 또는 기능 제공을 위해 정의하는 메시지 종류와 형식 의미 : 메시지를 수신했을 때 실행해야 할 행위에 대한 정의 타이밍 : 메시지 교환 절차에 대한 정의 응용 서비스 인터넷이나 데이터 통신망을 응용해서 사용자가 직접 이용하는 정보와 관련된 통신 서비스이다. 다양한 응용 서비스가 존재(전자우편, 파일 전송, 웹 서비스 등)한다. 이는 응용 프로토콜이 다양하게 존재한다는 의미이다. 응용 프로토콜의 예 : SMTP(전자우편), FTP(파일 전송), HTTP(웹 서비스), SIP(인터넷 전화) 등 공통적인 통신 서비스의 분리 정의 응용 프로토콜이 실행되기 위해 공통적으로 필요로 하는 여러 가지 통신 서비

업종별/기업별 직무분석, 내게 맞는 직무의 탐색, 기업채용의 이해 [내부링크]

업종별/기업별 직무분석 - 직업은 생계를 위해 자신의 적성과 능력에 따라 일정 기간 동안 종사하는 일을 말한다. - 직무는 직책이나 직업 상 책임을 지고 담당하여 맡은 사무, 즉 맡은 일을 말한다. - 직무가 중요한 이유 : 대졸 신입사원이 1년 이내에 많이 퇴사를 한다. 왜냐하면 자신이 선택한 직무가 맞지 않아서 그렇다. 그렇게 퇴사를 하게 되면 자신의 경력에 공백이 생기기 때문에 큰 손해이다. - 해당 직무와 관련된 경험 미리 쌓고 면접 때 면접관에게 어필하는 것이 중요하다. 이공계열 직무 - 연구개발 : 기술정보 분석 및 수집, 제품개발과 개선, 핵심기술 연구, 프로젝트 연구 등 연구분야 전문지식, 창의력과 분석력, 성취욕구와 집중력 등의 역량이 필요하고 지원 업종 관련 자격증, 전문지식이 필요하다. - 생산기술, 시공 : 자사제품을 일정 공정을 거쳐 생산, 생산 활동의 능률화로 생산력이 최고로 발현될 수 있도록 관리하고 감독하는 업무 - 환경안전, 품질 : 회사의 환경정책 수

직무적성검사의 이해, 자기소개서 전략, 면접 준비 [내부링크]

직무적성검사의 이해 직무적성검사 평가 항목 언어 능력 : 비즈니스에서 원활한 의사소통 능력, 독해와 어휘력 수리 능력 : 업무 처리를 위한 기본적인 연산 능력과 다양한 데이터를 분석할 수 있는 능력, 자료해석과 응용 계산(논리력, 사고력) 추리 능력 : 업무를 수행하는데 필요한 논리적 사고 능력, 수/도형/도식/언어/어휘추리(추론, 예측) 공간지각 능력 : 사물을 인지하는 순발력과 인지 능력 및 오류 판별 능력, 퍼즐/펀칭 및 자르기/도형 조합/도면 분석/도형 비교/큐브/전개도/회전 상식 능력 혹은 직무역량 : 원활한 조직 생활과 비즈니스를 수행하기 위한 기본적인 기초 상식 능력, 전공지식(경영 및 경제/과학 및 공학), 일반상식(한국사/한자) 인성 : 원활한 조직생활 가능여부, 인재상 부합 여부, 상황판단, 성격병리검증, 정서역량, 컴스타일, MBTI 등 주요 기업 직무적성검사 특징 - 삼성 전체적으로 개편(검사 및 영역 명칭 변경) 영역별 과락 존재, 계열 구분 없이 동일한 내용

암호알고리즘 개요 [내부링크]

Q. 인증서 폐지 목록이 무한정 커지지 않는 이유는? A. 인증서폐지목록은 bad-list를 기반으로 작성되어 유효기간은 만료되지 않았지만 폐지된 인증서 목록이 저장됩니다. 따라서 폐지된 인증서 중에 유효기간이 지난 인증서는 삭제되기 때문에 인증서폐지목록이 무한정 커지지는 않습니다. Q. 중재 서명방식을 대신해 블록체인 기술을 사용하는 방법은? A. 전자 서명은 자신만이 서명키를 사용하기 때문에 강력한 부인방지 기능을 제공합니다. 하지만 서명키의 분실/도난의 위험 때문에 중재자와 프로토콜을 수행하여 서명하는 중재 서명 방식을 사용을 하고 있습니다. 첨가만 가능한 분산 데이터베이스를 제공하는 블록체인을 이용하는 경우에도 삭제가 불가능하므로 부인방지가 가능할 것입니다. 따라서 저장된 서명키를 노출시키지 않는 것이 보장된다면 중재 서명 방식을 대신해 사용해도 될 것이라고 생각됩니다. Q. 영문 문자 매핑 테이블(A->C, B->N, ...)을 이용한 암호화 방식에서 1) 가능한 키의 개수

MFC를 이용한 영상신호처리 프로그램 작성 및 OpenCV4.0 설치 [내부링크]

1. 애플리케이션 마법사(AppWizard)를 이용하여 영상처리 MFC 프로젝트를 만들기 Visual Studio를 이용해서 MFC 프로젝트를 직접 생성해보고 실행한 결과 아래와 같이 실행화면이 나타났습니다. 2. 영상파일로부터 영상데이터를 읽고, 처리하고, 출력하기 위한 프로그램을 작성해 보기 영상파일을 처리하기 위한 저장용 멤버변수를 아래와 같이 추가하였습니다. 포인터 변수 2개와 크기를 담을 int형 변수 두 개를 MFC_Exp01View.h에 선언했습니다. 그리고 멤버변수에 입력영상을 저장해주는 Serialize함수를 MFC_Exp01Doc.cpp에 구현하였습니다. 실습 내용에 있는 코드를 별다른 수정 없이 사용하였습니다. 다음으로 영상화면 출력을 위한 onDraw함수를 MFC_Exp01View.cpp에 구현하였습니다. 마찬가지로 실습 내용에 있는 코드를 사용하였습니다. 프로그램을 실행하여 파일을 읽을 수 있었습니다. lena.bmp와 barbara.bmp 파일을 아래처럼 출

암호프로토콜 개요 [내부링크]

암호프로토콜: 어떤 목적을 달성하기 위해 두 명 이상의 참여자가 정해진 약속에 따라 수행하는 일련의 단계 Q. 아래에서 A가 NA를 통해 무엇의 최근성을 확인할 수 있는지? A. 메시지에 바인딩 된 키KAB의 최근성이 아니라 Nonce가 포함된 메시지 자체인 {B || NA || KAB}의 최근성을 확인할 수 있다. Q. 전자선거 시스템이 갖추어야 하는 보안 요구사항? A. 다음과 같은 요구사항들을 생각해 볼 수 있다. - 투표자는 오직 한 번만 투표할 수 있어야 한다. - 투표자는 여러 후보자 중에서 한 후보자만 투표할 수 있다. - 투표에 대한 비밀이 보장되어야 한다. - 투표 집계가 정확해야 한다. - 투표자의 표가 제3자에 의해서 위조되어서는 안 된다. - 투표자가 투표가 가능한 신원인지 확인되어야 한다. 등이 있다.

네트워크 프로그래밍 echo 예제, UDP 기반 서버/클라이언트 및 도메인 이름과 인터넷 주소 [내부링크]

vmware 또는 virtual box 로 리눅스 환경 설정 및 gcc 컴파일 환경 설정하기 아래처럼 vmware를 통해 리눅스 환경을 설정했고 간단한 gcc 컴파일을 해보았습니다. UDP 기반 서버/클라이언트 - TCP의 Stream Socket, UDP의 Datagram Socket, IP에서 바로 거치는 Raw Socekt이 있다. - UDP 소켓 SEQ, ACK와 같은 메시지 전달을 하지 않는다.. 연결의 설정과 해제 과정이 없다. 데이터의 분실 및 손실 위험이 있다. 확인 과정이 없기 때문에 데이터의 전송이 빠르다. 안전성보다 성능이 중요시 될 때 사용한다. - UDP 데이터 송수신 TCP는 1대 1의 연결을 필요로 하지만 UDP는 연결의 개념이 없다. 서버 소켓과 클라이언트 소켓의 구분이 없다. 연결의 개념이 없으므로 하나의 소켓으로 둘 이상의 영역과 데이터 송수신이 가능하다. - 통신 과정 Server : Create socekt -> Bind socekt -> Rece

히스토그램을 이용한 영상처리 실습(MFC, OpenCV) [내부링크]

입력영상의 밝기분포 정보를 알 수 있는 히스토그램을 계산해서 출력화면에 나타내기 MFC 프로젝트에 메뉴를 설정하고 이벤트 핸들러를 추가했습니다. 먼저 히스토그램을 출력하는 코드입니다. 1번에서 해당하는 이미지의 픽셀 값을 hist라는 배열에 저장합니다. 그리고 2번에서 hist배열에서 가장 많이 저장된 값을 찾습니다. 3번에서는 출력화면을 초기화하여 준비하는 것이고 4번에서 hist에 저장된 값을 3번에서 준비했던 m_OutImage에 출력합니다. x축은 픽셀이 가질 수 있는 최댓값인 255까지이며 y축도 이에 비율을 맞추기 위해 2번에서 hist의 최댓값을 찾아 비율을 맞춘 것입니다. 수행결과 아래처럼 히스토그램이 잘 나타났습니다. 입력영상을 전역적으로 이진화(binarize)해 보자. 히스토그램을 보고 직접 임의의 임계값(threshold)을 직접 입력하여 영상을 이진화해 보기 다음은 이진화입니다. 이진화를 위해 임계값을 저장할 m_Threshold를 멤버변수로 추가하였습니다.

Strategic IT Trends, 주목해야 할 기술 키워드 [내부링크]

Strategic IT Trends 2020 (2020년 정보이다..ㅎㅎ) - 10가지 기술 : People-Centric – Hyperautomation, Multiexperience, Democratization, Human Augmentation, Transparency and Traceability / Smart Spaces – Empowered Edge, Distributed Cloud, Autonomous Things, Practical Blockchain, AI Security - 전략 기술의 수용 : 전략적 추세를 지속적인 운영과 지속적인 혁신에 적용할 지 고려한다. 이는 애자일 마인드 셋과 일치한다. 초자동화(Hyperautomation) 다수의 머신러닝, 패키징 된 소프트웨어, 자둥화 툴을 결합시켜 업무를 수행하는 것이다. 자동화의 범위가 변경되고 도구 활용의 다양성이 높아진다. 애자일을 위한 아키텍처가 필요한데 이 아키텍처는 자동화가 필요하다. - 불필요한 일이

공공기관 채용프로세스 분석 및 취업전략 [내부링크]

공공기관 채용프로세스 분석 및 취업전략 - 공무원과 공공기관은 다른 것이다. - 한 번 공공기관이어도 나중에 공공기관이 아니게 될 수도 있다. - 공공기관에서 인턴을 하면 공공기관 정규직 지원 시 가산점이 되는 경우도 있고 아닌 경우도 있다. - 블라인드 채용은 정말 다 가린다. - 공공기관 지원 시 자기소개서도 중요하다. 공공기관 채용의 이해 및 트렌드 파악 - 우리나라 공공기관 수는 340개 정도이다. - “알리오” 사이트에서 공공기관 정보를 얻을 수 있다. (www.alio.go.kr) - 공공기관 사이트에서 채용정보를 비롯한 여러 정보를 얻을 수 있다. (한국전자통신연구원) - 알리오플러스에서 공공기관 관련 대외활동을 볼 수 있다. - 2020 공공기관 채용 트렌드 채용 인원 증가 가능성이 높아졌다. 블라인드 채용이 더욱 강화되었고 서류 전형으로 적부를 판단한다. 직무 적합도가 강화되고 있다. 필기시험에서 전공 시험이 추가되고 있다. 면접이 어려워지고 있다. (발표, 토론,

TCP 기반 서버 / 클라이언트 통신 코드 예제, 네트워크 코딩 [내부링크]

TCP 기반 서버 / 클라이언트 - 계층 : APPLICATION 계층 – TCP 계층 / UDP 계층 – IP 계층 – LINK 계층 계층화를 통해 문제를 작게 나눈다. 7계층으로 세분화 되며 4계층으로도 표현한다. - LINK 계층은 물리적인 영역, IP 계층은 어떤 라우터를 사용할지 결정하는 기능을 한다. - TCP / UDP 계층 실제 데이터 송수신, 전송(Transport)을 하는 계층이다. TCP는 데이터의 전송을 보장하고 UDP는 보장하지 않는 프로토콜이다. TCP는 확인의 과정을 거치기 때문에 신뢰를 보장해준다. 따라서 UDP에 비해 복잡하다. - APPLICATION 계층 응용프로그램의 프로토콜을 구성한다. 소켓을 기반으로 완성한다. LINK, IP, TCP/UDP 계층에 대한 내용을 알 필요가 없다. 응용 프로그래머는 APPLICATION 계층 완성에 집중하면 된다. - Server 사이드에서 계속 새로운 소켓을 만들어서 여러 Client를 연결한다. Server

TCP 기반 서버 / 클라이언트 통신 코드 예제 2(TCP Iterative echo 해결하기), 네트워크 코딩 [내부링크]

앞의 글과 내용이 연결됩니다. https://blog.naver.com/easeon11/222277871744 TCP 기반 서버 / 클라이언트 통신 코드 예제 TCP 기반 서버 / 클라이언트- 계층 : APPLICATION 계층 – TCP 계층 / UDP 계층 – I... blog.naver.com 해당 글은 TCP Iterative echo 해결 방법에 대해 다룹니다. 그리고 네트워크를 이용해 구현한 계산기 코드 예제가 있습니다. TCP 기반 서버 / 클라이언트 - 연결지향형 소켓 TCP는 전송되는 데이터의 경계가 없다. - 에코 클라이언트의 문제점 서버에서는 read하는 수만큼 write를 해준다. 클라이언트에서 네트워크나 버퍼 등의 문제로 데이터를 못 받을 수도 있기 때문에 클라이언트가 서버에 보낸 데이터 길이가 받은 데이터 보다 작을 때까지 read를 하도록 하면 문제를 해결할 수 있다. - 서버 클라이언트 사이에서 데이터 송수신 명세가 프로토콜이다. 어플리케이션을 설계할 때

TCP/IP 소켓 프로그래밍 윈도우 기반으로 구현하기 예제 코드 포함 [내부링크]

TCP/IP 소켓 프로그래밍 윈도우 기반으로 구현하기 - 윈도우 소켓을 위한 헤더와 라이브러리의 설정 헤더파일 winsock2.h을 포함한다. ws2_32.lib 라이브러리를 링크한다. - 윈도우 기반으로 변경할 때 필요한 것 Windows Socket API(WSA) requred 자료형과 변수의 이름을 윈도우 스타일로 변경해야 한다. 데이터 송수신을 위해서 read, write 함수 대신 recv, send 함수 호출해야 한다. - 윈속의 초기화 int WSAStartup(WORD wVersionRequested, LPWSADATA, lpwSAData); 윈속의 초기화란 윈속 함수호출을 위한 라이브러리의 메모리 LOAD를 의미한다. 윈속 라이브러리의 해제 : int WSACleanup(void); - SOCKET socket(int af, itn type, int protocol); 리눅스의 socket 함수에 대응한다. 리눅스의 파일 디스크립터에 해당하는 것을 윈도우에서는 핸들

기계학습과 인공지능 [내부링크]

기계학습과 인공지능 - 인터넷 플랫폼이 발전되면서 인공지능이 적용된 인터넷 플랫폼이 등장할 수 있다. - 특히 무선 플랫폼에서는 에너지 관리가 중요하다. - 강 인공지능 인간이 가진 특별함이란 무엇인지 생각해 보아야 한다. 예를 들면 감정이 있는데 사실 이 감정도 호르몬의 변화에 따른 하나의 현상이다. 이 외에도 지능, 영혼 등 여러 가지가 있는데 이러한 특별한 것을 인공지능을 통해 구현할 수 있을 것이라는 이야기가 나오고 있다. - 튜링 테스트 앨런 튜링이 제안하였다. 인공지능에게 아무 질문이나 할 수 있다. 컴퓨터로부터의 반응을 보고 인간과 구분할 수 없다면 컴퓨터는 사고를 하고 있는 것이다. - 중국어방의 역설 중국어를 전혀 할 줄 모르는 미국인이 방 안에 있다. 밖의 중국인이 중국어로 질문을 중국어방에 던지고 미국인은 중국어 사전을 이용해 해석해서 답을 준다. 밖의 중국인이 대답을 확인했을 때 별다른 이상이 없었다. “그렇다면 중국어방에 있는 미국인은 지능이 있는 것인가?”라

컨볼루션 마스크를 이용한 영상 영역처리 실습, 필터와 가우시안 스무딩 [내부링크]

[저역통과필터] 실습 내용의 필터들을 영상처리 부메뉴에 추가하여 이벤트 핸들러를 설정 후 구현하였습니다. 먼저 저역통과필터 코드입니다. 저역통과 마스크는 아래와 같습니다. 해당 마스크를 영상에 적용하였는데 2중 for문으로 화소 하나하나에 접근하고 한 화소의 자신을 포함한 8방향의 밝기값을 모두 더하도록 2중 for문을 또 사용했습니다. 마지막에 더한 밝기값을 평균 내어 출력 영상으로 지정합니다. 영상의 최외각은 별다른 처리 없이 그대로 출력하였습니다. 아래는 실행결과입니다. 영상이 조금 흐릿해진 것을 볼 수 있었습니다. [고역통과필터] 저역통과필터와 반대의 효과를 내는 고역통과필터입니다. 마스크만 다르고 처리하는 부분은 저역통과필터와 유사합니다. 마스크는 아래와 같습니다. 나중에 출력 시 출력 화소값을 매핑하기 위해 최댓값과 최솟값을 구하는 부분이 있습니다. 먼저 위 결과를 그대로 출력하면 아래와 같습니다. 영상의 화소값이 0보다 작거나 255보다 큰 경우가 발생하기 때문에 출력이

암호프로토콜 기초 설계 기법 [내부링크]

Q. 128bit 블록 방식의 대칭 암호알고리즘을 이용하여 키 K로 A||KAB||padding을 ECB 모드를 사용하여 암호화하였다고 하자. 여기서 A는 32bit, KAB는 128bit이다. 수신자는 이 메시지의 내부 형태를 알고 있다고 가정하고, 채우기는 표준 채우기 이용하였다고 하자. 즉, 채워야 하는 12byte의 각 바이트를 12값으로 채웠다고 하자. 수신자가 K로 복호화하였을 때 2개의 블록에 대해 무엇을 확신할 수 있는가? A. 수신자는 여분 정보를 통해 해당 메시지가 올바르게 복호화 되었는지 확인할 수 있습니다. 수신자가 알고 있던 식별자 A와 복호화 후 확인되는 A가 동일하다면 복호화가 성공하였다고 확신할 수 있습니다. 다만 KAB에 대해서는 어떠한 확신을 할 수 없기 때문에 신뢰가 필요합니다. Q. 인증 암호화를 사용하면 명백한 여분 정보의 포함이 필요 없는 것인지 논하시오. 이를 위해 다음에서 C = {M}.K1, MAC.K2(C) C가 K1으로 암호화된 데이터

TCP/IP 소켓 프로그래밍 윈도우 기반으로 구현하기, 소스 코드 포함 [내부링크]

TCP/IP 소켓 프로그래밍 윈도우 기반으로 구현하기 - 윈도우 소켓을 위한 헤더와 라이브러리의 설정 헤더파일 winsock2.h을 포함한다. ws2_32.lib 라이브러리를 링크한다. - 윈도우 기반으로 변경할 때 필요한 것 Windows Socket API(WSA) requred 자료형과 변수의 이름을 윈도우 스타일로 변경해야 한다. 데이터 송수신을 위해서 read, write 함수 대신 recv, send 함수 호출해야 한다. - 윈속의 초기화 int WSAStartup(WORD wVersionRequested, LPWSADATA, lpwSAData); 윈속의 초기화란 윈속 함수호출을 위한 라이브러리의 메모리 LOAD를 의미한다. 윈속 라이브러리의 해제 : int WSACleanup(void); - SOCKET socket(int af, itn type, int protocol); 리눅스의 socket 함수에 대응한다. 리눅스의 파일 디스크립터에 해당하는 것을 윈도우에서는 핸들

IOS 앱 만들기, 다크모드에서 라벨 색상 설정하기 [내부링크]

먼저 Xcode에서 다크 모드를 설정하려면, 앱을 실행한 후 아래와 같은 버튼을 찾아 클릭하면 됩니다. 그리고 Interface Style에서 Dark를 골라주면 됩니다. 그러면 앱이 바로 다크모드가 되는데, 여기서 주의 깊게 봐야할 것은 텍스트의 색상입니다. 지금까지는 텍스트의 색상을 기본으로만 사용했기 때문에 큰 이상이 없습니다. 그래서 스토리보드에서 날짜를 나타내는 라벨의 색깔을 일부러 바꿔보았습니다. 만약 검은색에 가까운 회색 이었다면 아래처럼 다크 모드에서 가독성이 좋지 않습니다. 그래서 다크모드에서 텍스트들의 색깔을 조정하는 방법을 알아야 합니다. 우선 다크모드로 진행을 할 것이기 때문에 앱의 설정에서 다크 모드를 켜줍시다. 기본적으로 Xcode에서 다크모드일 때 색을 자동으로 조정해주는 컬러들이 있습니다. 색상 앞에 Secondary나 System이 붙은 것들이 그러한데, 이것을 이용해 텍스트 색을 설정하면 편리합니다. Secondary Label Color로 설정하고

에지검출 알고리즘, 컴퓨터 비전 실습 [내부링크]

[Prewitt 에지검출] Prewitt 마스크를 이용해 경계선을 검출하는 실습이다. 코드는 아래와 같다. 마스크를 설정해주고 블록단위로 처리를 해준다. 에지강도를 위한 변수를 구하기 위해 루트안에 x, y의 제곱을 더하는 방법 1과 x와 y의 절대값을 더하는 방법 2가 있다. 그 후 클리핑을 한 뒤 임계값에 따라서 이진화를 해준다. 먼저 임계값을 50으로 설정하고 클리핑 처리를 하지 않은 것과 클리핑 처리를 한 실행화면이다. 화소의 최솟값과 최댓값을 크게 벗어나지 않아서인지 큰 차이가 없다. 다음은 임계값을 130으로 설정한 결과이다. 선이 깔끔하게 나오지만 에지 검출을 하지 못하는 부분도 발생했다. 이번에는 방법 2에 대해서 임계값을 50과 130으로 설정한 결과이다. 약간의 차이가 있긴 하지만 거의 비슷하다. [Sobel 에지검출] 다음은 4방향에 좀 더 가중치를 준 Sobel마스크를 이용한 에지검출이다. 아래는 코드이다. 마스크의 값만 다를 뿐 Prewitt 에지검출과 동일하

중견기업 이해를 통한 취업포트폴리오 구축 [내부링크]

중견기업에 대한 이해 및 탐색 - 내가 지원하는 기업이 어디에 속한 기업인지 알고 지원하는 것이 좋다. - 생활 속에 밀접한 여러 기업들 중 중견기업과 제품을 구별 할 수 있는가? - 기업의 분류 스타트업, 중소기업(자본규모 5000억 미만), 중견기업(자산규모 5000억~10조 미만 / 공시대상기업집단 – 자산규모 5조 이상), 대기업 – 상호출자제한기업집단(자산규모 10조 이상) - 국내 최대 농식품 기업 하림그룹 2014년까지 중견기업 하림은 팬오션 인수 후 총자산 10조를 넘어 재계순위 30위권 대기업 도약 국내에 59개사, 해외에 38개사 등 총 97개의 계열사를 보유 - 기업의 분류와 관련 법률 중소기업 – 중소기업기본법 중견기업 – 중견기업 성장 촉진 및 경쟁력 강화에 관한 특별법(중소기업이 아닐 것, 상호출자제한기업집단에 속하지 아니할 것, 외국계기업이 아닐 것, 공공기관이 아닐 것, 금융 및 보험업 영위하지 않을 것) 대기업 – 독점규제 및 공정화에 관한 법률 공공기

Xcode swift 코딩하기, iPhone 앱을 iPad 앱으로 지원 [내부링크]

(KxCoding의 강의를 따라하며 공부한 내용을 기록한 것입니다.) 일반적으로 아이폰을 기준으로 앱을 만들어도 Xcode는 Universal을 지원하기 때문에 아이패드에도 문제 없이 실행이 가능합니다. 아이폰을 기준으로 만들었던 메모앱을 아이패드에 실행해보았습니다. 실행이 잘 되고 메모 작성 기능도 동일하게 동작합니다. 메모 생성도 문제가 없습니다. 다만 오른쪽 아래에 공유 버튼을 누르면 충돌이 발생합니다. 잠시 실행을 멈추고 아이폰에서 다시 확인해보면, 문제가 없습니다. 원인은 Form Sheet을 그대로 출력하기에 아이패드에서는 화면이 커서 문제가 발생한 것입니다. @IBAction func share(_ sender: UIBarButtonItem) { guard let memo = memo?.content else { return } let vc = UIActivityViewController(activityItems: [memo], applicationActivities:

Xcode 개발자 계정 없이 아이폰에서 테스트하기 [내부링크]

원래 애플에서 앱을 배포하기 위해서는 개발자 계정이 필요합니다. 그런데 애플 개발자 등록은 유료입니다. 연회비 약 129000원 정도라고 하더군요. 우선은 간단한 테스트만 하고 싶어서, 개발자 계정 없이 아이폰에서 테스트를 하는 방법입니다. 간단합니다. Xcode -> Preference -> Accounts에서 일반 애플 계정을 등록한 후 아이폰과 맥북을 연결하고 빌드를 해주시면 됩니다. JsMemo라는 앱과 기능 실행도 잘 되는 것을 볼 수 있습니다. 간혹 빌드가 제대로 안 되는 에러가 나는 경우가 있는데, Xcode와 아이폰의 버전이 일치하지 않아서 그렇습니다. 이를 해결하려면 맥의 앱스토어에서 Xcode의 최신 버전을 설치해주고, 아이폰의 버전도 최신으로 업그레이드 해주시면 됩니다. 그리고 앱을 첫 실행하면 신뢰의 문제가 있다며 실행되지 않는데, 설정 -> 일반 -> 프로파일 및 기기 관리에서 해당 앱의 신뢰를 허용해주시면 됩니다. 한 가지 팁으로 Xcode에서 Window

네트워크 프로그래밍, 소켓의 다양한 옵션(우아한 종료) [내부링크]

네트워크 프로그래밍, 소켓의 다양한 옵션 - 다양한 소켓의 옵션 소켓의 특성을 변경시킬 때 사용하는 옵션 정보는 계층별로 분류된다. IPPROTO_IP 레벨의 옵션 : IPㅍ프로토콜에 관련된 사항들 IPPROTO_TCP 레벨의 옵션 : TCP 프로토콜에 관련된 사항들 SOL_SOCKET 레벨의 옵션 : 소켓에 대한 가장 일반적인 옵션들 Get과 Set이 있는데 Set이 없는 경우가 있다. 리턴되는 데이터 타입이 여러 개가 존재한다. - 옵션정보의 참조에 사용되는 함수 int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen); level : Protocol Level optname : Option Name 해당 옵션의 등록 정보를 얻어온다. - 옵션정보의 설정에 사용되는 함수 int setsockopt(int sock, int level, int optname, const void *optval,

신림동 고시촌 벚꽃 사진, 경치 좋은 전망대 ㅎㅎ [내부링크]

신림동 고시촌, 관악산 중턱에 있고 고시 공부를 하는 사람이 모여 있어서 고시촌이라고 불린다. 원룸과 고시원이 많은 위치를 벗어나서 조금만 더 올라가면 전망 좋은 쉼터가 있다. 위치는 지도 상에서 대략 아래쯤? http://naver.me/x50ZalwM 네이버 지도 - 파노라마 관악구 신림동 naver.me 오랜만에 dslr 테스트를 위해 사진 찍으로 가보았다. 4월 초, 슬슬 벚꽃이 질 타이밍인데 산에 위치해서 지금 완전 만개한 상태이다. 벚꽃과 어우러지는 건물들 경치가 좋다. 누가 떨어진 벚꽃으로 하트를 만들어놨다. 관악산과 연결되어 있는 듯하다. 전 날 비가오기도 했고, 날씨가 좀 흐렸다. 가로수와 벚꽃. 그리고 이 공간을 2017년도에도 방문한 적이 있어서 구글포토를 뒤져서 이전에 찍었던 사진을 찾았다. 필터를 씌운 사진인데, 노을 분위기를 더 잘 살린 것 같다. 삼각대까지 설치해서 제대로 아경을 찍었었다. 간간히 바람쐬러 가면 좋은 곳이다 ㅎㅎ

키 확립 프로토콜 개요 [내부링크]

키 확립 프로토콜: 말 그대로, 암호 프로토콜 간의 키(대칭키, 공개키 등)를 확립하기 위한 절차를 말한다. 키를 교환할 때, 이러한 절차가 없다면 키가 노출될 위험이 있기 때문에 필요하다. Q. 다음과 같은 하나의 메시지를 이용하는 키 확립 프로토콜이 제시되어 있다. 이 프로토콜을 사용하기 위한 전제 조건은 무엇이며, 이 메시지를 받은 Bob이 해야 할 일은 무엇인지 구체적으로 서술하시오. 키 확립 프로토콜 메시지는 아래이다. A가 송신자 Alice, B가 수신자 Bob이다. A → B : C = {M}.K1, MAC.K2(C), {TA||K}.+KB A. 먼저 전제 조건은 공개키를 사용하기 위해 공개키 기반 구조가 잘 구축되어 있어야하며 Alice가 Bob의 공개키를 알고 있어야 한다. 메시지를 받은 Bob은 자신의 개인키로 {TA||K}.+KB를 복호화하여 랜덤한 키 K를 알아낸다. 이 K를 이용해 K1과 K2를 알아낼 수 있다. K2를 이용해 MAC.K2(C)을 복호화하면 {

암호 프로토콜 공격 방법 [내부링크]

암호 프로토콜 공격 방법을 배우는 이유는 물론, 공격(해킹)을 하기 위해서가 아니라 지금까지 있었던 공격 방법들을 배우고 잘 방어하기 위함이다. Q. 아래에 제시된 프로토콜은 방향과 상관없이 KAB를 이용한다. 만약 각 방향마다 다른 키를 사용하면 그림 5.2에 제시된 공격이 가능한지 논하시오. Msg 1. A → B : A, {NA}.KAB Msg 2. B → A : {NB}.KAB, NA Msg 3. A → B : NB A. 위에 대해서 재전송 공격을 하면 아래와 같다. Msg 1. A → B : A, {NA}.KAB Msg 1’. C → A : B, {NA}.KAB Msg 2’. A → B : {N‘A}.KAB, NA Msg 2. C → A : {N‘A}.KAB, NA Msg 3. A → B : N‘A Msg 3’. C → A : N‘A 해당 프로토콜에 대해서 방향마다 다른 KAB를 사용하여 A가 B에게 전송할 때는 KAB, B가 A에게 전송할 때는 K‘AB를 사용했다고 하면

AI로 시작하는 새로운 세상 - 4차 산업혁명, 인공지능, 데이터 사이언스 [내부링크]

AI로 시작하는 새로운 세상 - 앨런 튜링 노벨 컴퓨터상과 같은 상으로 튜런상이 있다. 영국의 50파운드 지폐로 등장할 정도로 위대한 업적을 남겼다. 4차 산업혁명 - 매슬로우 5단계 욕구 이론(5->1) – 자아실현의 욕구 / 존경의 욕구 / 애정의 욕구 / 안전의 욕구 / 생리적 욕구 4차 산업혁명이 되면서 아래 2단계(WiFi / Battery)가 추가 되었다... - 미래를 위해 꼭 갖춰야 할 능력 10가지, 가치가 올라가는 능력 1. 분석적 사고와 혁신 2. 능동적 학습과 학습 전략 3. 창의성, 독창성, 추진력 4. 기술 디자인과 프로그래밍 5. 비판적 사고와 분석 6. 복잡 문제 해결 능력 7. 리더십과 사회적 영향력 8. 감정 지능 9. 추론, 문제 해결과 추상화 10. 시스템 분석과 평가 - 구글 어시스턴트 : 진짜 사람처럼 말하는 AI / 삼성 네온 : 진짜 사람 같은 인공인간, 배우가 없어질 수도 있다. - 1차 산업혁명 : 증기기관 / 2차 산업혁명 : 전기 동

컴퓨터 비전 기하학적 변환 영상처리 실습(MFC, OpenCV) [내부링크]

1. 역방향 사상 및 가장 인접한 이웃 화소 보간법을 이용하여 입력 영상을 1.6배 확대해 보자. 가장 인접한 이웃 화소 보간법을 이용해서 영상을 확대하는 코드입니다. void CMFC_Exp01Doc::OnZoomin() { // 영상 확대 // TODO: 여기에 명령 처리기 코드를 추가합니다. double scale = 1.6; // 영상을 1.6배 확대 int X_max = (int)(512 * scale); // 확대된 영상의 새로운 폭 계산 int Y_max = (int)(512 * scale); // 확대된 영상의 새로운 높이 계산 double x, y; // 역방향 사상된 좌표의 분수값 int x_org, y_org; // 역방향 사상된 정수 좌표값 unsigned char* ZoomImage; ZoomImage = new unsigned char[Y_max * X_max]; // 확대된 영상을 임시로 저장할 공간 동적할당 for (int y_new = 0; y_new

Blocking I/O Problem, IO 멀티플렉싱 [내부링크]

Blocking I/O Problem, IO 멀티플렉싱 - Bloking I/O 문제점 Continual echo server : 새로운 클라이언트가 오랜 시간 혹은 영원히 기다리는 문제가 있을 수 있다. Chatting server : 순서대로 진행되어 먼저 접속한 클라이언트가 앞의 진행이 끝날 때까지 기다려야하는 문제가 있을 수 있다. - Blocking I/O mode 소켓의 기본 모드이다. 네트워크 프로그램에서는 기본적으로 블로킹모드의 I/O 방식을 이용한다. 블로킹 현상은 각종 입출력함수에서 발생할 수 있으며 시스템 또는 네트워크의 어떤 조건이 만족할 때까지 기다리게 된다. - Blocking functions accept() : 커넥션이 들어올 때까지 기다린다. recv(), recvfrom() : 패킷(데이터)가 받아질 때까지 기다린다. connect() : 커넥션이 연결 될 때까지 기다린다. send(), sendto() : 데이터가 소켓의 버퍼에 들어갈 때까지 기다린

Contact Tracing이란? [내부링크]

Contact Tracing이란? 애플과 구글이 공동으로 개발 코로나바이러스는 감염된 후에 증상이 바로 나타나지 않고 잠복기가 있어서 감염이 된 사람이 자신이 감염된 줄 모르고 다른 사람에게 전염을 시킬 수 있는 위험이 있다. 따라서 자신도 모르게 코로나바이러스감염자와 접촉된 사실이 있는지 추적할 수 있는 시스템이 필요한데 휴대폰 블루투스를 기반으로 이를 구현한 것이 contact tracing이다. 사용자는 휴대폰 블루투스를 이용해 일정거리 이내 주변의 다른 사용자 휴대폰과 키 코드를 교환하여 서로 접촉한 사실을 기록한다. 여기서 교환하는 키 코드는 사용자 장치의 고유 ID로부터 구해진 랜덤한 임시 ID로 일정 시간마다 그 값이 변한다. 만약 한 사용자가가 코로나 증상이 발견되면 해당 사용자의 키 코드를 중앙 데이터베이스로 보낸다. 그리고 사용자들의 휴대폰은 정기적으로 중앙 데이터베이스를 검사하여 자신의 접촉자중 코로나바이러스감염자가 있는지 확인하게 된다. 중앙 데이터베이스는 감염

형태학적(모폴로지) 처리 실습, 영상 처리(MFC, OpenCV) [내부링크]

형태학적(모폴로지) 처리 실습 1. 이진 모폴로지 연산을 실제로 구현해보자. 먼저 팽창 연산코드이다. void CMFC_Exp01Doc::OnBindilate() { // 팽창 연산 // TODO: 여기에 명령 처리기 코드를 추가합니다. for (int y = 1; y < height; y++) { // x, y 주변의 화소를 검사 for (int x = 1; x < width; x++) { bool found = false; for (int by = y - 1; by <= y + 1; by++) { for (int bx = x - 1; bx <= x + 1; bx++) { if (m_InImage[by*width + bx] > 0) { // 하나라도 0보다 크면 반복을 중단 found = true; break; } } if (found == true) { break; } } if (found == true) { // 주변에서 화소를 하나라도 발견한 경우 m_OutImage[y*wi

Windows에서의 쓰레드(Critical Section, Mutex) 사용 및 동기화 코드 예시 - 네트워크, C, Visual Studio [내부링크]

IO 멀티플렉싱(윈도우 기반) - int select(int maxfd, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timeval *timeout); fd_set 구조체의 SOCKET fd_array로 핸들을 설정하기 때문에 maxfd는 따로 신경 안 써도 된다. FD_ISSET(), FD_SET(), FD_CLR()은 그대로 사용한다. fd_set setting -> select calling -> fd_set checking Windows에서의 쓰레드 사용 - 운영체제가 만드는 리소스의 유형 프로그램의 실행과 관련된 프로세스와 쓰레드 입출력의 도구가 되는 소켓과 파일 쓰레드간 동기화의 도구로 사용되는 세마포어 뮤텍스 - 리소스와 커널 오브젝트의 관계 리소스 관리를 위해서는 운영체제가 만드는 데이터 블록이 커널 오브젝트이다. 커널 오브젝트에는 해당 리소스의 정보가 저장되어 있다. 리소스의 종류에 따라서 생

4차 산업혁명시대 기업이 원하는 신입사원 [내부링크]

기업 채용 Trend, 면접관의 생생한 Tip, 기업의 핵심인재 - 기업이 요구하는 인재상의 변화 환경이 바뀌면 변화하는 환경에 적합한 인재의 모습도 변화 강한 애사심, 농업적 근면성의 산업화 시대 인재상에서 정보화 사회, 창조화 시대의 인재상은 상식과 기존의 틀을 깨는, 지적창의력과 자기분야에 대한 전문성이 필요 - 변화대응, 모험심, 도전정신, 상식과 기존 틀을 깨는 창조적 Global 인재가 필요 학점, 학력, 학벌 등 외형적 요소를 중시하던 과거에서 현재는 거대한 정보의 바다에서 지식을 캐내어 능동적 창의적으로 문제를 해결하는 인재가 필요하다. 원만한 대인관계, 올바른 가치관, 원만한 외국어 구사능력을 갖춰야 한다. 기업은 자기 완결형의 문제해결 능력이 있는 사람을 원한다. - 기업 Process의 핵심 창의성 : 부가가치 창출, 차별화 전문성 : 깊고 넓게 T형, 천재인력 다양성 : 국제화, convergence 끈기, 열정, 팀웍 : Human Network - 여러 기업

컴퓨터 비전, 블록매칭알고리즘 실습 MAD, MSE, Template matching (MFC,OpenCV) [내부링크]

1. 블록매칭 알고리즘의 유사도 함수 MAD를 이용하여 입력영상에서 템플릿영상과 가장 유사한 영역을 찾아보자. 먼저 raw파일을 로드하기 위해 serialize 함수를 수정해주었다. 그리고 템플릿 영상을 저장하기 위한 변수도 선언해주었다. MAD 매칭을 위한 코드이다. void CMFC_Exp01Doc::OnMad() { // MAD 매칭 // TODO: 여기에 명령 처리기 코드를 추가합니다. CFileDialog dlg(TRUE, _T("레퍼런스 이미지 로드"), NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, _T("40 x 40 raw파일 | *.raw", this)); if (dlg.DoModal() == IDOK) { CString str = dlg.GetPathName(); CFile file; file.Open(str, CFile::modeRead); CArchive ar(&file, CArchive::load); ar.Read(m_Ref

정보보호개론, 암호알고리즘 문제 [내부링크]

Q. 블록 길이가 8바이트인 암호알고리즘을 이용하여 7바이트 메시지를 CBC 모드, PKCS # 7로 암호화하였다고 가정하자. 이 때 결과 암호문이 16진수로 “07 06 05 04 03 02 01 01 08 09 0A 0B 0C 0D 0E 0F”라고 가정 하자. 또한 암호화한 데이터는 모르지만 7바이트이므로 16진수 01이 padding되었을 것이다. 만약 공격자가 IV 중 마지막 두 바이트 “01 01”을 “00 02”로 바꾸었지만 수신자가 복호화하는 과정에서 문제점을 발견하지 못하였다. 그러면 원래 메시지의 7번째 바이트 값을 계산하시오. A. 원래 암호문의 복호화 과정은 아래와 같다. D.K(08 09 0A 0B 0C 0D 0E 0F)⊕(07 06 05 04 03 02 01 01) 원래 평문은 padding되었기 때문에 마지막 바이트는 01이었다. 그렇다면 D.K(08 09 0A 0B 0C 0D 0E 0F)의 마지막 바이트를 XY라 하면 아래처럼 계산되어야 한다. 01 = X

4차 산업 혁명과 블록체인 [내부링크]

4차 산업 혁명과 융합 - 온라인이 되면서 연결 비용이 작아지고 공유가치가 커지고 있다. 블록체인 : 서로 신뢰할 수 없는 환경에서 사람들이 중립적이고 중앙화된 인증기관 없이 신뢰를 보장하는 기술 Smartphone / Mobile / Internet -> Global Trust Computer 블록체인의 탈중앙화가 이루어지고 있다. - 블록체인은 DataTech 시대의 핵심 플랫폼 DT 시대에서는 데이터의 가치가 부각되면서 데이터 통제 및 소유권에 대한 논의가 활발하게 펼쳐지고 있다. DT 시대 데이터 소유권과 통제권을 위한 핵심 플랫폼으로서 블록체인이 최적이다. - 블록체인 기술의 특징과 가치 INTERNET OF VALUE : 디지털과 데이터의 자산화 TRUST NETWORK : 신뢰없는 상대방과 안전한 거래 PROGRAMMABLE EVERYTHING : 프로그램화된 자산, 머니, 프로세스 등 - 실용적인 블록체인의 시대 블록체인의 장점 + 블록체인 앱 + 일반 사용자 + 기업

투자 컨센서스 크롤링을 통해 주식 종목 탐색하기 [내부링크]

최근 주식 투자에 관심이 많은데, 주식에 대해 깊은 지식이 없어서 어떤 종목을 선택해야 할지 고민이 많았다. 그러던 중 데이터에 기반한, 조금은 객관적인 방법으로 종목을 고를 수 있는 방법을 추천 받았다. 바로 투자 컨센서스 크롤링을 통해 주식의 목표 주가를 확인하고, 해당 목표주가와 현재 주가의 괴리율이 큰 종목을 선택하는 것이다. 투자 컨센서스를 곧이 곧대로 믿는 것은 상당히 위험하지만, 종목 추천을 받을 수 있는 객관적인 지표로는 충분하다고 생각되어 한 번 진행해보았다. 과정을 하나하나 설명 후 코드도 첨부할 예정이다. 주식 종목 파악하기 우선 주식 종목을 크롤링 하려면, 어떤 종목들이 있는지 파악해야 한다. 그래서 주식 종목 리스트를 크롤링했다. 크롤링한 사이트는 아래이다. https://www.ktb.co.kr/trading/popup/itemPop.jspx 종목코드조회 : KTB투자증권 종목코드조회 검색어 조회 종목코드조회 결과 데이터 코드 종목명 000020 동화약품 0

영상 처리, 해리스 코너 검출 실습 openCV 및 MFC 구현 [내부링크]

해리스 코너 검출 실습 1. 해리스 코너를 위해 메뉴를 만들고 핸들러를 추가했다. 그리고 Sobel 마스크로 미분영상을 구하는 코드이다. // x-y 방향으로 미분영상 구하기 int maskX[3][3] = { {-1, 0, 1}, {-2, 0, 2}, {-1, 0, 1} }; // soble mask int maskY[3][3] = { {-1, -2, -1}, {0, 0, 0}, {1, 2, 1} }; int dxImage[256][256]; int dyImage[256][256]; for (int y = 1; y < 256 - 1; y++) { // dx 이미지 생성 for (int x = 1; x < 256 - 1; x++) { int value = 0; for (int by = 0; by < 3; by++) { for (int bx = 0; bx < 3; bx++) { value += maskX[by][bx] * m_InImage[(y + by - 1) * width + x

파일 암/복호화(AES) JAVA 코드 [내부링크]

간단한 파일 암호화 및 복호화를 하는 코드이다. 암호알고리즘은 AES GCM모드를 사용하였다. 아래와 같은 라이브러리를 import 해주어야 한다. import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.security.SecureRandom; import javax.crypto.AEADBadTagException; import javax.crypto.Cipher; import javax.crypto.spec.GCMParameterSpec; import javax.crypto.spec.SecretKeySpec; import javafx.application.Application; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene

다자간 키 확립 프로토콜 / 양자난수생성기, 정보보호개론 [내부링크]

다자간 키 확립 프로토콜 여러 사용자 간에 비밀 통신을 하기 위해서는 하나의 암호문을 모두가 동일하게 복호화할 수 있는 키를 공유해야 한다. 이 때 사용자가 2~3명이 아니라 2000명, 3000명 정말 많을 때도 유효한 키 확립 프로토콜을 설계하는 것이 필요하다. 문제를 통해 다자간 키 확립 프로토콜에 대해 알아보자. Q. 현재 논리 트리의 모습이 다음과 같다고 가정하자. LKH, OFT 방식을 각각 사용하여 사용자 1명이 가입하였다고 하자. 이 때, 단말 노드에 가입하는 방식 대신 에 루트 노드에 가입하는 방식을 사용한다고 가정하고, 중앙서버가 분배해야 하는 메시지와 해당 메시지를 유니캐스트로 또는 멀티캐스트로 전달하는지 설명하시오. A. LKH 방식 : 사용자 U5를 루트 노드에 가입시킨다고 하자. 그럼 다음과 같이 가입할 수 있다. 즉 중앙서버는 기존 사용자들에게는 {K15}.K14를 멀티캐스트로 전달해야 하고 새로운 사용자 U5에게는 {K15}.K5를 유니캐스트로 전달해야

컴퓨터 비전, 차선 검출 및 허프 변환 실습 [내부링크]

컴퓨터 비전 차선 검출 및 허프 변환 실습 1. HSV 모델의 영상을 채널별로 추출하는 코드이다. #include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main() { Mat source = imread("color.png"); Mat hsv = Mat(source.size(), CV_8UC3); Mat channel[3]; cvtColor(source, hsv, COLOR_BGR2HSV); split(hsv, channel); imshow("source", source); imshow("hue", channel[0]); // 색상 imshow("sat", channel[1]); // 채도 imshow("val", channel[2]); // 명도 waitKey(0); } 컬러 영상을 색상, 채도, 명도를 나눠서 출력한다. 아래는 실행결과이다. 왼쪽은 원본 오른쪽은 색

다중 접속 채팅 프로그램, 네트워크 프로그래밍 C [내부링크]

C로 작성한 다중 접속 Chatting program이다. chat_server.c 채팅 서버 프로그램의 전체코드이다. #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <arpa/inet.h> #include <sys/socket.h> #include <netinet/in.h> #include <pthread.h> #define BUF_SIZE 100 #define MAX_CLNT 256 void * handle_clnt(void * arg); // 쓰레드가 처리할 함수 void send_msg(char * msg, int len, int clnt_num); // 메시지 전송 함수 void error_handling(char * msg); int clnt_cnt=0; // 클라이언트 소켓이 접속한 수 int clnt_socks[MAX_CLNT]; // 클라이언트 소켓들 저장

네트워크 프로그래밍 - 멀티캐스트 & 브로드캐스트, 입출력 함수 [내부링크]

멀티캐스트 & 브로드캐스트 - Unicast : Class A, B, C Transport TCP and UDP - Broadcast : Hosts all 1’s Transport UDP only - Multicast : Class D Transport UDP only - 멀티캐스트의 데이터 전송방식과 트래픽 이점 멀티캐스트 서버는 특정 멀티캐스트 그룹을 대상으로 데이터를 딱 한번 전송한다. 딱 한번 정송하더라도 그룹에 속하는 클라이언트는 모두 데이터를 수신한다. 멀티캐스트 그룹의 수는 IP주소 범위 내에서 얼마든지 추가 가능하다. 특정 멀티캐스트 그룹으로 전송되는 데이터를 수신하려면 해당 그룹에 가입하면 된다. 멀티캐스트는 연결의 개념이 존재하지 않기 때문에 UDP 소켓을 기반으로 전송된다. - TTL(Time to Live) 패킷을 얼마나 멀리 보낼 것인가를 결정하는 요소이다. TTL은 정수로 표현되며 라우터를 하나 거칠 때마다 1씩 감소한다. TTL이 0이 되면 해당 패킷은 소

차별화된 입사서류 작성법, 자소서 작성팁! [내부링크]

차별화된 입사서류 작성법 자기소개서 - 기본형 자기소개서 항목 지원 동기, 성장 배경 등과 같은 일반적인 항목이 있다. 나와 직무의 교집합이다. (나의 역량, 기업과 직무에서 필요로 하는 역량) 성실함, 꼼꼼함, 열정, 책임감, 긍정적인 태도, 원만한 대인관계, 끈기, 배려 같은 키워드는 너무 자주 등장하는 키워드이다. - 역량기반 자기소개서 항목 구체적인 경험을 바탕으로 쓴다. SK 공채 자기소개서를 참고해서 쓰면 자세한 설명이 있어서 도움이 될 것이다. - 역량 vs 능력 역량은 높은 성과를 나타내는 사람의 특성으로서 지식, 기술, 가치관, 성격 등 다양한 요소를 가지고 있으며 반드시 행동을 통해 나타난다. 역량의 3요소 : 지식, 기술, 태도 역량 사전(행동지표)을 활용하는 것이 좋다. - 사례를 쓸 때는 결과보다 과정을 부각해야 한다. 결과만 부각하면 설득력이 떨어진다. 이력서는 What, 자기소개서는 How, Why를 써야 한다. - 기업이 좋아하는 사례의 4요소(T, P,

카메라 캘리브레이션, 체스보드를 이용한 렌즈 왜곡 보정 실습(openCV python) [내부링크]

체스보드를 이용한 렌즈 왜곡 보정 실습 #include <opencv2/opencv.hpp> int main() { cv::Size boardSize(9, 6); // 보드 크기 float squareSize = 1; // 보드 사각형의 크기 std::vector<cv::Point3f> objectPointsSeed; // 보드 코너의 위치 for (int i = 0; i < boardSize.height; ++i) for (int j = 0; j < boardSize.width; ++j) objectPointsSeed.push_back(cv::Point3f(float(j*squareSize), float(i*squareSize), 0)); std::vector<cv::Mat> images; // 영상 로드 for (int i = 1; i < 14; i++) { char filename[100]; sprintf_s(filename, "images/left%.2d.jpg", i); c

정보보호개론, 특수 암호알고리즘 [내부링크]

특수 암호알고리즘 흔히 아는 대칭키 암호알고리즘, 공개키암호알고리즘, 해시 같은 것이 아닌 특수한 목적으로 만들어진 암호 알고리즘을 문제로 살펴본다. Q. 데이터를 직접 통제할 수 있는 서버에 유지하지 않고 비용을 절감하기 위해 외부 서버에 유지하는 경우가 많아지고 있다. 이를 데이터 아웃소싱이라 한다. 데이터를 아웃소싱할 경우 외부 서버에 대한 신뢰가 매우 중요하다. 하지만 외부 서버를 완전히 신뢰하기 힘들며, 외부업체가 충분히 신뢰할 수 있는 업체라 하여도 그 서버에 접근 권한을 가지고 있는 모든 직원을 신뢰하기는 어렵다. 따라서 데이터를 아웃소싱하였을 때 데이터를 암호화하여 유지하고 싶은 욕구가 많다. 이를 위해 아래에서 제시한 다음 두 가지 방법을 사용한다고 가정하자. 방법 1은 데이터마다 새로운 대칭키를 생성하고 이 키를 공개키로 암호화하여 암호화된 데이터와 함께 유지하는 방법을 말하며, 방법 2는 하나의 대칭키로 모든 데이터를 암호화하고 해당 대칭키를 로컬에 사용자가 안전

소켓과 표준 입출력, 입출력 스트림의 분리에 대해서, select / epoll [내부링크]

소켓과 표준 입출력 - 표준 입출력 함수의 장점 표준 입출력 함수는 이식성이 좋다. (ANSI C 기반의 표준 입출력 함수는 모든 컴파일러에서 지원을 함) 표준 입출력 함수는 버퍼링을 통한 성능의 향상에 도움이 된다. (소켓의 입출력 버퍼 이외의 버퍼를 통해 버퍼링이 됨) - 표준 입출력 함수의 불편사항 양방향 통신이 쉽지 않다. (File 포인터를 대상으로 입출력을 진행하는 경우 입력과 출력이 동시에 진행되게 하는 것은 간단하지 않음) 상황에 따라서 fflush 함수의 호출이 빈번히 등장할 수 있다. 파일 디스크립터를 FILE 구조체의 포인터로 변환해야 한다. (소켓 생성 시 반환되는 것은 파일 디스크립터이지만 표준 C 함수에서 요구하는 것은 FILE 구조체의 포인터이기 때문임) - FILE * fdopen(int fildes, const char * mode); FILE 구조체 포인터로 변환하는 함수이다. - int fileno(FILE * stream); 파일 디스크립터로 변환

마케터의 일, 마케터 뿐만이 아니라 그냥 일을 잘하는 방법 [내부링크]

마케터 뿐만이 그냥 아니라 일을 잘하는 방법 IT 업계에 재직중이지만, 마케터는 아니다. 그렇다고 이 책이 도움이 되지 않는 것은 더욱 아니다. 마케터 이전에 그냥 일을 어떻게 해야 하는지 책에서 잘 설명해주고 있다. 배달의 민족 마케터인 장인성님이 지은 책 "마케터의 일"이다. 마케터의 일 austindistel, 출처 Unsplash 마케터로서 평소에 하는 모든 소비 행동을 주의 깊게 관찰하고, SNS를 통해 시간을 낭비하지 말고 사람들을 관찰해서 기획에 써먹는 것과 같은 조언을 많이해준다. 그 외에 마케터가 아니어도 나에게 필요했던 내용들을 정리하고자 한다. 1. 일을 할 때 항상 "왜" 하는지 물어보자. 일은 혼자하는 것이 아니기 때문에, 주어진 일을 느낀대로 하면 상급자가 원하는 형태의 결과가 나오지 않을 것이다. 왜냐하면 그 일을 하는 목적을 제대로 모르니까. 그렇기 때문에 최종적인 일의 목적을 알고 올바른 형태로 진행하고, 주어진 것을 그대로 하는 것이 아닌 생각하고,

na.omit와 na.rm의 차이점, R 결측치 제거 [내부링크]

R 프로그래밍에서 결측치를 제거하는 두 가지 방법이 있다. 아래 두 코드를 보자. result %>% na.omit() %>% summarize(mean(x)) summarize(result, mean(x, na.rm=TRUE)) 이는 summarize를 이용해서 result에 들어있는 데이터 중 x라는 변수의 평균에 대한 요약 데이터를 가져오는 것이다. 하나는 na.omit을 이용해 결측치를 제외하였고, 다른 하나는 평균을 구할 때 na.rm=TRUE를 주어 결측치를 제외한 것이다. 그런데 두 결과는 같을 수도 있고, 다를 수도 있다. 다른 예시를 살펴보자. result <-data.frame(x=c(1,NA,3),y=c(4,5,4)) # a b #1 1 3 #2 NA 2 #3 5 2 위와 같은 데이터 프레임이 있다고 하자. 컬럼의 평균값을 계산하는 두 가지 방법을 살펴보자. colMeans(result,na.rm=TRUE) # a b #2.000000 4.333333 colMea

사이버보안 침해 사고 사례 및 예방 [내부링크]

사이버보안 침해 사고 사례 및 예방 - 국가보안기술연구소(국보연) : 국가정보보안에 관련된 임무를 수행하는 연구기관으로 보안상 생략 전 세계적으로 다양한 사이버 공격이 있었고 우리나라도 마찬가지이다. - 국가 공공기관 정보보호 현황 인식 및 전문성 부족 호소 : 인식 및 기술 부족 정보보호 담당자 인력부족 호소 : 1~6명 담당자 배치 정보보호 담당자 보안수준 미흡 : 3년 이하 업무 경력 - 사이버 훈련의 중요성 기술보다 사람 중심의 대응체계 확립 필요 미국의 Cyber Storm, 유럽의 Locked Shields - CSTEC 교육, 훈련 체계 : 사이버 예방 훈련, 사이버 위기 대응 훈련, 사이버 위기 대응 종합 훈련, 사이버 공격방어대회, 정보보호 교육 - 정부출연 연구기관 : 정부출연연구기관 등의 설립, 운영 및 육성에 관한 법률과 과학기술 분야 정부출연연구기관 등의 설립, 운영 및 육성에 관한 법률을 법적 근거로 하여 설립된 연구기관이다. -> 정부에서 일정 부분 재정

openCV, 특징 추출과 바이너리 디스크립터 ORB [내부링크]

특징 추출과 바이너리 디스크립터 전체 코드 #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main() { // 이미지 로드 Mat img1 = imread("box.png", IMREAD_GRAYSCALE); Mat img2 = imread("box_in_scene.png", IMREAD_GRAYSCALE); // ORB 디스크립터 Ptr<Feature2D> b = ORB::create(); // 또는 b = BRISK::create(); vector<KeyPoint> kp1, kp2; Mat desc1, desc2; b->detectAndCompute(img1, Mat(), kp1, desc1, false); b->detectAndCompute(img2, Mat(), kp2, desc2, false); Ptr<DescriptorMatcher> descriptorMatcher = Descripto

영지식 증명, 익명성, 공인인증서에 대해 [내부링크]

Q. 영지식 증명을 설명하기 위해 동굴의 비밀문 예가 많이 사용된다. 이 예에서 증명자와 확인자는 설명된 과정을 여러 차례 반복해야 한다. 이보다 더 효과적인 방법을 제시하시오. (영지식 증명, 위키 백과) https://ko.wikipedia.org/wiki/%EC%98%81%EC%A7%80%EC%8B%9D_%EC%A6%9D%EB%AA%85 영지식 증명 - 위키백과, 우리 모두의 백과사전 사용자:Answerer 5do 에 대한 관리자 선거 가 2021년 6월 2일까지 진행됩니다. 영지식 증명 위키백과, 우리 모두의 백과사전. 이 문서의 내용은 출처 가 분명하지 않습니다. 이 문서를 편집 하여, 신뢰할 수 있는 출처 를 표기해 주세요. 검증 되지 않은 내용은 삭제될 수도 있습니다. 내용에 대한 의견은 토론 문서 에서 나누어 주세요. (2014년 4월) 영지식 증명 (零知識 證明, 영어 : zero-knowledge proof ) 또는 제로 널리지 프로토콜 ( 영어 : zero-kno

OpenCV, 아다부스트 학습 알고리즘 및 얼굴검출 코드 [내부링크]

아다부스트 학습 알고리즘 Sample.h #pragma once class Sample { public: int x_u; // 샘플의 u좌표 int x_v; // 샘플의 v좌표 int y; // 샘플의 분류결과 double w; // 가중치(weight) Sample(int x_u, int x_v, int y); Sample(); ~Sample(); }; Sample.cpp #include "Sample.h" Sample::Sample(int x_u, int x_v, int y):x_u(x_u), x_v(x_v), y(y) { w = 1; } Sample::Sample() { } Sample::~Sample() { } Sample은 아다부스트 학습을 위한 좌표에 대한 정보를 저장하는 클래스로 좌표 정보와, 분류결과, 가중치로 이루어져 있으며 생성자를 정의해주었다. Classifier.h #pragma once #include "Sample.h" class Classifier { pu

Raw 소켓, ping과 tracereoute [내부링크]

Raw 소켓 - Raw Socket 응용 프로그램 수준에서 프로토콜 헤더를 직접 조작 Root use only can use, specify the target protocol Low level packet handling : 프로토콜 헤더의 구조와 동작 원리의 이해 필요 - Raw 소켓 생성 SOCKET sock = socket(AF_INET, SOCK_RAW, protocol); if(sock == INVALID_SOCKET) err_quit(“socket()”); Raw 소켓의 종류 : IPPROTO_ICMP, IPPROTO_IGMP, IPPROTO_TCP, IPPROTO_UDP IP_HDRINCL 또는 IPV6_HDRINCL 옵션 설정, 옵션을 설정하면 표준 프로토콜이나 사용자 정의 프로토콜 헤더를 응용프로그램이 생성할 수 있다. - Raw 소켓 생성 시 주의 사항 운영체제마다 Raw 소켓을 생성할 수 있는 권한이 다르다. 운영체제마다 생성할 수 있는 Raw 소켓의 종류가 다

인공지능과 프롭테크 [내부링크]

인공지능과 프롭테크 Proptech - 정의 : 금융과 기술을 합친 핀테크처럼 부동산과 기술을 합친 것이라고 생각하면 된다. - 1.0 The Complementary Phase -> 2.0 The Challenger Phase -> 3.0 The Synthesis Phase - 매해 투자 금액이 늘어나고 시장이 확장되고 있다. - 자산 유형(주거용, 상업용 등) 및 서비스 형태(중개, 정보제공, 시공, 관리, 공유, 금융 등)와 기술이 결합하여 프롭테크의 다양한 분야를 형성하고 있다. Spacewalk - 부동산의 현실 서울시 25년 이상 노후화된 2층 이하 건물이 40%이다. 서울시 건물이 있는 필지중 200평 이하의 필지개수 비율 93%이다. 전국 10억 이하 토지거래액 합계 46%이다. => 자산운용사와 전문가들을 큰 규모의 부동산을 주로 다룬다. - 스페이스워크는 기술로 혁신하여 작은 규모의 문제를 해결하는 기업이다. - 여러 부동산 이슈 복잡한 건축 관련 법규로 인해 수익

파일 송수신 프로그램, 클라이언트 및 서버 코드 [내부링크]

프로그램의 전체 흐름 설명 전체 흐름을 간단히 도식화하면 위와 같습니다. 서버와 클라이언트가 소켓 통신을 하기 위해서 ip 주소, 포트 번호 등을 설정하고 소켓 연결을 합니다. 클라이언트는 connect 함수로 서버는 bind 함수로 소켓 연결이 되면 서버는 클라이언트의 연결 요청을 accept 함수로 수락해줍니다. 이렇게 연결이 된 후 클라이언트가 서버에게 send 함수로 전송할 파일명을 보냅니다. 서버가 정상적으로 파일명을 받으면 “ok”를 클라이언트에게 보내고 클라이언트는 바이너리 읽기모드로 파일을 열어서 버퍼에 복사 후 해당 내용을 서버에 전송합니다. 서버는 받은 내용을 바이너리 쓰기모드로 파일을 열어 저장합니다. 서버는 연결된 클라이언트의 ip 주소, 포트 번호를 출력하고 받은 파일 내용 만큼에 해당하는 파일 사이즈도 출력을 합니다. 이 모든 것을 다중접속 방식으로 구현하기 위해서 쓰레드를 이용했습니다. 쓰레드를 이용하기 때문에 파일을 전송하는 과정을 쓰레드 함수에서 처리하

OpenCV HOG를 이용한 Person Detection & Person Tracking [내부링크]

0. 계획 주제 소개 주제 : Person Detection & Person Tracking 실제로 사람들이 지나다니는 것을 직접 촬영하고 촬영한 영상에서 사람이 지나다닐 때 사람을 인식하고 트래킹할 수 있도록 구현할 예정입니다. 구현 방안 전체적으로 HOG 알고리즘을 이용해 영상의 gradient를 추출하여 사람을 detection하고 tracking할 예정입니다. 검출된 특징이 사람인지 아닌지 구분하기 위해 머신러닝이 필요한데 학습된 데이터를 이용하여 SVM 분류기로 사람을 구분하도록 할 것입니다. 이 부분에 대해서는 빠른 detection이 가능한 YOLO도 고려해보고 있습니다. detection이 되면 해당 사람을 tracking을 할 것입니다. 추가적으로 사람의 전신이 아닌 상체 정도만 나오거나 뒷모습만으로도 detection과 tracking이 가능하도록 구현을 해볼 것입니다. 구현 일정 1. 주제 소개 텀프로젝트의 주제는 Person Detection & Tracking

신경망을 이용한 XOR 및 MNIST 학습 코드 [내부링크]

신경망을 이용한 XOR 및 MNIST 학습 XOR layer.h #pragma once class Layer { public: int n;//인풋 노드의 개수 int m;//아웃풋 노드의 개수 float* input; //인풋 노드 float* output; //아웃풋 노드 float** w; //웨이트 float* b; //바이어스 float* delta; //중간 계산을 위한 델타 float* backError; //backPropagation을 위해 전이되는 에러 Layer(int n, int m); ~Layer(); void feedForward(float* input); void calcError(float* y, float* error); //최종 에러 계산 void backPropagation(float* error, float alpha); void printWeight(); void printOutput(); }; 인풋, 아웃풋 노드와 웨이트를 저장하고 에러를 계산하

논증적 글쓰기 - 무늬만 평등, 고교평준화 [내부링크]

논증적 글쓰기 - 무늬만 평등, 고교평준화 (2015) “사회계층, 성별, 주거지역, 종파, 신분 등 신변상의 차이에 관계없이 교육을 받을 수 있는 기회의 획득은 누구에게나 보장되어 있다.” 이것은 교육의 이념 중 기회균등에 관한 이야기이다. 모두에게 평등하게 교육을 받게 하려고 애쓰지만 사실 완전한 평등을 이루는 것은 항상 쉬운 일이 아니다. 어쩌면 완전한 평등은 결코 이루어질 수 없는 것일지도 모른다. 아무튼 이러한 교육의 평등에 한 걸음 더 다가서기 위해서 정부가 시행한 정책 중 하나가 바로 고교평준화이다. 고교평준화란 지역별로 전체 학생을 추첨을 통해 해당 지역에 있는 일반계 고등학교에 학생들을 나누어 배정하는 교육제도를 뜻한다. 지금부터 이 제도의 문제점들에 대해서 소개하고자 한다. 먼저 고교평준화는 학생의 선택에 대한 자유를 억압하는 것이다. 고등학교 3년은 어쩌면 자신의 인생에서 정말 중요한 시기가 될 수도 있다. 중요한 선택의 기로에서 자신이 가고 싶은 학교를 못 가는

영화 위플래쉬, 영화 감상문 [내부링크]

위플래쉬 영화감상문 위플래쉬 감독 데이미언 셔젤 출연 마일즈 텔러, J.K. 시몬스 개봉 2015. 03. 12. / 2020. 10. 28. 재개봉 영화를 처음 보기 시작하면서 저는 이 영화가 단순히 좋은 내용을 품고 있는 교훈적인 영화일 것이라고만 생각했습니다. 첫 시작부분에서 주인공 앤드류가 열심히 드럼을 치는 모습과 플렛처 교수가 그 모습을 보는 장면일 때는, ‘학생과 교수의 갈등 끝에 주인공이 결국은 훌륭한 드러머가 되겠지’ 라는 생각을 했었습니다. 하지만 그저 그런 착한 영화가 아니었습니다. 먼저 플렛처 교수가 과격한 사람이라는 사실에 놀랐습니다. 나중에는 자기가 천재적인 음악가를 만들기 위해서 그랬다고 밝히지만, 완전 무서운 사람이었던 것 같습니다. 특히 자신의 제자 중 선 케이시라는 학생이 교통사고로 죽어서 추모하며 눈물을 보인 적이 있는데, 사실은 극심한 우울증으로 자살을 했다는 것을 알았을 때는 플렛처 교수에게서 소름이 돋았습니다. 또 주인공의 드럼을 치는 모습이

Flutter, 간단한 이미지 출력 앱 만들기 [내부링크]

Flutter 강의를 들으며 만든 애플리케이션이다. 코드를 기록하기 위한 용도로 글을 작성한다. 해당 글에서 얻을 수 있는 정보들은 아래와 같은 것들이 있다. 1. 간단한 사진 출력 앱의 구조: Material App, Scaffold, AppBar, AssetImage 등 2. 프로젝트에 이미지 저장하기, yaml 파일 설정 3. 앱 아이콘 설정 4. 실제 기기에서 실행(ios) 먼저 결과물이다. i_am_poor 라는 앱이고, 별건 없고 이미지를 출력하기만 한다. 이미지의 출처는 아래에 남겨둔다. https://icons8.com Free Icons, Clipart Illustrations, Photos, and Music Download design elements for free: icons, photos, vector illustrations, and music for your videos. All the assets made by designers → consistent

Flutter 간단한 명함 애플리케이션 만들기 [내부링크]

Flutter를 이용한 간단한 명함 앱을 구현한다. 애플리케이션은 CircleAvatar, Card를 비롯한 위젯들을 활용해 프로필 사진, 이름, 그리고 이메일과 주소 등을 배치하여 명함처럼 구현한다. 1. 구현 결과 구현 화면을 캡쳐한 결과이다. CircleAvatar를 이용해 프로필 사진을 넣고 이름과 직무를 세로로 배치한다. 그리고 Divider를 넣고, Card를 이용해 이메일, 주소를 출력해준다. 참고로 색상 배합의 경우 디자인 감각이 없다면 아래 사이트를 활용하면 좋다. https://www.materialpalette.com/ Material Palette - Material Design Color Palette Generator Choose your favorite colors and get your Material Design palette generated and downloadable. www.materialpalette.com 대략적인 색을 선택하면 적절한 배합

Flutter 버튼 클릭 시 랜덤 이미지 출력하기 [내부링크]

Flutter를 이용해 버튼 클릭 시 랜덤하게 이미지를 띄우는 애플리케이션이다. 1. 구현 결과 구현된 앱은 아래와 같다. Scaffold로 App bar를 설정하고 body에 단순히 이미지만 띄운 것이다. 이미지 출처는 아래 링크이다. https://icons8.com/ Free Icons, Clipart Illustrations, Photos, and Music Download design elements for free: icons, photos, vector illustrations, and music for your videos. All the assets made by designers → consistent quality ️ icons8.com 이미지를 누르면 아래와 같은 캐릭터들이 랜덤하게 나온다. 2. 상태 출력 되는 이미지는 다음과 같은 파일명을 가진다. 따라서 랜덤한 숫자를 가지고 해당 파일명을 호출하면 되는데, 이때 상태를 이용해야 한다. 단축키 stful을 입

Flutter, 이미지 버튼 클릭 시 소리 출력하기 [내부링크]

Flutter를 이용해 이미지 버튼을 만들고 소리를 출력하는 애플리케이션이다. 각각의 동물 사진으로 화면을 꽉 채웠고, 클릭을 하면 해당 동물의 소리가 나온다. 1. 구현 결과 구현된 앱은 아래와 같다. MaterialApp과 Scaffold를 이용해 전체적인 UI를 구성했다. 레이아웃은 단순히 Column을 이용한 것이다. 이미지는 무료 이미지 사이트, 소리는 유튜브에서 찾은 저작권 무료 효과음을 사용했다. 무료 이미지(픽사베이) https://pixabay.com/ko/ 무료 효과음(유튜브), 찾아보니 이런 것들이 많은 것 같다. https://www.youtube.com/watch?v=GxNX0_c5V4Q&t=16s 구현 된 앱 시연 화면이다. 2. 화면 구성, 반복문과 함수를 이용해 버튼 나열 버튼을 하나하나 나열하는 것은 중복 코드가 많기 때문에 반복문을 이용했다. body: Center( child: Column( crossAxisAlignment: CrossAxisAli

인터넷, HTTP, 네트워크, DNS, 호스팅 개념 [내부링크]

github frontend-study/Internet at main · leejaeseong11/frontend-study Contribute to leejaeseong11/frontend-study development by creating an account on GitHub. github.com Internet How does the internet work? 출처: https://developer.mozilla.org/ko/docs/Learn/Common_questions/How_does_the_Internet_work#%EC%9A%94%EC%95%BD 인터넷은 웹의 핵심적인 기술이다. 컴퓨터가 통신을 하기 위해서는 물리적으로 연결하여 네트워크를 구성한다. 각각의 컴퓨터를 하나씩 연결할 수 없으므로 각 컴퓨터를 라우터에 연결한다. 하지만 국가와 국가 사이처럼 아주 먼 곳을 모두 연결하기는 어렵기에 이미 설치된 전화기 기반의 시설을 이용해야 하며, 네트워크와 전화 시설을 연결

HTML - 소개, 기초, element(요소), attribute(속성), <h> 태그, <p> 태그 [내부링크]

Github: https://github.com/leejaeseong11/frontend-study/tree/main/HTML#learn-the-basics frontend-study/HTML at main · leejaeseong11/frontend-study Contribute to leejaeseong11/frontend-study development by creating an account on GitHub. github.com 출처: https://www.w3schools.com/html/html_intro.asp HTML HTML(Hyper Text Markup Language)은 웹 페이지를 만들기 위한 표준 마크업 언어이다. HTML 요소는 시작 태그, 요소의 내용, 종료 태그로 정의된다. 메모장, 텍스트 편집기로도 코드 작성이 가능하지만 VSCode를 이용해 HTML을 배운다. VSCode 설치 후 추가로 설치해두면 좋은 Extensions이 있다. - open i

HTML - style 속성, 포맷팅 요소, 인용 요소, 주석, color(RGB, HEX, HSL), CSS [내부링크]

Github: https://github.com/leejaeseong11/frontend-study/tree/main/HTML#learn-the-basics frontend-study/HTML at main · leejaeseong11/frontend-study Contribute to leejaeseong11/frontend-study development by creating an account on GitHub. github.com 출처: https://www.w3schools.com/html/html_intro.asp style 속성 style 속성은 색상, 글꼴, 크기 등과 같은 요소에 스타일을 추가하는데 사용된다. background-color 속성은 배경색을 나타낸다. <body style="background-color: powderblue"> <h1>This is a heading</h1> <p>This is a paragraph.</p> <h1 style="back

뱀파이어 서바이벌 비둘기 진화 빌드 공략 [내부링크]

요새 여러 스트림머들 사이에서 인기가 많은 뱀파이어 서바이벌을 스팀에서 구매해서 해봤습니다. 게임은 매우 단순하고, 비용도 저렴해서 부담 없이 즐겼습니다ㅎㅎ 몬스터를 잡고, 레벨업을 하고, 무기를 모으면 되고, 방향키만 조작해서 게임을 진행합니다. 이번 포스팅에서는 현 패치 버전에서 가장 강력한 무기 조합인 비둘기 조합에 대해 알아보겠습니다. 비둘기가 조합된 파괴자(Vandalier)에 대한 공략 파괴자는 피죤 + 흑단 날개를 조합해서 사용 가능합니다. 일반적인 무기 조합은 공격 무기 + 패시브를 이용해 조합하지만, 파괴자는 특이하게 무기 + 무기로 조합이 됩니다. 또한 조합한 무기는 기본적으로 추가적인 진화가 되지 않지만, 파괴자는 조합 무기도 진화가 됩니다. (진화를 할수록 공격 범위가 넓어집니다.) 추가적인 업그레이드가 있는만큼 파괴자는 강력한 면모를 보여주는 무기입니다. 파괴자를 만들기 위해서는 흑단 날개를 기본으로 사용하는 유령 캐릭터를 골라서 진행해야 합니다. 피죤, 흑단

HTML - 링크를 연결하는 <a> 태그 [내부링크]

Github: https://github.com/leejaeseong11/frontend-study/tree/main/HTML#learn-the-basics frontend-study/HTML at main · leejaeseong11/frontend-study Contribute to leejaeseong11/frontend-study development by creating an account on GitHub. github.com 출처: https://www.w3schools.com/html/html_intro.asp <a> 태그 (링크) 링크를 통해 사용자는 페이지에서 페이지로 이동할 수 있다. HTML 링크는 하이퍼링크이다. <a> 태그의 href 속성으로 하이퍼링크를 정의한다. <a href="https://blog.naver.com/easeon11" id="myblog">블로그 링크!</a> 방문하지 않은 링크는 밑줄과 파란색, 방문한 링크는 밑줄과 보라색, 활성 링크

HTML - <img> 태그로 이미지 출력하기, favicon [내부링크]

Github: https://github.com/leejaeseong11/frontend-study/tree/main/HTML#learn-the-basics frontend-study/HTML at main · leejaeseong11/frontend-study Contribute to leejaeseong11/frontend-study development by creating an account on GitHub. github.com 출처: https://www.w3schools.com/html/html_intro.asp <img> 태그로 이미지 출력하기 이미지는 웹 페이지의 디자인과 모양을 향상 시킬 수 있다. <img> 태그를 이용해 이미지를 웹 페이지에 삽입한다. 이미지가 기술적으로 삽입되는 것은 아니고, 링크가 되는 것이다. <img> 태그가 이미지를 보관할 공간을 만든다. - <img> 태그는 src와 alt 속성을 필수로 요구한다. - src 속성은 이미지의 경로(UR

HTML - 테이블 만들기(tr, td, th), 리스트 만들기(li,ul, ol) [내부링크]

Github: https://github.com/leejaeseong11/frontend-study/tree/main/HTML#learn-the-basics frontend-study/HTML at main · leejaeseong11/frontend-study Contribute to leejaeseong11/frontend-study development by creating an account on GitHub. github.com 출처: https://www.w3schools.com/html/html_intro.asp 테이블 만들기(tr, td, th) HTML 테이블을 사용해 데이터를 행과 열로 정렬할 수 있다. 셀은 <td> 태그로 나타낸다. 행은 <tr> 태그로 나타낸다. 테이블의 헤더는 <td> 대신 <th> 태그를 이용한다. 헤더는 기본적으로 중앙 정렬에 굵게 표시되지만, CSS를 사용해 변경할 수 있다. 테이블에 border 속성을 이용해 테두리를 추가할 수 있다.

HTML - block과 inline, class 속성, id 속성, Iframe, JavaScript [내부링크]

Github: https://github.com/leejaeseong11/frontend-study/tree/main/HTML frontend-study/HTML at main · leejaeseong11/frontend-study Contribute to leejaeseong11/frontend-study development by creating an account on GitHub. github.com 출처: https://www.w3schools.com/html/html_intro.asp block과 inline 모든 HTML 요소는 요소 유형에 따라 기본 표시 값이 있다. 표시 값에는 블록과 인라인이 있다. 블록 수준 요소는 항상 새 줄에서 시작한다. 블록 수준 요소는 가능한 전체 너비를 차지한다. 블록 수준 요소는 상단과 하단 여백이 있지만, 인라인 요소는 없다. <div>Hello div</div> <div>Hello div</div> 인라인 요소는 새 줄에서 시작하지

Git 명령어 정리 [내부링크]

처음 설정해야할 것 Git 설정 파일 편집하기 git config --global -e VSCode에서 아래와 같이 code 명령어를 설정하면 터미널에서 바로 VSCode 편집기를 열 수 있다. git config --global core.editor "code" git config --global e 편집이 끝날때까지 기다리려면 --wait을 추가하면 된다. git config --global core.editor "code --wait" 사용자의 이름과 이메일을 설정해주어야 한다. git config --global user.name "이름" git config --global user.email "이메일" 설정된 내용은 아래와 같이 확인한다. git config user.name git config user.email 윈도우와 맥간의 Git 사용 시 \n, \r이 저장되는 차이로 혼란이 없도록 아래의 설정을 해주어야 한다. # window git config --global c

HTML - 파일 경로, 헤더, 레이아웃, 반응형 웹, code, Semantic 태그 [내부링크]

Github: https://github.com/leejaeseong11/html-internet/tree/main/HTML html-internet/HTML at main · leejaeseong11/html-internet Contribute to leejaeseong11/html-internet development by creating an account on GitHub. github.com 출처: https://www.w3schools.com/html/html_intro.asp 파일 경로 파일 경로는 웹 사이트의 폴더 구조에서 파일의 위치를 설명한다. 웹 페이지, 이미지, 스타일 시트, 자바스크립트와 같은 파일의 경로를 연결한다. 절대 파일 경로는 전체 URL을 입력하는 것이다. 상태 파일 경로는 현재 페이지에서 상대적인 파일을 가리킨다. 상대 파일 경로를 사용할 때 웹 페이지는 현재 기본 URL에 바인딩되지 않는다. 모든 링크는 자신의 컴퓨터는 물론 현재 공개 도메인과

HTML - 스타일 가이드, Entity, Symbol, 이모지, Charset(ASCII) [내부링크]

Github: https://github.com/leejaeseong11/html-internet/tree/main/HTML html-internet/HTML at main · leejaeseong11/html-internet Contribute to leejaeseong11/html-internet development by creating an account on GitHub. github.com 출처: https://www.w3schools.com/html/html_intro.asp 스타일 가이드 일관되고 깨끗하며 깔끔한 HTML 코드는 다른 사람들이 코드를 더 쉽게 읽고 이해할 수 있도록 한다. 해당 문서는 좋은 HTML 코드를 만들기 위한 팁을 다룬다. 항상 문서 유형을 첫 번재 줄로 선언해야 한다. <!DOCTYPE html> 요소 이름은 소문자로 사용하는 것이 좋다. - 대문자와 소문자를 혼합하면 보기 좋지 않다. - 개발자는 일반적으로 소문자 이름을 사용한다. - 소문

HTML form에 대한 모든 것 [내부링크]

HTML form이란? HTML 양식은 사용자 입력을 수집하는 데 사용된다. <form> 요소로 사용자 입력을 위한 양식을 만들며, 텍스트 필드, 체크 박스, 라디오 버튼, 제출 버튼 등과 같은 다양한 유형의 입력 요소를 위한 컨테이너이다. <body> <form> .... </form> <input>은 가장 많이 사용되는 양식 요소이다. <input type="text">는 텍스트 입력을 위한 한 줄 입력 필드를 정의한다. <input type="text" id="fname" name="fname" /> <br /> <label>은 양식 요소에 대한 레이블을 정의한다. 사용자가 입력 요소에 초점을 맞추면 스크린 리더가 레이블을 읽어주기 때문에 스크린 리더 사용자에게 유용하다. <label for="fname">성: </label> 라디오 버튼, 체크 박스 같은 작은 영역을 클릭하는 데 어려움을 겪는 사용자에게 도움이 된다. 사용자가 요소 내 <label> 텍스트를 클릭하면 라디오

HTML canvas와 svg [내부링크]

canvas 요소 <canvas> 요소는 그래픽을 기르는데 사용된다. <canvas>는 그래픽의 컨테이너고, 실제로 그리는 것은 자바스크립트를 이용한다. 경로, 상자, 원, 텍스트를 그리고 이미지를 추가할 수 있다. 캔버스는 기본적으로 테두리와 내용이 없다. 스크립트 참조를 위해 id 속성을 지정하고, width와 height를 지정해서 크기를 정의한다. 테두리 추가는 style 속성을 이용한다. 자바스크립트를 이용해 드로잉을 할 수 있다. <!-- 선 그리기 --> <canvas id="myCanvas" width="200" height="100" style="border: 1px solid #000000" > </canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.moveTo(0, 0); ctx.lineTo(200, 100); ctx.stroke(); </scr

HTML/CSS 정리 [내부링크]

HTML과 CSS 웹의 구성 HTML: 웹 사이트의 구조 설계 CSS: 웹의 디자인 Javascript: 웹의 기능 웹 표준, 웹 접근성, 크로스 브라우징을 고려하여 제작 HTML 태그 HTML: Hyper Text Markup Language <!DOCTYPE html>: HTML5로 작성함을 선언 <html>: HTML 문서의 시작과 끝 <head>: 웹 사이트 요약 정보 <body>: 웹 사이트에서 눈에 보이는 정보 <meta charset="UTF-8">: 사용할 문자를 나타내는 코드 <title>: 웹 사이트 탭의 제목 <img>: 이미지 삽입 <h>: 제목 출력(헤딩) <p>: 본문 출력 <ul>: 순서가 없는 리스트 출력(Unordered list) HTML 구조 상단 <header>: 머리글 <nav>: 네비게이션 메뉴 본문 <main>: 본문 내용 <article>: 텍스타, 이미지 등의 정보 영역 구분 하단 <footer>: 가장 하단에 사이트 정보 <div>: 공

Git 정리 [내부링크]

git 특징 효율적인 협업 쉬운 버전 관리 branch 및 merge 가볍고 빠름 분산 작업 데이터 무결성 staging area 오픈 소스 초기 설정 git --version: 버전 정보 출력 git config --global user.name "Jaeseong Lee": 사용자 이름 git config --global user.email "[email protected]: 사용자 이메일 git config --list: 설정 정보 확인 기본 명령어 git init: 레포지토리 생성 git init [경로]: 입력된 경로에 레포지토리 생성 git 기초 명령어 라이프 사이클: Working directory -> Staging area -> Git repository git add: 파일을 Staging area로 올림 git status: Staging area에 대한 파일의 상태 확인 git commit: Staging area 파일을 레포지토리로 올림 -m: 커밋 메시지 입

[React] 리액트 렌더링에 대해서 [내부링크]

React Rendering Study 렌더링 렌더링 프로세스 JSX → React.createElement → 객체 → 실제 함수 호출 reconciliation(재조정): 컴포넌트 트리 전체에서 렌더 출력을 수집한 후 리액트는 새로운 객체 트리와 비교해 실제 DOM을 현재 원하는 출력과 같아 보이게 하기 위해 적용해야 할 모든 변경 사항 목록을 수집 여기서 말하는 새로운 객체 트리는 일반적으로 가상의 DOM을 의미하나 항상 그런 것은 아님. 렌더 및 커밋 렌더 단계: componentDidMount, componentDidUpdate와 같은 클래스 라이프 사이클 메서드와 useLayoutEffect가 실행됨. 이후 useEffect 훅을 실행하는데 이 단계를 패시브 이펙트(Passive Effects) 단계라고도 함. useLayoutEffect: useEffect와 동일한 기능을 제공하는 훅인데, 브라우저가 화면을 그리기 전에 실행됨. 반면 리액트 18부터는 동시 렌더링 기능도

자주 사용하는 Docker 명령어 정리 [내부링크]

1. Docker build sudo docker build -t jsimage:last . jsimage라는 이미지의 이름으로 빌드함, last는 최신 버전이라는 의미이고 . 현재 경로로 빌드함. 2. Docker run sudo docker run -it -v $PWD/project-name:/project-name -p 8080:8080 jsimage:last /bin/bash jsimage 이미지를 실행함. -v 옵션으로 특정 경로의 파일을 공유할 수 있고, -p로 호스트의 포트와 컨테이너 내부의 포트를 매핑할 수 있음. 컨테이너가 실행되면 /bin/bash가 수행되어 스크립트 입력이 가능해짐. 만약 특정 user로 실행한다면 -u 옵션을 줌. 포트도 여러 개 열 수 있음. sudo docker run -u username -it -v $PWD/project-name:/project-name -p 5000:5000 -p 8080:8080 jsimage:last /bin/bas

Node.js, npm 기본 개념 정리 [내부링크]

Node.js 정의 Node.js는 자바사크립트 런타임(프로그램이 실행되는 동안의 동작) V8 엔진의 등장으로 고성능의 자바스크립트를 실행할 수 있게 되면서 Node.js가 등장 웹 프론트엔드 개발자의 언어였던 자바스크립트였지만 Node.js가 등장하면서 다양한 어플리케이션을 개발할 수 있게 됨 동작 방식 한 번에 한 가지 동작만 수행하는 싱글 쓰레드 기반 비동기 동작을 통해 쓰레드 관리를 잘 관리하여 리소스를 효율적으로 관리 이벤트 기반으로 비동기 동작을 처리 설치 https://nodejs.org/ko/download/ ES6 let, const: 상수(const)와 변수(let) 구분 Templalte String: 백틱으로 문자열을 간편하게 표현 ${}로 변수 표현 줄바꿈을 그대로 인식 arrow function: 간결한 함수 표현 class: 기존 prototype 대신 객체지향 코드 작성 destructing: object의 값을 쉽게 꺼낼 수 있음 비동기 callback

Javascript 기초 개념 정리, DOM과 이벤트 [내부링크]

자바스크립트 정의 동적인 웹사이트 제작 시 활용 html 파일의 <script> 태그 안에서 연동해서 사용 변수 데터를 담는 공간 var를 이용해 변수를 선언하고 값을 넣어 초기화 데이터를 변경할 때는 var를 다시 작성할 필요 없음 console.log를 이용해 데이터를 확인 변수명 규칙 숫자로 시작할 수 없음 자세히 작성해야 함 의미가 불명확하면 안 됨 데이터 타입 String(문자열): 따옴표로 묶어서 작성 Number(숫자): 별다른 기호 없이 숫자만 입력 Function(함수): 매개변수, 인자, return으로 구성 Array(배열): 복수의 데이터를 대괄호로 묶어서 작성, index와 값으로 구성 Object(객체): 프로퍼티, 메서드, 값으로 구성 undefined: 값이 정의되지 않음 null: 데이터가 비어있음 Boolean: 참(true) 혹은 거짓(false) 값을 가짐 프로퍼티, 메서드 문자열 관련 프로퍼티와 메서드 length: 문자열 길이 charAt(id

React(+express) 서버사이드렌더링(SSR) 예시 코드 [내부링크]

전체 폴더 구조 build/bundle.js : 서버 빌드 파일 public/bundle.js : 클라이언트 빌드 파일 src/client : 클라이언트(React) 코드 src/index.js : 서버(Express) 코드 webpack.config.js : 클라이언트 웹팩 설정 webpack.server.js : 서버 웹팩 설정 package.json (실행 스크립트, 설치해야 하는 패키지) { "name": "react-ssr", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "build": "webpack", "server": "node build/bundle.js", "build:server": "webpack --config webpack.server.js" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "expre

Spring boot 웹 백엔드 공부 순서 [0일차] [내부링크]

오늘부터 매일 Spring boot 웹 백엔드를 공부하려고 합니다. React 기반의 웹 프론트엔드를 공부할 것인지, Spring boot 기반의 웹 백엔드를 공부할 것인지, 아니면 devops에 대해 공부할지 많이 고민해보고 결론을 내렸습니다. 물론 공부 중간에 목표하는 바가 변하거나 다른 일정이 생긴다면 이번 계획이 변동될 수 있지만, 우선은 아래와 같은 Spring boot 학습을 계획하였습니다. JAVA 학부생일 때 많이 사용했던 언어인데 지금은 잘 사용하지 않다보니 기억이 가물가물하고, 당시에 객체지향에 대한 개념을 온전히 이해하지 못하고 문법만 익혀서 사용했던 기억이 있습니다. 그래서 Spring boot을 하기 전에 JAVA 언어부터 복습하고자 합니다. 내용은 생활코딩 이고잉님의 JAVA 수업을 참고할 계획입니다. https://www.opentutorials.org/course/3930 JAVA 입문 수업 - 생활코딩 JAVA 입문 수업 2023-04-23 10:02:

Java 개발 환경 설정 및 Java 데이터 알아보기 [1일차] [내부링크]

오늘은 Java 개발 환경을 설정하고 Java로 할 수 있는 것들, 그리고 Java의 데이터와 연산에 대해 알아볼 것입니다. Java 공부는 생활코딩 이고잉님의 강의를 통해 학습하고 있습니다. 참고로 전날 학습한 내용은 아래에 작성되어 있습니다. https://blog.naver.com/easeon11/223158885817 Spring boot 웹 백엔드 공부 순서 [0일차] 오늘부터 매일 Spring boot 웹 백엔드를 공부하려고 합니다. React 기반의 웹 프론트엔드를 공부할 것인... blog.naver.com Java 개발 환경 구성 저는 Mac을 사용하고 있고, 사실 이미 환경 구성이 되어 있기 때문에 강의 영상은 생략하였습니다. 상세 방법은 아래에서 설명하고 있습니다. https://www.opentutorials.org/course/3930/26651 자바 애플리케이션 실행 - 생활코딩 자바 애플리케이션 실행 2019-10-09 11:31:04 수업소개 가장 간단한

Java 숫자 다루기 [2일차] [내부링크]

오늘은 Java에서 숫자를 다뤄보는 방법을 알아볼 것입니다. Java 공부는 생활코딩 이고잉님의 강의를 통해 학습하고 있습니다. 참고로 전날 학습한 내용은 아래에 작성되어 있습니다. https://blog.naver.com/easeon11/223160112401 Java 개발 환경 설정 및 Java 데이터 알아보기 [1일차] 오늘은 Java 개발 환경을 설정하고 Java로 할 수 있는 것들, 그리고 Java의 데이터와 연산에 대해 알아... blog.naver.com 새로운 클래스 만들기 앞선 수업에서는 새로운 프로젝트를 만들어서 진행했었는데, 이번에는 클래스를 하나 새롭게 만들어서 진행했습니다. 인텔리제이에서는 "File > New > Java Class"로 이름만 설정해서 생성 가능합니다. 그러면 src 폴더에 새로운 파일이 하나 생깁니다. 사칙연산 수학에서 가장 기본이 되는 사칙연산을 Java의 숫자 데이터에 똑같이 적용할 수 있습니다. 단 곱하기와 나누기는 흔히 아는 모양과는

Java 문자열 및 변수의 데이터 타입과 캐스팅 [3일차] [내부링크]

오늘은 문자열, 그리고 변수의 데이터 타입과 타입 캐스팅에 대해 알아볼 것입니다. Java 공부는 생활코딩 이고잉님의 강의를 통해 학습하고 있습니다. 참고로 전날 학습한 내용은 아래에 작성되어 있습니다. https://blog.naver.com/easeon11/223161052405 Java 숫자 다루기 [2일차] 오늘은 Java에서 숫자를 다뤄보는 방법을 알아볼 것입니다. Java 공부는 생활코딩 이고잉님의 강의를 통... blog.naver.com Character와 String 새로운 클래스 파일을 만들어서 실습을 진행했습니다. 그런데 IntelliJ에서 클래스 파일 생성하면, main 메소드를 만들어주지 않는데, "main"치고 탭을 누르면 자동으로 생성해줘서 편합니다. 자바에서 문자열(String)은 큰 따옴표로 표현합니다. 그리고 작은 따옴표는 하나의 문자인 Character를 의미합니다. 문자가 하나 있더라도 큰 따옴표로 감싸면 String입니다. System.out.p

프로그래밍의 개념과 디버거 사용 방법 [4일차] [내부링크]

오늘은 프로그래밍과 디버깅에 대해 알아볼 것입니다. Java 공부는 생활코딩 이고잉님의 강의를 통해 학습하고 있습니다. 참고로 전날 학습한 내용은 아래에 작성되어 있습니다. https://blog.naver.com/easeon11/223162050451 Java 문자열 및 변수의 데이터 타입과 캐스팅 [3일차] 오늘은 문자열, 그리고 변수의 데이터 타입과 타입 캐스팅에 대해 알아볼 것입니다. Java 공부는 생활코딩... blog.naver.com 프로그래밍에 대해 시간의 순서에 따라 어떤 일이 일어나는 것을 프로그램이라고 합니다. 프로그램은 코드를 순차적으로 실행하여 사람이 잘못하는 일을 자동화해줍니다. 소프트웨어를 만들 때는 다른 사람이 만들어 놓은 것을 부품을 이용해서 만들 수 있습니다. 이고잉님이 만든 부품을 이용해 나의 프로그램을 만들어 볼 것입니다. 아래의 소스 코드를 다운로드 받아, 프로젝트에 옮겨서 실습을 진행했습니다. https://github.com/egoing/j

Java 프로그램에 입력 값 넣기, API 클래스 상속 [5일차] [내부링크]

오늘은 프로그램에 입력 값을 넣는 법과 API, 클래스 및 상속에 대해 알아볼 것입니다. Java 공부는 생활코딩 이고잉님의 강의를 통해 학습하고 있습니다. 참고로 전날 학습한 내용은 아래에 작성되어 있습니다. https://blog.naver.com/easeon11/223162919653 프로그래밍의 개념과 디버거 사용 방법 [4일차] 오늘은 프로그래밍과 디버깅에 대해 알아볼 것입니다. Java 공부는 생활코딩 이고잉님의 강의를 통해 학습... blog.naver.com Swing을 이용해 입력 받기 프로그램은 입력을 받고 출력을 할 수 있습니다. 아래 코드에서 id를 직접 입력 받도록 하는 것이 목표입니다. String id = "JAVA APT 402"; // Elevator call Elevator myElevator = new Elevator(id); myElevator.callForUp(1); // Security off Security mySecurity = new Se

나의 Java 애플리케이션 만들기 [마지막] [내부링크]

오늘은 지금까지 배웠던 내용을 바탕으로 Java 애플리케이션을 만들고, 만들면서 불편한 것을 새로운 지식으로 개선해볼 것입니다. Java 공부는 생활코딩 이고잉님의 강의를 통해 학습하고 있습니다. 참고로 전날 학습한 내용은 아래에 작성되어 있습니다. https://blog.naver.com/easeon11/223163500271 Java 프로그램에 입력 값 넣기, API 클래스 상속 [5일차] 오늘은 프로그램에 입력 값을 넣는 법과 API, 클래스 및 상속에 대해 알아볼 것입니다. Java 공부는 생... blog.naver.com 먼저 지금까지 배운 내용을 가지고 Java 애플리케이션을 만들어 볼 것입니다. 소비자가 물건을 살 때 공급가(Value of supply)와 부가가치세(Value Added Tax)를 지불합니다. 판매자는 공급가는 자신이 갖고, 부가세는 국세청에 납부합니다. 판매자는 공급가 중 사용한 비용(expense)를 제외한 이익(income)을 갖게 됩니다. 그런

Java 기초 설명, 설치 및 실행, 데이터 타입/연산자/조건문 [1일차] [내부링크]

(다시) 1일차 오늘부터 매주 평일 듣게될 교육 내용을 정리할 계획입니다. 금일은 오리엔테이션 날이며 앞으로 진행될 커리큘럼은 Java 학습 이후 Java 기반의 Spring 백엔드, 그리고 Node/Vue 기반의 프론트엔드, 마지막으로 클라우드에 대해 간단히 다룰 예정입니다. 금일은 Java에 대한 기초 설명과 설치 및 실행, 그리고 데이터 타입, 연산자, 조건문에 대한 문법을 학습했습니다. 그리고 다음 시간에 배울 문자 타입을 익히기 위해 유니코드와 아스키 코드에 대해 예습했습니다. Java의 특징 크게 2가지 입니다. 객체지향 플랫폼에 독립적 (Java Virtual Machine) 그리고 과거부터 오픈 소스 기반이어서 많이 사용되어 점유율이 높은편입니다. Java 동작 과정 JVM 위에서 작성된 java 파일은 컴파일 되어 class 파일이 됩니다. 이 class 파일은 ByteCode로 구성되며, JVM의 인터프리터 도움을 받아 0과 1로 재해석되어 실행됩니다. 이 clas

Java 환경 변수 설정 및 이클립스 설치, 문자 자료형, 조건문, 반복문 [2일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223165252179 Java 기초 설명, 설치 및 실행, 데이터 타입/연산자/조건문 [1일차] (다시) 1일차 오늘부터 매주 평일 듣게될 교육 내용을 정리할 계획입니다. 금일은 오리엔테이션 날이며 앞... blog.naver.com 금일은 지난 번에 잠깐 본 문자 자료형에 대해 상세히 다루고, 조건문과 반복문을 진행했습니다. 그리고 Java 환경 변수를 설정하는 것과 IDE인 이클립스를 설치해서 사용해보았습니다. 문자 자료형 (char) 문자 조합의 대표적인 건 ASCII(1byte=8bit) 입니다. 아스키는 영문자, 숫자형 문자, 특수문자를 표현할 수 있습니다. 영어 외에 표현할 수는 없기에 다른 국가의 문자 조합(EUC-KR, SHIFT-JIS)나 단체의 문자 조합(MS949)가 생겨 났는데요. 이를 Multi byte CharSet(2byte)이라고 합니다. 이러한 Mutli byte CharSet

Java 배열 익혀서 반복문과 가지고 놀기[3일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223165895650 Java 환경 변수 설정 및 이클립스 설치, 문자 자료형, 조건문, 반복문 [2일차] 이전 학습 내용: https://blog.naver.com/easeon11/223165252179 금일은 지난 번에 잠깐 본 문자 자료형에 ... blog.naver.com 이번 시간에는 배열에 대해서 배우고, 지난 번에 배운 반복문을 비롯해 코드 작성하는 연습을 했습니다. 배열(Array) 배열이란 동일한 자료형의 데이터 묶음입니다. 아래와 같이 int 타입의 arr 변수를 선언하고 생성할 수 있습니다. 주의할 건 arr은 첫 번째 데이터가 저장된 객체의 정보를 가지고 있을 뿐 모든 데이터를 직접 가지고 있는 것은 아닙니다. 이를 참조 자료형이라고 합니다. int[] arr; // int arr[] - 배열 선언 arr = new int[3]; // 배열 생성 배열을 사용하지 않으면 이렇게 작성해야

Java 객체지향, 클래스와 변수 및 메서드, JVM 메모리 구조[4일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223167149760 Java 배열 익혀서 반복문과 가지고 놀기[3일차] 이전 학습 내용: https://blog.naver.com/easeon11/223165895650 이번 시간에는 배열에 대해서 배우고, 지... blog.naver.com 이번 시간에는 Java의 객체지향에 대해 다루고, JVM 메모리 구조에 기반하여 변수와 메서드가 어떤 식으로 생성되는지 알아보았습니다. 객체지향 절차지향언어는 C, COBOL 같은 것이 있습니다. 절차지향언어 개발자는 기능을 빨리 만들기 위해 힘씁니다. 객체지향언어는 Java, C++, C# 같은 것이 있습니다. 객체지향언어 개발자는 기능을 담고 있는 것을 만들기 위해 먼저 고민하고, 그것에게 필요한 속성이나 상태값들에 대해 모델링을 하고 개발을 합니다. 여기서 말하는 "것"이란 Thing(사물)인데, 추상적 개념들과 묶어 객체(Object)라고 합니다. 예를 들어

Java, long과 int의 자동 형변환, 숫자 범위 항상 유의하자 (백준, 알고리즘 수업 - 알고리즘의 수행 시간 6) [내부링크]

아래 문제를 풀이하면서 깨달은 내용이다. https://www.acmicpc.net/problem/24267 24267번: 알고리즘 수업 - 알고리즘의 수행 시간 6 24267번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 게시판 알고리즘 수업 - 알고리즘의 수행 시간 6 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 512 MB 8038 4068 3843 51.897% 문제 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n 이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자. MenOfPassion 알고리즘은 다음과 같다. MenO... www.acmicpc.net 문제 요약 3차원 배열의 시간 복잡도를 직접 계산하는 문제이다. O(n)으로 계산해야 시간 초과가 나지 않기 때문에 수식을 구해야 한다. 결과값이 (1)+(

Java 객체지향과 this, 생성자, 접근 제어자 [5일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223168078437 Java 객체지향, 클래스와 변수 및 메서드, JVM 메모리 구조[4일차] 이전 학습 내용: https://blog.naver.com/easeon11/223167149760 이번 시간에는 Java의 객체지향에 대해 ... blog.naver.com 이번 시간에는 클래스를 더 만들어 보면서 자바의 객체지향에 대해 익숙해지고, 정보 은닉을 위한 접근 제어자와 setter와 getter 설정을 통한 캡슐화에 대해 알아봅니다. 객체지향 지난 시간에 이어서 객체지향에 대해 다루고 있습니다. 아무런 설명 없이 document comment를 내보냈을 때 변수의 이름을 아무 의미 없이 지으면 이해하기가 어렵습니다. 따라서 의미가 분명한 변수 이름을 지어주어야 하는데요. 클래스의 setter는 매개변수는 클래스의 멤버 변수와 동일하게 하는 것이 명확합니다. 그러면 setNo()라는 메서드에서 no가

Java 배열 다루기 - 중복 제거, int 배열을 string 배열로 형변환, int 배열 내림차순 정렬 (Arrays.stream()) [내부링크]

Java로 코테 문제풀이하면서 자주 사용하게 되는 문법들 정리 1. 자바 Array에서 중복을 제거하는 방법 Arrays.stream()을 이용하는 방법이다. distinct() 메서드로 중복을 제거할 수 있고, array stream을 toArray()로 다시 배열로 바꾸면 된다. int[] input = {1, 4, 3, 1, 5, 2, 2}; int[] removedInput = Arrays.stream(input).distinct().toArray(); System.out.println(Arrays.toString(removedInput)); // [1, 4, 3, 5, 2] 이를 하려면 Arrays를 import해야 한다. import java.util.Arrays; 또는 HashSet 자료구조를 이용해도 된다. HashSet은 아래와 같이 사용한다. import java.util.HashSet; ... HashSet<Integer> input = new HashSet<>(

Java 객체지향 - 패키지, static, 싱글톤 패턴, 상속, 오버라이딩 [6일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223168672584 Java 객체지향과 this, 생성자, 접근 제어자 [5일차] 이전 학습 내용: https://blog.naver.com/easeon11/223168078437 이번 시간에는 클래스를 더 만들어 보면서... blog.naver.com 이번 시간에는 자바의 패키지 static 멤버 변수/메서드에 대해 알아봅니다. 그리고 싱글톤 패턴, 상속, 오버라이딩에 대해 알아볼 것입니다. 과제로 오버라이딩을 위한 upcasting과 downcasting에 대해 알아보았습니다. 지난 시간에 배운 내용 상품에 대한 정보를 담는 Product 클래스(Data Transfer Object)와 해당 클래스에 접근해서 데이터를 추가하거나 검색하는 ProductDAO 클래스(Acess Object)를 만들었습니다. 그리고 ProductDAO를 사용하는 ProductUser 클래스를 만들었습니다. 상품 클래스에서

Java 다형성(upcasting과 downcasting, super)과 추상화(abstract, interface) [7일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223171397676 Java 객체지향 - 패키지, static, 싱글톤 패턴, 상속, 오버라이딩 [6일차] 이전 학습 내용: https://blog.naver.com/easeon11/223168672584 이번 시간에는 자바의 패키지 static 멤버... blog.naver.com 이번 시간에는 upcasting과 downcasting, 다형성에 대해 학습했습니다. 그리고 this와 유사한 기능인데 상속 관계에서 사용하는 super, 추상화를 위한 abstract와 인터페이스에 대해 학습했습니다. 과제로는 람다식과 리플렉션에 대해 공부했습니다. Upcasting(업캐스팅)과 다형성 staic void m(Object o1, Object o2) { s.o.p(o1.toString()); s.o.p(o1.equals(o2)); } public static void main(String[] args) { Ob

Java 내부 클래스와 익명 클래스, 리플렉션, 객체 클론, 예외 처리(try~catch, throws) [8일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223172392806 Java 다형성(upcasting과 downcasting, super)과 추상화(abstract, interface) [7일차] 이전 학습 내용: https://blog.naver.com/easeon11/223171397676 이번 시간에는 upcasting과 downcasting, ... blog.naver.com 이번 시간에는 내부 클래스와 익명 클래스, 리플렉션에 대해 다뤄보았고요. 그리고 객체를 복제하는 법(shallow copy와 deep copy), 중요한 예외 처리 방법인 try~catch와 throws에 대해 학습했습니다. inner class, anonymous class 이벤트 핸들러 같은 경우 재사용성이 조금 떨어지기 때문에 사용이라도 그나마 편리하도록 inner class 형태로 만드는 편입니다. inner class를 쓰지 않고, 하나의 객체에서 쓰던 값을 다른

Java 전체 내용 훑기, Override 어노테이션, 상품 관리 코드 예시 [9일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223173025624 Java 내부 클래스와 익명 클래스, 리플렉션, 객체 클론, 예외 처리(try~catch, throws) [8일차] 이전 학습 내용: https://blog.naver.com/easeon11/223172392806 이번 시간에는 내부 클래스와 익명 클래스... blog.naver.com 지금까지 했던 내용을 쭉 복습했습니다. 그리고 어노테이션에 대해 알아보고, 지금까지 배운 내용을 가지고 상품을 관리하는 코드를 작성하였습니다. 복습 및 추가 학습 앞서 배운 내용을 복습하면서 학습하지 않았던 자바 문법에 대해 추가적으로 훑고 넘어가겠습니다. 데이터 타입의 최대값을 벗어나면 오버플로우, 최소값을 벗어나면 언더플로우가 발생합니다. 정수를 실수로 나누면 Infinity, 정수를 실수로 나머지 연산하면 NaN 상태가 됩니다. 대입 연산자는 연산 방향이 왼쪽입니다. 조건문의 중괄호는 왠만하면 무

Java 컬렉션 프레임워크(List, Map), Properties 파일 다루기 [10일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223174226274 Java 전체 내용 훑기, Override 어노테이션, 상품 관리 코드 예시 [9일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223173025624 지금까지 했던 내용을 쭉 복습했습니다. ... blog.naver.com 이번 시간에는 자바의 컬렉션 프레임워크에 대해 알아보고 Properties를 사용해보았습니다. 컬렉션 프레임워크 Java Collection Framework에 대해 알아보겠습니다. 자바의 배열은 처리 속도가 빠르지만 크기가 고정되어 있습니다. 반면 컬렉션 프레임워크를 사용하면 크기를 가변적으로 사용할 수 있습니다. 옛날 자바에는 Vector, Hashtable이라는 자료구조 밖에 없었지만, 이제 인터페이스인 Collection을 상속 받는 List, Set이라는 자료구조가 생겼습니다. 그래서 Vector 또한 List를 상속받

Java API, 스택과 큐, 제네릭, 입력과 출력 스트림에 대해[11일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223175274825 Java 컬렉션 프레임워크(List, Map), Properties 파일 다루기 [10일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223174226274 이번 시간에는 자바의 컬렉션 프레임워크... blog.naver.com 이번 시간에는 자바 API를 한 번 쭉 정리하였습니다. 자료구조인 스택과 큐, 그리고 java.base 아래에서 자주 사용되는 여러 클래스들을 짚고 넘어갔습니다. 그리고 제네릭에 대해 간단히 보고, 자바에서 입력과 출력을 받는 방식에 대해 자세히 알아보고 스트림에 대해 이해하는 시간을 가졌습니다. 스택과 큐 자바의 리스트를 이용해 스택(stack)과 큐(queue) 자료 구조를 만들 수 있습니다. 스택은 먼저 넣은 자료가 나중에 빠져 나오는 Last In First Out (후입선출) 구조이며, 큐는 먼저 넣은 자료가 먼저

Java 입출력, 파일 다루기, 필터 스트림, 객체 직렬화[12일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223177670730 Java API, 스택과 큐, 제네릭, 입력과 출력 스트림에 대해[11일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223175274825 이번 시간에는 자바 API를 한 번 쭉 ... blog.naver.com 이번 시간에는 자바에서의 입출력을 다시 학습하면서, 파일을 다루는 방법을 익혀 파일에서 입출력을 해보았습니다. 그러면서 필터 스트림에 대해 더 다뤄보았습니다. 그리고 객체 직렬화에 대해 알아보았습니다. 입출력과 파일 파일을 읽어 입력을 받을 때, 바이트 단위로 입력 받기 위해 FileOutputStream을 사용할 수 있었는데요. 1바이트가 아닌 여러 바이트 씩 읽을 수도 있습니다. write() 메서드에 인자를 넘겨주면 되는데, 크기가 1024인 byte 배열을 넣으면 1kb씩 읽어 속도도 좀 더 빨라지는 것을 볼 수 있습니다. int

Java 스레드 및 동기화 처리 [13일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223178297663 Java 입출력, 파일 다루기, 필터 스트림, 객체 직렬화[12일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223177670730 이번 시간에는 자바에서의 입출력을 다시... blog.naver.com 이번 시간에는 Java의 입출력에 대해 추가 학습을 진행하고, 스레드에 대해 상세히 알아보았습니다. Java의 스레드를 코드로 실습해보고, 동기화 처리와 스레드의 상태를 바꾸는 메서드들을 실습했습니다. 입출력 추가 학습 transferTo()를 이용하면 입력 스트림에서 출력 스트림으로 복사할 수 있습니다. 모든 입출력 스트림은 마무리 시 close()를 하는 것이 좋습니다. 보조 스트림(필터 스트림)은 외부 자원과 직접 연결된는 노드 스트림을 가공해서 사용할 수 있도록 해줍니다. "Buffered~" 스트림은 내부 메모리 버퍼를 사용하여 입출력 성능

Java 네트워크 프로그래밍, tcp 통신, echo, 스레드 활용한 채팅 코드 구현 [14일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223179543091 Java 스레드 및 동기화 처리 [13일차] 이전 학습 내용: https://blog.naver.com/easeon11/223178297663 이번 시간에는 Java의 입출력에 대해 추... blog.naver.com 이번 시간에는 자바를 이용한 네트워크 프로그래밍을 해보았습니다. TCP 통신을 해보고, 에코 프로그램을 만들었습니다. 그리고 스레드를 활용해서 클라이언트와 서버가 메시지를 주고 받을 수 있도록 구현해보았습니다. 스레드 정리 메인 스레드는 작업이 종료되더라도, 다른 작업 스레드가 계속 실행 중이라면 종료되지 않습니다. Thread 클래스는 아래와 같이 사용합니다. class Task implements Runnable { @Override public void run() { } } Runnable task = new Task(); Thread thread = new Thre

Java 네트워크(TCP/UDP), 브로드캐스트, 스트림 [15일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223180546121 Java 네트워크 프로그래밍, tcp 통신, echo, 스레드 활용한 채팅 코드 구현 [14일차] 이전 학습 내용: https://blog.naver.com/easeon11/223179543091 이번 시간에는 자바를 이용한 네트워크 프... blog.naver.com 이번 시간에는 스레드를 활용한 자바 네트워크 프로그래밍을 해보았고, 보르드캐스트를 구현했습니다. 그리고 스트림에 대해 훑고 넘어갔습니다. 네트워크 프로그래밍과 멀티 스레드 지난 번에 클라이언트 측에서 스레드를 적용해보았는데, 이번에는 서버 코드에 스레드를 적용할 계획입니다. 과정은 다음과 같습니다. 메인 스레드 클라이언트 접속 기다리기 소켓 생성 새로운 스레드 시작 1~3번 과정을 loop 새로운 스레드 소켓에서부터 입출력 스트림 얻기 데이터 수신 및 송신 코드입니다. 스레드를 상속 받는 클레스에 소켓과 입출력 스트림을

[Java] 제어문에 대해서 [내부링크]

Boolean 데이터 타입 데이터 타입은 문자열이나 숫자 같은 것을 말합니다. System.out.println("One"); // 문자열 System.out.println(1); // 숫자 그리고 데이터 타입 중 Boolean은 참인지 거짓인지에 대한 정보를 표현하는 데이터 타입입니다. System.out.println(true); // 참 System.out.println(false); // 거짓 참고로 true와 false처럼 프로그래밍에서 사용하기로 정해 놓은 단어를 reserved word(예약어)라고 하는데, 이는 변수명으로 사용 불가능합니다. // String true = "Hello world"; 넘어가서 문자열 변수는 `contains()`라고 하는 메서드가 있습니다. 문자열 안에 특정 문자가 포함되어 있는지를 확인하여 Boolean 값을 반환해줍니다. String foo = "Hello world"; System.out.println(foo.contains("wor

데이터베이스 설치/실행/용어, SQL 기초- SELECT [16일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223182160625 Java 네트워크(TCP/UDP), 브로드캐스트, 스트림 [15일차] 이전 학습 내용: https://blog.naver.com/easeon11/223180546121 이번 시간에는 스레드를 활용한 자바 네트... blog.naver.com 이번 시간에는 데이터베이스를 설치해서 실행해보았습니다. 간단한 DB 용어를 익히고, SQL문에서 데이터를 검색하기 위한 SELECT를 다뤄보았습니다. 데이터베이스 설치 및 실행 오라클 데이터베이스 다운로드는 아래 링크에서 가능합니다. https://www.oracle.com/kr/database/technologies/oracle-database-software-downloads.html Database Software Downloads | Oracle 대한민국 Try Oracle Database for free Oracle Autonomous Da

SQL 다양한 내장 함수, GROUP BY와 ORDER BY, SQL Developer 설치 [17일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223184502063 데이터베이스 설치/실행/용어, SQL 기초- SELECT [16일차] 이전 학습 내용: https://blog.naver.com/easeon11/223182160625 이번 시간에는 데이터베이스를 설치해서 ... blog.naver.com 이번 시간에는 SQL Developer를 이용해 DB를 외부에서 접속해보았습니다. 그리고 SQL의 다양한 함수들에 대해 학습하고, SELECT의 그룹핑과 정렬하는 방법을 알아보았습니다. SQL Developer로 외부 서버 접속 SQL Developer로 외부 서버에 접속하려면, 서버 쪽 방화벽 설정이 필요합니다. 윈도우 기준으로 방화벽 상태 확인을 검색해줍니다. 그리고 인바운드 규칙을 클릭하고, 새 규칙을 클릭합니다. 그럼 다음과 같은 창이 뜨는데 먼저 프로그램을 설정해주겠습니다. 그리고 Oracle을 설치한 경로를 입력해주어야 합니다. 버전에 따라

SQL JOIN, SubQuery, 집합 연산자 [18일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223186559348 SQL 다양한 내장 함수, GROUP BY와 ORDER BY, SQL Developer 설치 [17일차] 이전 학습 내용: https://blog.naver.com/easeon11/223184502063 이번 시간에는 SQL Developer를 이용... blog.naver.com 이번 시간에는 SQL의 테이블을 묶어 하나의 결과를 나타내는 JOIN, 두 테이블의 결과를 같이 표현하는 UNION과 같은 집합 연산자, SQL 쿼리 안에 쿼리를 사용하는 SubQuery에 대해 학습했습니다. JOIN 사원 테이블에 부서 테이블 데이터를 같이 검색하려고 합니다. 두 개의 테이블에서 데이터를 함께 조회할 때 두 테이블의 공통되는 속성은 해당 속성이 어떤 테이블의 속성인지 명시해야 합니다. 이때 테이블에 별칭을 활용합니다. SELECT employee_id, first_name, e.departm

AWS EC2로 VM 만들기 (클라우드에서 오라클 DB 띄워보기) [내부링크]

목표했던 바는 클라우드 환경에서 Oracle Database를 띄우는 것이었다. 그래서 AWS 프리티어 계정을 이용해 인스턴스를 만들고, SSH로 접속해 오라클 DB를 설치하려고 했다. 우선 AWS 인스턴스 만드는 부분을 설명할 것이지만, 결론적으로 오라클 클라우드 DB를 이용해서 사용하는 것으로 마무리했으니 아래를 읽기 전에 참고 바란다. AWS EC2로 VM 만들기 AWS에서 VM 만들려면 EC2라는 걸 쓰면 된다. 메뉴 찾아서 들어간 다음 인스턴스 시작을 골라주자. 익숙한 리눅스 환경인 우분트를 골라주었다. 프리티어 계정이면, 프리티어 사용 가능이라고 보일 것이다. 생성한 VM에 SSH로 접속하기 위해 키 페어를 생성해줄 것이다. "새 키 페어 생성"을 눌러주면 된다. 키 페어 이름은 자유롭게 해주고, 유형은 RSA, 키 파일 형식은 .pem으로 해주자. 생성한 파일을 다운로드 받아 두고, 이후 인스턴스 생성을 완료하면 된다. SSH 트래픽을 설정해야 정상적으로 원격 접속을 할

SQL 서브쿼리, DDL, DML, 제약 조건 [19일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223186568393 SQL JOIN, SubQuery, 집합 연산자 [18일차] 이전 학습 내용: https://blog.naver.com/easeon11/223186559348 이번 시간에는 SQL의 테이블을 묶어 하... blog.naver.com 이번 시간에는 서브쿼리를 더욱 연습했습니다. 그리고 DDL과 DML 문법을 익혔고, 데이터베이스의 제약 조건의 종류를 공부했습니다. 서브쿼리 서버쿼리를 이어서 다룹니다. INLINE VIEW는 FROM 절에서 사용하는 서브쿼리입니다. 예를 들어 보겠습니다. 사원의 사번, 이름, 급여를 출력하되 많은 급여를 받는 사원부터 출력해보겠습니다.아래처럼 출력할 수 있습니다. SELECT employee_id, first_name, salary FROM employees ORDER BY salary DESC; 이때, ROWNUM이라는 걸 이용하면 각 행의 번호를 알 수

데이터베이스 설계와 ERD, 뷰, 인덱스 [20일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223189904594 SQL 서브쿼리, DDL, DML, 제약 조건 [19일차] 이전 학습 내용: https://blog.naver.com/easeon11/223186568393 이번 시간에는 서브쿼리를 더욱 연습했습... blog.naver.com 이번 시간에는 데이터베이스를 어떻게 표현하는지 ERD로 살펴보았고, 간단한 DB를 설계했습니다. 그리고 추가적인 DB 문법과 뷰, 인덱스 등에 대해 알아보았습니다. ERD 표기법 RDB에서 엔티티 = 행 = 튜플 = 인스턴스를 의미합니다. 그리고 엔티티타입 = 테이블을 의미하는데, 이를 엔티티라고도 합니다. 엔티티에는 부모 엔티티와 자식 엔티티가 있습니다. 먼저 자료가 추가되어야 하는쪽이 부모 엔티티이며, 이를 참조하는 것이 자식 엔티티입니다. 그리고 부모 엔티티의 기본키를 자식 엔티티의 일반 컬럼으로 참조하는 구조를 비식별자 관계라고 합니다. 이때 ERD에서는

데이터베이스 정규화와 ERD, 시퀀스, 트랜잭션, JDBC [21일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223189910902 데이터베이스 설계와 ERD, 뷰, 인덱스 [20일차] 이전 학습 내용: https://blog.naver.com/easeon11/223189904594 이번 시간에는 데이터베이스를 어떻게 표... blog.naver.com 이번 시간에는 데이터베이스를 정규화하고 ERD를 그려보는 실습을 했습니다. 그리고 데이터베이스의 시퀀스와 트랜잭션에 대해 알아보고, 자바 코드에서 DB를 사용하기 위해 JDBC에 대해 학습했습니다. 마지막으로는 오라클의 계정 설정과 DB를 import하고 export하는 방법을 알아보았습니다. 정규화 연습 아래 테이블의 이상 현상을 없애기 위해 정규화를 할 수 있습니다. 현재 테이블은 고객 이름을 기본키로 사용하고 있는데, 이는 중복되는 데이터가 있습니다. 그래서 고객을 하나의 테이블로 정규화하고, 고객 ID를 기본키로 둘 수 있습니다. 그 외에 구매한 물건, 단가,

미니 프로젝트 회고록 [22~24일차] [내부링크]

시작 전에 3일간 Java + Database를 이용해 콘솔에서 상호작용하는 미니 프로젝트를 진행했습니다. 주제는 식당에 대한 정보와 리뷰를 제공하는 망고 플레이트 같은 서비스를 제작하는 것입니다. https://github.com/kosa-project1-team4/kosa-mango GitHub - kosa-project1-team4/kosa-mango: kosa 미니 프로젝트 (망고플레이트 클론) kosa 미니 프로젝트 (망고플레이트 클론). Contribute to kosa-project1-team4/kosa-mango development by creating an account on GitHub. github.com 총 제작 기간이 3일이라고 명시했지만 해당 일 전후로도 시간을 사용하여 거진 1주일 정도 제작을 했던 것 같습니다. 개인적으로 하고 있는 프리랜서 일이랑 겹쳐 새벽까지 작업을 하는 일이 많았던 것 같습니다. 아무튼 이번 미니 프로젝트에 대한 회고를 작성하고자

웹 프로그래밍 개요, 마크업의 역사와 HTML [25일차] [내부링크]

앞서 자바와 데이터베이스를 학습한 뒤 간단한 미니 프로젝트를 진행하였습니다. (미니 프로젝트 회고 링크) 이제는 웹 프로그래밍에 대해 학습할 예정입니다. 웹 프로그래밍 개요 일반적인 서버 - 클라이언트 프로그래밍은 흔히 아는 서버와 그 서버를 이용하는 클라이언트 프로그램이 연결되어 이용합니다(FAT Client). 웹의 경우에는 80번 포트로 열리는 웹 서버만 있다면 클라이언트 프로그램 없이도 웹 브라우저(크롬, 엣지, 오페라, 사파리 등)만 있으면 사용이 가능합니다(THIN Client). FAT Client는 소켓을 연결하고, 입출력 스트림 설정을 하고 등 복잡했지만, 웹의 경우 이러한 요청과 응답을 브라우저가 다 해주기 때문에, 웹 서버 안에서 서비스할 프로그램만 만들면 되어서 간단하고 유지보수도 편해집니다. 웹 서버의 경우 아파치, IIS, 톰캣, 레진, Nginx 등이 있고, WAS라고 하는 웹로직, 웹스피어, 제우스 들도 있습니다. 예를 들어 html, css, js로 구

HTML 태그, form과 input [26일차] [내부링크]

이전 시간 학습 내용: https://blog.naver.com/easeon11/223201604276 웹 프로그래밍 개요, 마크업의 역사와 HTML [25일차] 앞서 자바와 데이터베이스를 학습한 뒤 간단한 미니 프로젝트를 진행하였습니다. (미니 프로젝트 회고 링크... blog.naver.com 이번 시간에는 HTML의 태그들을 사용해보았습니다. 특히 <form> 태그와 그 안에서 활용되는 <input>에 대해 여러 속성과 타입들을 중점적으로 알아보았습니다. 웹 웹 브라우저에서는 html의 렌더링 엔진을 통해 화면에 보여집니다. 렌더링 엔진은 종류가 많기 때문에, 다양한 N-Screen에 대응할 수 있도록 html로 웹 페이지를 만들어야 합니다. 웹 서버를 통해 띄워진 서버는 클라이언트가 웹 브라우저를 통해 접속하는데요. html, css, javascript는 클라이언트 측에서 실행된다면, servlet, jsp는 서버 측에서 실행됩니다. 그래서 한 가지 예시로 Date를 사용할

이클립스에 Tomcat 연결하는 방법, block과 inline, CSS 적용하는 방법 [27일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223201606354 HTML 태그, form과 input [26일차] 이전 시간 학습 내용: https://blog.naver.com/easeon11/223201604276 이번 시간에는 HTML의 태그들을 ... blog.naver.com 이번 시간에는 Tomcat과 이클립스를 연동하는 방법에 대해 알아보았습니다. 그리고 HTML에 이어서 이번에는 CSS를 적용하는 방법을 학습했습니다. 이클립스로 Tomcat 연결 설치한 톰캣의 압축을 풀고, 윈도우에서는 bin 폴더 내 startup.bat을 실행하면 됩니다. 단, 실행 시 문제가 발생한다면 JAVA_HOME 환경 변수가 잘 설정되어 있는지 확인바랍니다. 종료할 때는 shutdown.bat을 실행합니다. 혹시 오라클 DB가 설치된 경우, 톰캣이 기본적으로 사용하려고 하는 8080포트가 이미 사용 중이기 때문에 bind exception이 발생할 것입니다

CSS 선택자, 자주 사용되는 CSS [28일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223201608067 이클립스에 Tomcat 연결하는 방법, block과 inline, CSS 적용하는 방법 [27일차] 이전 학습 내용: https://blog.naver.com/easeon11/223201606354 이번 시간에는 Tomcat과 이클립스를 연동... blog.naver.com 이번 시간에는 css 선택자와 대표적인 css들과 그 속성들에 대해 알아보았습니다. CSS 선택자 css를 적용하는 방법이 몇 가지 있습니다. 먼저 태그 이름으로 부여하는 element selector는 태그 이름을 이용해 css를 적용합니다. p { } // <p> 태그 다음 id selector는 태그 안에서도 특정 요소를 식별해서 css를 적용할 수 있습니다. #id와 같은 형태로 적용합니다. #pra1 { } // id가 para1인 요소 그리고 class selector는 여러 요소에 class라는 속성 값

HTML/CSS만 활용한 간단한 웹 실습(커피 사이트, 회원가입, 로그인) [29일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223201609491 CSS 선택자, 자주 사용되는 CSS [28일차] 이전 학습 내용: https://blog.naver.com/easeon11/223201608067 이번 시간에는 css 선택자와 대표적인 css... blog.naver.com 이번 시간에는 이어서 여러 CSS 속성들을 배우고, 스타벅스 사이트를 참고해서 간단히 커피 전문점 사이트를 만들었습니다. 그리고 DOM에 대해 간단히 알아보았습니다. CSS 속성 links: <a> 태그에 적용할 수 있는 css 속성들이 여러 개 있습니다. `a:link`, `a:vistied`, `a:hover` 등 상황에 따라 지정할 수 있는 선택자들이 있습니다. 그래서 상황에 따라 color를 지정하거나, text-decoration을 none으로 지정하여 밑줄을 없애는 것 등이 가능합니다. list: <ul>, <ol>을 통해 리스트를 나타내는데, list

자바스크립트 기초 문법, 함수, 이벤트 핸들링 [30일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223201612030 HTML/CSS만 활용한 간단한 웹 실습(커피 사이트, 회원가입, 로그인) [29일차] 이전 학습 내용: https://blog.naver.com/easeon11/223201609491 이번 시간에는 이어서 여러 CSS 속성들... blog.naver.com 이번 시간에는 HTML에 자바스크립트를 추가하는 방법을 학습했습니다. 자바 문법과 비교하면서 자바스크립트 문법을 간단히 익히고, 특히 함수에 대해서는 자세히 알아보았습니다. 그리고 DOM 요소에 접근하여 여러 태그에 이벤트를 추가하는 방법을 실습했습니다. 자바스크립트 HTML과 CSS로 만든 웹 페이지에 동적인 기능을 추가하기 위해서 자바스크립트를 이용해야 합니다. HTML의 경우 렌더링 엔진이 해석해서 출력하였지만, 자바스크립트 코드는 렌더링 엔진이 해석할 수 없고 자바스크립트 인터프리터가 해석합니다. 그래서 자바스크립트 인터프리

자바스크립트 이벤트, this와 화살표 함수, DOM, window 객체 다루기 [31일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223202539164 자바스크립트 기초 문법, 함수, 이벤트 핸들링 [30일차] 이전 학습 내용: https://blog.naver.com/easeon11/223201612030 이번 시간에는 HTML에 자바스크립트를... blog.naver.com 이번 시간에는 자바스크립트의 이벤트에 대해 더 알아보고, 여러 메서드들을 훑어보았습니다. 그리고 this와 화살표 함수에 대해 학습하고, DOM 트리를 직접 접근해 노드를 찾고 생성해보는 연습을 해보았습니다. 마지막으로 Window 객체를 통해 창을 열고 닫는 실습과 시간 관련 메서드를 사용해보았습니다. 이벤트 <a> 태그에는 클릭을 처리하는 기본 이벤트 핸들러가 있습니다. 다만 직접 정의한 이벤트를 추가해보겠습니다. 태그의 배경색을 지정해줄건데, 자바스크립트에서 css 속성을 직접 지정할 때는 camel case로 해주면 되겠습니다. (ex. backgroun

[Java] 메서드에 대해서 [내부링크]

메서드 다른 프로그래밍 언어에서 보통 함수라고 하는 것을 자바에서는 메서드(method)라고 부릅니다. 메서드는 연관된 코드들을 묶어 정리해놓은 것이라고 생각할 수 있습니다. Math.floor()처럼 다른 사람이 정의한 메서드들도 있고, 또 프로그램을 실행하기 위해 정의해온 main()도 메서드입니다. public static void main(String[] args) { System.out.println("Hello Method"); System.out.println(Math.floor(1.1)); } 메서드를 이용하면 코드를 그룹핑하고 정리해서 코드의 의미를 명확히 파악하기 더 좋아지고, 중복되는 코드를 제거하기 때문에 코드의 양도 훨씬 줄어듭니다. 그리고 코드가 잘못되었을 때 메서드를 한 번 수정하기만 하면 됩니다. 아래는 메서드를 정의하고 사용하는 예시입니다. public static void printTwoTimesA() { System.out.println("-");

자바스크립트 WEB API, 비동기 처리(ajax)와 CORS, jQuery 소개 [32일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223203226124 자바스크립트 이벤트, this와 화살표 함수, DOM, window 객체 다루기 [31일차] 이전 학습 내용: https://blog.naver.com/easeon11/223202539164 이번 시간에는 자바스크립트의 이벤트에 ... blog.naver.com 이번 시간에는 자바스크립트의 window 객체의 url을 다루는 방법에 대해 알아보고, web api로 제공되는 다양한 기능을 살펴보았습니다. 그리고 비동기 처리를 위한 AJAX와 서버 간의 통신 시 발생할 수 있는 CORS 에러를 해결해보았습니다. 마지막으로 jQuery가 무엇인지 알아보았습니다. window 객체와 web api window 객체의 location을 이용하면 현재 주소 url을 얻어오거나, 다른 페이지로 리다이렉트할 수 있습니다. 그래서 메뉴를 클릭하면 페이지를 이동하는 이벤트를 다음과 같이 등록할 수 있습니

jQuery 문법, 회원가입 및 로그인 페이지 만들기 [33일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223204432191 자바스크립트 WEB API, 비동기 처리(ajax)와 CORS, jQuery 소개 [32일차] 이전 학습 내용: https://blog.naver.com/easeon11/223203226124 이번 시간에는 자바스크립트의 window 객... blog.naver.com 이번 시간에는 jQuery 문법 예시들을 살펴보고, jQuery를 이용해 메인화면에서 로그인, 회원가입 페이지를 불러오도록 코드를 작성했습니다. jQuery 문법 메모리 상황이 좋지 않은 소규모 디바이스에서 웹 브라우저를 무겁게하면, 장치가 느려질 수 밖에 없습니다. 이런 상황에서는 바닐라 JS를 사용하는 것이 좋고, 성능이 좋은 디바이스에서는 라이브러리를 활용하면 좋습니다. 바닐라 JS로 작성한 코드에 동적으로 HTML 문서를 끼워넣어도, 해당 HTML의 Script가 실행되지 않습니다. 이를 실행하게 하려면, DOM의

자바 서블릿 만들기, servlet lifecycle [34일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223205440873 jQuery 문법, 회원가입 및 로그인 페이지 만들기 [33일차] 이전 학습 내용: https://blog.naver.com/easeon11/223204432191 이번 시간에는 jQuery 문법 예시들을 살... blog.naver.com 이번 시간에는 자바 서블릿을 알아보고 직접 만들었습니다. 코로나로 인해 수업을 직접 수강하지 못하여 내용이 조금 빈약할 수 있습니다. jQuery 몇 가지 jQuery 문법을 짚고 넘어갑니다. `$.ajax({})`: 비동기적으로 HTTP 요청을 하는 문법이며, url, type, data 등을 정의해서 사용합니다. `$.get()`: GET 요청을 합니다. `$("#result").load("test.html");`: html 파일을 읽어서 '#result' 요소에 넣습니다. 서블릿 라이프사이클 자바의 서버 사이드 프레임워크는 RPC → RMI →

JSP 문법 익히기 [35일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223208076564 자바 서블릿 만들기, servlet lifecycle [34일차] 이전 학습 내용: https://blog.naver.com/easeon11/223205440873 이번 시간에는 자바 서블릿을 알아보고 직... blog.naver.com 이번 시간에는 RequestDispatcher에 대한 내용을 더 다뤄보고, JSP의 라이프사이클부터 여러가지 문법들을 배웠습니다. 그리고 상품 페이지를 서블릿과 jsp로 작성할 수 있도록 준비했습니다. RequestDispatcher 지난 시간에 페이지를 이동하기 위해 RequestDispatcher의 sendRedirect()를 이용한 리다이렉트 외에 forward()로 이동하는 것도 했었는데요. include()라는 것도 있습니다. 이는 제어권을 완전히 넘기지 않고, 중간에 포함시키는 역할을 합니다. 만약 forward()를 사용하는 경우 기존에 작

MVC 기반으로 상품 목록 출력하는 서블릿/JSP 만들기 [36일차] [내부링크]

이전 학습 내용: https://blog.naver.com/easeon11/223208859652 JSP 문법 익히기 [35일차] 이전 학습 내용: https://blog.naver.com/easeon11/223208076564 이번 시간에는 RequestDispatcher에 대... blog.naver.com 이번 시간에는 MVC 기반으로 상품 목록 출력하는 서블릿과 JSP 코드를 작성해보았습니다. 상품 목록 출력하기 실습 프로젝트 설계 시 기능을 도출한 뒤 클래스를 설계할 때, 쿼리를 미리 작성해보면 어떠한 데이터가 필요한지 쉽게 예측해서 설계할 수 있습니다. 이번에는 MVC 구조에 기반한 상품 목록 출력 기능을 구현해보겠습니다. 전체 구조이며, product에 관한 코드만 확인하면 됩니다. com.my.exception 정의한 사용자 예외 처리 클래스를 모아둔 패키지입니다. 코드는 모두 유사하기 때문에 하나의 클래스만 살펴보면 됩니다. FindException.java Exce

자바 백엔드(servlet, jsp)와 HTML 프론트엔드로 상품 리스트 및 상세 정보 출력 코드 예시 [37일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223209719046 MVC 기반으로 상품 목록 출력하는 서블릿/JSP 만들기 [36일차] 이전 학습 내용: https://blog.naver.com/easeon11/223208859652 이번 시간에는 MVC 기반으로 상품 목록... blog.naver.com 이번 시간에는 서블릿과 JSP로 상품 리스트와 상세 정보를 JSON 형태로 반환해서 HTML 코드로 해당 데이터를 받아 화면에 출력하는 코드 실습을 진행했습니다. 페이지네이션 클릭 이벤트 JSP에서 페이지 번호 클릭 시 URL을 로드하여 페이지를 이동시키는 코드입니다. $(() => { $('.productlist>.pagegroup>span.page').click((e) => { const pg = $(e.target).attr('class').split(' ')[1] const currentPage = pg.substr(2) const url

Java Servlet, 세션을 이용한 장바구니 기능 구현 [38일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223210850433 자바 백엔드(servlet, jsp)와 HTML 프론트엔드로 상품 리스트 및 상세 정보 출력 코드 예시 [37일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223209719046 이번 시간에는 서블릿과 JSP로 상품 ... blog.naver.com 이번 시간에는 프론트엔드 코드 중 HTML에서 CSS와 JS를 분리하였습니다. 그리고 백엔드 코드에서는 쿠키와 세션의 개념에 대해 학습하고, 세션을 이용해 장바구니 기능을 구현해보았습니다. 프론트엔드 코드 import 프론트엔드 코드에서 CSS와 Javascript 코드를 따로 파일로 분리하려고 합니다. 아래와 같은 구조가 됩니다. CSS import를 이용하면 중복되는 css 파일을 불러올 수 있습니다. 예를 들어 아래와 같이 박스 사이징을 하는 base.css가 있다고 해봅시다. * { box-si

세션을 이용한 장바구니 구현, 프론트엔드 [39일차] [내부링크]

이전 학습 내용 : https://blog.naver.com/easeon11/223211835257 Java Servlet, 세션을 이용한 장바구니 기능 구현 [38일차] 이전 학습 내용 : https://blog.naver.com/easeon11/223210850433 이번 시간에는 프론트엔드 코드 중 HT... blog.naver.com 지난 시간에 이어서 이번 시간에도 자바 서블릿에서 장바구니 기능을 구현했는데요. HTML 프론트엔드와 백엔드에 세션을 처리하는 코드를 작성하고, 프론트엔드에 장바구니 화면을 추가했습니다. 장바구니 기능 구현 프론트엔드에서 백엔드에 AJAX 요청을 할 때 JSESSIONID 쿠키는 헤더에 포함되지 않습니다. 왜냐하면 두 서버 간에 cross-origin 문제 때문에 쿠키가 전달되지 않기 때문입니다. 그래서 서버는 매번 새로운 세션을 만들어서 응답을 해주고 클라이언트는 같은 세션을 쓰지 못하게 됩니다. 이 설정을 하려면 프론트엔드에서는 AJAX 요청

Java Oracle ConnectionPool 연결 방법 [내부링크]

개요 프로젝트에서 JDBC Connection을 연결하고 해제하는 비용이 꽤 크기 때문에, 미리 Connection Pool을 만들어두고 접속하는 사람에게 하나씩 나눠주는 형태를 많이 취합니다. 설정 방법에 대해 상세히 알아보겠습니다. 방법 1. 이클립스에 톰캣 경로 서버 경로를 설정하고, 서블릿을 접속할 수 있는 환경을 갖춰놓은 상태에서 진행합니다. 먼저 프로젝트 익스플로러에서 Servers 폴더를 찾으세요. 2. 그 다음 안에 있는 `context.xml`에 아래와 같이 추가합니다. 설정한 name의 경우 다른 파일에서도 동일한 이름으로 설정할 것입니다. ... <ResourceLink global="jdbc/myoracle" name="jdbc/myoracle" type="javax.sql.DataSource" /> </Context> 3. 그리고 `server.xml`에는 아래와 같이 추가합니다. username과 password는 자신의 DB 접속 정보를 적습니다. ...