pjok1122의 등록된 링크

키자드에 등록된 총 291개의 포스트를 확인하실 수 있습니다.

Naver Blog

IntelliJ 서버 속도 향상시키기

IntelliJ 최신 버전(20년) Imac 19년 모델을 사용하고 있는데 Spring boot 또는 Tomcat 서버가 뜨는 속도가 너무 느린 현상이 발생했다.아이맥 말고도 맥북프로 16인치 모델에서도 발생하는 거로 보아 여러 모델에서 발생할 수 있는 것 같다. 간단한 스프링 부트 프로젝트가 뜨는데, 분 단위로 걸릴 경우 하단에 나온 내용대로 설정해보는 것을 추천한다.필자는 회사 프로젝트가 2분 이상 걸리던 문제를 9초로 줄일 수 있게 되어 매우 쾌적하게 개발을 할 수 있게 됐다..1. /etc/hosts 설정하기/etc/hosts는 domain이랑 IP주소를 매핑시켜주는 파일이다. 이 파일은 DNS보다 먼저 적용되기 때문에, DNS 통신을 하지 않고 사용할 수 있다. .......

Naver Blog

MongoTemplate을 이용한 배열 처리

1. 굳이 MongoTemplate을?Spring에서 제공해주는 대표적인 데이터 액세스 API로는 JdbcTemplate이 있다. JdbcTemplate은 RDBMS에만 사용가능하며, JDBC 기술을 기반으로 한다는 것을 이름에서부터 알 수 있다. Spring은 MongoDB에서도 거의 유사하게 사용할 수 있도록 MongoTemplate을 제공한다.최근 프로젝트들은 대부분 JdbcTemplate를 사용하지 않고, JPA의 구현체인 Hibernate + QueryDSL 조합을 사용한다. QueryDSL은 공식 라이브러리는 아니지만, Hiberante에서 동적쿼리를 짜는 불편함을 해소해주는 용도로 대부분의 개발자들이 채택해 사용하고 있다.안타깝게도 MongoDB와 관련해서는 JPA와 같은 멋진 공식 ORM 기술이 존재하진 않.......

Naver Blog

[Spring] 빈의 스코프 (싱글톤, 프로토타입, Provider, 프록시패턴)

스코프1. 싱글톤기본적으로 스프링의 빈은 싱글톤으로 만들어진다. 싱글톤으로 생성된 빈의 경우 DI, DL 어떤 경우에도 동일한 오브젝트를 얻어오는 것을 확인할 수 있다. 따라서 싱글톤의 필드에는 의존관계에 있는 빈에 대한 레퍼런스나 읽기전용 값만 저장해두고, DTO와 같은 변수는 파라미터나 리턴값으로 전달하는 것이 바람직하다.2. 프로토타입프로토타입 스코프는 컨테이너에게 빈을 요청할 때마다 새로운 오브젝트를 생성해준다. 매번 새로운 오브젝트가 필요하면서 DI를 통해 다른 빈을 사용할 수 있어야 한다면 프로토타입의 빈은 적절한 선택이 될 수 있다.프로토타입 빈 내에서 싱글톤을 DI 받아 사용하는 것에는 아무런.......

Naver Blog

[Spring] 런타임환경과 프로파일, 프로퍼티 (@profile)

런타임 환경과 프로파일스프링 3.1에서는 런타임 환경 마다 빈 설정을 다르게 할 수 있는 기능이 추가됐다. 개발환경, 배포환경에 따라서 빈 설정이 달라져야 하는 경우 프로파일을 이용한다.프로파일 지정환경에 따라 달라져야 하는 빈에 `@Profile("환경이름")` 애노테이션을 붙이면, 해당 빈은 Active Profile인 경우에만 빈이 생성된다.프로파일 이름에는 `!(not), &(and), |(or)` 논리연산자를 사용할 수 있다.활성 프로파일 설정특정 프로파일에 정의된 빈을 사용하고 싶으면 해당 프로파일을 활성(active) 프로파일로 만들어줘야 한다. 활성 프로파일을 지정할 시스템 프로퍼티의 이름은.......

Naver Blog

[Spring] Validation 추상화 Validator

Validatororg.springwork.validation.Validator애플리케이션에서 사용하는 객체 검증용 인터페이스다. 스프링 MVC에서 주로 사용되지만, 사실 어떠한 계층과도 상관없이 사용할 수 있다. 웹 서비스, 데이터 등 어느 계층에서나 사용 가능하다. Validator의 구현체로는 `LocalValidatorFactoryBean`이 있다.인터페이스- boolean supports(Class clazz) : 어떤 타입의 객체를 검증할 때 사용할 것인지를 결정한다.- void validate(Object obj, Errors e) : 실제 검증 로직을 이 안에서 구현하며, 에러 발생 시 e에 에러를 주입한다.- 구현할 때 ValidationUtils를 사용하면 편리하나, 오래된 방법.스프링 부트 2.0.5 이상 버전.......

Naver Blog

[Git] Git status, git commit 메시지 한글 깨짐 수정하기

git config --global core.quotepath false이 환경변수만 전역으로 설정해주면 한글깨짐 현상 없어짐.#git #한글 #깨짐 #인코딩 #status #bash

Naver Blog

[Spring] MessageSource 사용하기 (국제화 기능)

MessageSource애플리케이션 컨텍스트는 MessageSource를 extends하고 있다. MessageSource는 `국제화 기능(다국어)`을 제공하는 인터페이스라고 생각하면 된다. 스프링 부트를 사용한다면 별다른 설정없이 messages.properties를 사용할 수 있다.- messages.properties- messages_ko_kr.properties- ...사용방법릴로딩이 있는 메시지소스 사용하기var는 Java 10 이상에서 지원하는 문법입니다.#Spring #Framework #MessageSource #다국화 #국제화 #IoC #DI #Inversion #of #control #Dependency #Injection #IoC #컨테이너 #Application #context #BeanFactory #Bean

Naver Blog

[Spring] ResourceLoader

ResourceLoader애플리케이션 컨텍스트의 또 다른 기능으로는 ResourceLoader가 있다. 말 그대로 리소스를 읽어오는 기능을 제공하는 인터페이스다. 이 인터페이스의 핵심 메서드는 `getResource` 하나이다.Resource스프링은 자바에 존재하는 일관성없는 리소스 접근 API를 추상화해서 Resource라는 추상화 인터페이스를 정의했다. (java.net.URL을 추상화)- 스프링에서 외부의 리소스가 필요할 때, 대부분 이 `Resource` 추상화를 사용한다.- Resource는 스프링에서 빈이 아니라 값으로 취급된다.- Resource 타입은 `<property>` 태그의 value를 이용해 문자열로 값을 넣는데, 이 문자열로 된 리소.......

Naver Blog

[Spring] ApplicationEventPublisher

ApplicationEventPublisherApplicationContext가 제공하는 또 다른 기능 중 하나로, 이벤트 프로그래밍에 필요한 인터페이스를 제공한다. (옵저버 패턴 구현체)이벤트 만들기- ApplicationEvent 상속- 스프링 4.2부터는 이 클래스를 상속받지 않아도 된다.이벤트 발생시키기- ApplicationEventPublisher.publishEvent(ApplicationEvent event)이벤트 처리하기- `ApplicationListener<이벤트>`를 구현한 클래스를 만들어 빈으로 등록한다.- 스프링 4.2부터는 `@EventListener`를 사용해서 빈의 메서드에 사용할 수 있다.- 기본적으로는 synchronized로 구현되어있지만, @Async를 사용할 수 있다.- 순서를.......

Naver Blog

[Spring] Validation 추상화

Validatororg.springwork.validation.Validator애플리케이션에서 사용하는 객체 검증용 인터페이스다. 스프링 MVC에서 주로 사용되지만, 사실 어떠한 계층과도 상관없이 사용할 수 있다. 웹 서비스, 데이터 등 어느 계층에서나 사용 가능하다. Validator의 구현체로는 `LocalValidatorFactoryBean`이 있다.인터페이스- boolean supports(Class clazz) : 어떤 타입의 객체를 검증할 때 사용할 것인지를 결정한다.- void validate(Object obj, Errors e) : 실제 검증 로직을 이 안에서 구현하며, 에러 발생 시 e에 에러를 주입한다.- 구현할 때 ValidationUtils를 사용하면 편리하나, 오래된 방법으로 자주 사용되지 않는다.스.......

Naver Blog

[Spring] DataBinding 추상화 (PropertyEditor, Converter, Formatter, ConversionService)

DataBinding[org.springframework.validation.DataBinder]- 기술적인 관점 : 프로퍼티 값을 타겟 객체에 설정하는 기능- 사용자 관점 : 사용자 입력값을 애플리케이션 도메인 모델에 동적으로 변환해 넣어주는 기능. 즉, 입력값은 항상 "문자열"인데, 그 값을 객체가 가지고 있는 타입(int, long, boolean, Data, `Event`, `Book`)으로 변환해 넣어주는 기능을 제공한다.PropertyEditor- 스프링 3.0 이전까지 DataBinder가 변환 작업에 사용하던 인터페이스 (오래된 버전)- Thread-safe 하지 않기 때문에 **절대 싱글톤으로 생성해서는 안된다.** (상태 정보가 저장되어있음.)- Object와 String 간의 변환.......

Naver Blog

[Spring] Aspject Oriented Programming (AOP)

스프링 AOPAspect Oriented Programming(AOP)는 OOP를 보완하는 수단으로, 흩어진 Aspect를 모듈화하여 비즈니스 로직을 헤치지 않고 재사용하는 프로그래밍 기법이다.AOP의 주요 개념- Aspect : 흩어진 관심사를 모듈화 한 것을 의미한다.- Advice : 실직적으로 어떤 일을 해야할 지에 대해 정의한 내용. (ex. Aspect X의 노란색 코드)- Target : Advice를 적용할 곳을 의미한다. (ex. Class A, Method)- Join point : Advice가 적용될 수 있는 위치에 대한 스펙.- Pointcut : 구체적인 Advice가 실행될 지점을 의미한다.AOP의 구현체AOP의 구현체는 언어마다 다양하게 존재한다. 자바에서는 AspectJ와 스프링AOP가 존재한다........

Naver Blog

[Spring] Summernote 이미지 업로드

Summernote 이미지 업로드summernote의 이미지 업로드는 기본적으로 base64로 인코딩하여 적용됩니다. 이미지의 용량이 큰 경우에는 CPU를 많이 사용하기 때문에 서버가 죽는 사례도 종종 볼 수 있습니다. 따라서 이미지를 업로드하면 비동기로 처리하여 파일의 이름을 랜덤하게 생성하여 db에 저장하고 관리하는 방법을 살펴보겠습니다.먼저 DB의 최종 결과를 보면 다음과 같습니다.Article의 content에는 "image/1"이 삽입되어있으며 여기서 "1"은 파일의 번호와 이어집니다. 즉, 클라이언트가 1번 이미지를 요구하면, 서버는 1번 이미지의 FILE_PATH를 읽어들여 클라이언트에게 전달합니다.이제 JPA를 이용하여 S.......

Naver Blog

JDBC Mysql 연동하기

1. Mysql 설치https://blog.naver.com/pjok1122/221516693123비트나미 이용해서 "설치까지만" 진행합니다.2. JDBC란?JDBC는 Java에서 DB를 제어할 수 있도록 도와주는 API들의 집합체 입니다.DB의 종류는 굉장히 다양합니다. MySQL, Oracle, MongoDB 등등.. 하지만 DB의 종류에 따라서 메서드의 사용법이 달라진다면 굉장히 사용하기 힘들겠죠? 따라서 JDBC라는 패키지는 모든 DB에서 동일한 사용방식을 제공하도록 Interface로 이루어져있습니다.즉, JDBC는 java.sql 이라는 패키지이며 내부는 인터페이스들로 이루어져 있단 얘기입니다.따라서 본인이 MySQL을 사용한다면 JDBC 인터페이스를 구현한 클래스가 필요하고, O.......

Naver Blog

JDBC MySQL 연동하기 (2)

1. JDBC의 실행순서1) DB Driver를 Java 메모리 상으로 로드합니다.2) Driver를 통해 Java와 DB를 연결(connection) 합니다. - 이때 url, id, pw를 넘겨주어야 합니다. - url은 db 위치, id는 db 계정, pw는 비밀번호인데, 밑에서 자세히 다루겠습니다.3) 연결이 완료되면, statement나 preparedstatement로 쿼리문을 전송합니다.4) 쿼리문이 Select라면 ResultSet으로 받고, 그 외에는 int 타입으로 받습니다.5) 쿼리를 다 사용했다면, ResultSet부터 역순으로 리소스를 close() 진행합니다.2. JDBC API 사용해보기 1. Driver Load- oracle이라면 oracle 드라이버가 있는 위치를 구글에 검색하셔서 입력하시면 됩니다. 2. Connection- url은 l.......

Naver Blog

[JDBC] DAO, DTO(=VO) 개념과 활용

1. DAOData Access Object의 약자로 "데이터베이스에 접근하는 객체" 라는 뜻 입니다. DAO를 구현하지 않으면, 서비스 로직 부분과 DB에 접근하는 부분이 한 파일(servlet)에 작성됩니다. 이러한 방법은 객체지향 1원칙인 단일책임의 원칙을 위배하게 되므로, 루틴을 분리하여 작성해야 합니다. (하나의 클래스는 하나의 기능만을 제공하라는 의미입니다.)DAO는 개발자가 select(), insert(), update(), delete()와 같은 연산들에 대한 인터페이스를 미리 정의해놓음으로써 데이터에 대한 처리를 간단하게 할 수 있도록 도와줍니다.[BookDAO]- select() 외에도 자주 쓰이는 쿼리문의 인터페이스를 미리 지정해두면 편하게 사용이.......

Naver Blog

[JSP/Servlet] Connection Pool 사용하기 (JNDI, Context, DataSource)

1. Connection Pool기존의 웹 서버는 DB에 접근할 때마다 DB의 커넥션을 만들고, 커넥션을 해제하는 작업이 필요합니다. 이러한 작업은 DB 성능에 악영향을 끼칩니다. (= JDBC의 문제점)따라서 커넥션을 미리 만들어놓고 요청이 들어오면 Connection Pool에서 connection을 제공하고, 작업이 끝나면 connection pool에 반납하는 과정을 거치도록 구현하면 불필요한 작업을 제거할 수 있습니다.2. DataSourceDataSource 객체는 Connection pool을 관리하는 객체입니다. 이 객체는 JNDI(Java Naming & Directory Interface) 서버를 통해서 이용됩니다.[사용 절차]1) JNDI Server에서 lookup() 메서드를 호출해 DataSource 객체.......

Naver Blog

[JSP] 액션태그 ( forward, param, include )

1. 액션태그액션태그란 JSP 페이지 내에서 어떤 동작을 하도록 지시하는 태그 입니다. 예를 들어 페이지 이동, 페이지 include, 자바 빈 생성 등이 있습니다.2. 대표적인 액션태그만 살펴보기 1) forward- forward는 현재 페이지를 다른 페이지로 전환할 때 사용합니다.[first.jsp]이처럼, 클라이언트에게 보여지는 페이지 URL은 first.jsp 라는 특징이 있습니다.이전에 배웠던 response.sendRedirect()를 사용할 경우, 페이지를 다시 요청하는 것이기 때문에 URL는 second.jsp로 출력될 것입니다. 2) param- forward 액션태그와 param을 이용해서 다른 페이지에 데이터를 전달할 수 있습니다.[first.jsp][second.jsp] 만약 전달하는.......

Naver Blog

[JSP] 자바빈즈(Java Beans)

1. 자바빈즈자바빈즈란 빌더 형식의 개발도구에서 가시적으로 조작이 가능하고 또한 재사용이 가능한 소프트웨어 컴포넌트입니다. 쉽게 JSP 파일 내에서 사용이 가능한 객체라고 생각해도 괜찮을 것 같습니다.자바빈즈(객체)는 하나의 JSP에 종속되는 것이 아니라 여러 JSP 페이지에서 사용될 수 있습니다. 2. 자바빈즈의 장점1) 폼 데이터 처리에 좋다. - 수 많은 파라미터를 자바 빈에 담아 사용/전달 할 수 있기 때문.2) 재사용성 - 자바빈즈는 앞서 말했던 것처럼 여러 JSP 페이지에서 사용될 수 있다.3) 컴포넌트 기반 구현 - JSP, Java bean, Business Logic이 분리되어 각각이 하는 기능을 줄일 수 있습니다. 3. JSP 자바빈즈.......

Naver Blog

[JSP] EL(Expression Language)

1. EL(Expression Language)란?EL은 JSP 2.0 스펙에 추가된 언어입니다. EL이 없어도 JSP를 작성하는 데에는 아무런 문제가 없지만, 코드의 가독성 문제를 해결하기 위해 등장했습니다.기존의 표현식 태그를 사용하려면 <%= %> 키워드를 사용해야 했지만, EL은 ${ } 이라는 직관적인 표기법을 사용합니다.EL의 구문 안에는 산술연산, 논리연산, 비교연산, empty 연산이 사용 가능합니다. 2. EL의 내장 객체앞서 JSP 자체에 내장된 객체들이 있다고 했습니다. EL 또한 다음과 같은 내장 객체를 지원합니다. 자주 사용되는 객체를 제외하고는 암기할 필요는 없어 보이네요. 3. 간단한 사용 예시 1) paramQuery String으로 넘겨.......

Naver Blog

[Spring] IoC 개념 , IoC 컨테이너, Spring IOC, DI

1. IoC (Inversion of Control)란?IoC는 제어의 역전이라는 뜻으로 객체가 자신이 사용할 오브젝트를 스스로 선택하지 않으며, 자신이 어떻게 만들어지고 사용되는 지에 대한 정보도 알 수 없도록 하는 기법입니다. 즉, 제어권을 타 객체에게 넘겨주어 자신이 사용하는 객체에 대한 컨트롤을 하지 않습니다.< IoC가 적용되지 않은 코드>UserDao는 자신이 필요한 객체를 직접 생성하고, 그 객체를 직접 컨트롤 하는 모습입니다.<IoC가 적용된 코드>UserDao는 자신이 필요한 객체를 직접 생성하지 않고, 외부 객체로부터 필요한 객체를 주입받습니다. 이러한 상황에서 제어의 역전이 적용되었다고 합니다. 제어의 역전은 포괄.......

Naver Blog

[Spring] IoC 컨테이너와 Bean

IoC 컨테이너와 BeanSpring에서 사용되는 IoC란 객체가 내부적으로 조작할 객체를 직접 생성하지 않고 외부로부터 주입받는 기법을 의미한다. 이때 객체를 외부로부터 주입해주는 작업을 DI(의존성 주입)이라고 부른다.IoC Container는 오브젝트의 생성과 관계설정, 사용, 제거 등의 작업을 대신 해준다하여 붙여진 이름이다. 이때, IoC Container에 의해 관리되는 오브젝트들은 Bean 이라고 부른다. IoC Container는 Bean을 저장한다고 하여, BeanFactory 라고도 불린다. BeanFactory는 하나의 인터페이스이며, Application Context는 BeanFactory의 구현체를 상속받고 있는 인터페이스이다. 실제로 스프링에서 IoC Container 라고 불리는.......

Naver Blog

[Spring] 빈 설정 등록 (@Configuration @Bean, Xml, @Component, @ComponentScan)

빈 설정 / DI메타정보 중 반드시 들어가야 하는 것은 `클래스 이름`과 `빈의 이름` 이다. `빈의 이름`은 명시하지 않는 경우 클래스 이름에서 첫글자를 소문자로 바꿔 사용하게 된다. 메타정보를 작성하는 방법은 크게 XML, @Configuration, @Component 등록 세 가지로 나뉜다.1. XML을 이용한 등록- id와 class를 필수적으로 지정한다.- property는 DI 작업을 위해 존재한다. printer라는 속성에 myPrinter라는 빈을 주입한다. (DI)Spring Boot가 도입된 후 잘 사용되지 않는다.2. 자동인식을 이용한 빈 등록빈 스캐너는 지정된 클래스패스 밑에 있는 모든 패키지의 클래스를 대상으로 특정 애노테이.......

Naver Blog

[Spring] Autowired를 이용한 DI

@Autowired/@Inject를 이용한 DI@Autowired는 의존 객체의 "타입"에 해당하는 빈을 찾아 주입한다.스프링만 사용할 코드라면 둘 중 하나를 일관되게 사용하는 것이 좋다. 다만, 다른 환경에서도 사용할 가능성이 있다면 `@Inject`와 `DIJ(Dependency Injection for Java)`에서 정의한 애노테이션을 사용하는 것이 좋다.사용 방법`@Autowired`는 Setter, field, constructor에 붙여 사용한다. 스프링 4.3부터는 constructor(생성자)에는 생략이 가능하다.타입이 동일한 빈이 2개 이상인 경우@Primary, @Qualifier("name"), Collection을 이용하여 빈을 주입받는다.Primary같은 타입의.......

Naver Blog

백준 7562번 나이트의 이동

https://www.acmicpc.net/problem/7562나이트가 어떻게 움직일 수 있는가를 배열로 정의해두고 접근하는 것이 좋다. #백준 #7562 #나이트의 #이동 #baekjoon #online #judge #BFS #DFS #algorithm #coding #test #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

Naver Blog

청년구직활동지원금 사용 (사용법, 사용 범위)

1. 청년구직활동지원금청년구직활동지원금은 정부에서 매달 50만원씩 최대 6개월까지 지원해주는 사업입니다.신청조건은 구직대상자이며, 소득분위가 낮을 수록 좋습니다.사이트 주소 : https://www.youthcenter.go.kr/main.do2. 청년구직활동지원금 사용청년구직활동지원금은 매달 50만원씩 포인트로 지급됩니다. 포인트는 카드결제 시에만 사용이 가능하며, 현금인출은 불가능합니다.매달 1일에 포인트가 50만원씩 충전되며, 적립된 포인트는 최대 2개월까지 유효합니다. 즉, 최대 100만원의 포인트까지 보유할 수 있습니다. 3. 청년구직활동지원금 사용 범위청년구직활동지원금은 지원금이기 때문에 잘못된 사용처에 사용 시.......

Naver Blog

아파치 톰캣(Apache Tomcat) 설치

1. Apache Tomcat 이란?- Apache는 클라이언트의 request에 대한 response만을 담당합니다.- Apache는 reverse proxy, 로드 밸런싱을 이용할 때 사용할 수 있습니다.- Tomcat은 Apache Tomcat을 줄여서 부르며, Apache의 일부 기능에 웹 어플리케이션 기능을 제공합니다.- 즉, Tomcat은 요청에 따라 데이터를 가공한 후, response에 담아 브라우저에 응답합니다.<Tomcat Version>아파치 톰캣 사이트에서 제공하는 버전입니다. 자신의 Java 버전에서 호환되는 톰캣을 설치하는 것이 좋습니다. 제가 다운할 당시에는 9.0.x 버전도 존재하네요. 저는 8.5 버전이 9.0 버전과 제공하는 기능에 큰 차이가 없길래 8.5로 다운했습니다. Servlet.......

Naver Blog

웹 프로젝트 생성, Servlet mapping, doGet, doPost

1. Servlet, JSPServlet은 클라이언트의 요청에 따라 Model이나 View로 데이터를 전달하는 역할을 수행하는 Java class 파일입니다.JSP는 Java Server Page의 약자로, HTML 문서에 Java 소스 코드를 집어넣어 동적인 문서(변수 사용, 연산 등)를 작성할 수 있는 언어입니다.JSP는 .jsp 라는 확장자를 가지지만, 실행을 하게 될 때에는 tomcat(WAS)에 의해 java 파일로 변환되고, 이후 JVM에 의해 컴파일하여 실행됩니다.즉, JSP는 내부적으로 Servlet으로 변환되어 수행되기 때문에 Servlet의 기능을 그대로 가지고 있다고 봐도 무방합니다.2. 프로젝트 생성하기1) 생성2) 프로젝트 이름 설정3) next를 두번 누르고, Web Module에서.......

Naver Blog

Servlet 동작순서, 라이프사이클(생명주기), 선처리 후처리 (PostConstruct, PreDestory)

1. Servlet 동작순서- Servlet은 클라이언트의 요청을 수행할 때 쓰레드를 생성하여 처리합니다. 따라서 오버헤드가 작은 편에 속합니다.- 한 번 생성된 Servlet 객체는 Heap 영역에 로드되고, 이후 이 객체를 재사용하여 서비스를 제공합니다.<동작 과정>1. 클라이언트(or Web Server)는 서블릿 컨테이너(Tomcat)에게 HTTP request를 전송합니다.2. 서블릿 컨테이너는 HttpServletRequest, HttpServletResponse 객체를 생성합니다.3. HTTP request를 분석하여 어떤 서블릿에 대한 요청인지를 찾아냅니다. (web.xml을 참조)4. 만약 해당하는 서블릿 클래스가 메모리 영역에 존재하지 않는다면 (실행된 적이 없다면) 서블릿 객체를 하나.......

Naver Blog

Servlet Parameter 읽기, 한글 인코딩하기

1. 클라이언트 메시지 받기클라이언트 메시지의 메시지는 HttpServletRequest 에 담겨있습니다. 따라서 HttpServletRequest의 getParameter 메서드를 호출하여 값을 읽어들일 수 있습니다.만약, Checkbox처럼 다중 선택이 가능한 메시지라면, getParameterValues()를 호출해 메시지를 읽어들일 수 있습니다.<HTML 코드><Servlet doPost>2. 한글 인코딩메시지에 한글이 포함되는 경우, 한글이 깨지는 현상이 발생합니다. 따라서 인코딩 방식을 EUC-KR, UTF-8 등 한글을 지원하는 인코딩으로 바꾸어 주어야 합니다.1) 자신의 컴퓨터가 어떤 방식으로 인코딩 하는지 확인하는 메서드입니다.2) HTML encoding 방식과 일치.......

Naver Blog

Servlet 초기화 파라미터, 리스너 사용하기

1. Servlet 초기화 파라미터- 특정 서블릿이 생성될 때 필요한 데이터 값들이 존재합니다. 이런 값들을 초기화 파라미터라고 합니다.- 생성하는 방법은 web.xml에 지정하는 방법과 Servelt 파일의 Annotation 두 가지 방법이 있습니다.- 사용하는 방법은 ServletConfig 객체의 getInitParameter() 메서드를 사용하는 것 입니다. web.xml 에서 초기화 파라미터 지정하기(1) web.xml에 init-param을 지정합니다.(2) Servlet 메서드에서 초기화 변수를 사용합니다.getInitParameter는 ServletConfig 객체에 존재하는 메서드입니다. Servlet에서 초기화 파라미터 지정하기어떻게 지정하더라도 사용하는 방법은 동일합니다.2. ServletContext (데.......

Naver Blog

JSP 스크립트 문법

1. JSP란?- JSP는 HTML 코드에 JAVA 코드가 삽입된 언어입니다.- .jsp 파일은 Servlet Container(Tomcat)에 의해 java 코드(Servlet)로 변환되고, 이는 class 파일로 재해석됩니다. 그 이후 클라이언트에게 전송할 때에는 HTML 코드로 최종적으로 변환하여 전송하게 됩니다.- Django의 Template tag와 거의 동일한 기능을 한다고 볼 수 있습니다.2. JSP 스크립트 문법1) 선언태그- Java 변수, 메서드를 생성할 때 사용하는 태그입니다.2) 주석 태그- JSP 주석 태그는 클라이언트 브라우저에 표시되지 않습니다.3) 스크립트릿 태그 - 조건문, 반복문 등 HTML 코드 사이에 Java 언어를 사용하고 싶을 때 사용하는 태그입니다.4) 표현식 태그.......

Naver Blog

JSP 내장 객체 사용하기 ( request, response, config, application, out, exception)

1. JSP 내부객체(내장객체)- 내부객체란, 자체적으로 객체를 가지고 있으므로 생성하지 않고 사용할 수 있다는 의미입니다.1) 입출력 객체 - request, response, out2) 서블릿 관련 객체- page, config3) 외부환경 관련 객체- session, application, pageContext4) 예외 관련 객체- exception2. request 사용해보기- Get 방식의 요청일 때에는 '이름'과 '취미'를 입력할 수 있는 HTML Form 태그를 제시합니다.- Post 방식의 요청일 때에는 request로 부터 데이터를 읽어와, HTML 코드로 브라우저에 출력해줍니다.아주 간단한 예시이지만, HTML과 스크립트릿 태그들이 혼합되어 굉장히 복잡해지는 것을 확인할.......

Naver Blog

[JSP] Cookie와 Session

1. 쿠키(Cookie)쿠키는 크게 세 가지의 용도로 사용됩니다.(1) 세션 관리(Session management)로그인 유지, 장바구니 유지, 게임 스코어 관리하는 용도(2) 개인화(Personallization)사용자의 선호 언어, 테마 등을 유지하는 용도(3) 트래킹(Tracking)사용자의 방문통계 등 행동을 기록하고 분석하기 위한 용도쿠키는 서버 측에서 클라이언트에게 보내주는 '키-밸류' 형식의 데이터입니다. 이 데이터는 클라이언트가 가지고 있다가 서버에 다시 접속 요청을 할 때 서버에게 전송합니다. 서버는 쿠키를 읽고, 그 사람이 선호하는 언어로 바꾸어 웹사이트를 보여준다거나, 이전에 등록해두었던 장바구니를 보여준다거나, 조회수.......

Naver Blog

[JSP/Servlet] 한글처리 필터

1. Filter- Filter는 모든(또는 특정) request, response의 데이터에 동일한 작업(ex. 인코딩)을 수행하기 위해 사용합니다.- javax.servlet 밑에 존재하며, init(), doFilter(), destroy() 라는 추상메서드를 정의하고 있는 인터페이스 입니다.- 웹 컨테이너가 시작된 후, init() 메서드가 호출되며, doFilter()를 호출해 필터링을 진행합니다.2. EncodingFilter 만들기[EncodingFilter.java]이 필터를 등록하기 위해서는 web.xml에 등록하는 방법과 Annotation을 이용하는 방법이 있습니다.[web.xml][Annotation]- web.xml 방식이나 Annotation 방식 둘 중 하나만 택해서 진행해야 합니다.#filter #webfilter #한글 #처리 #encoding .......

Naver Blog

백준 2110번 공유기 설치

https://www.acmicpc.net/problem/2110[문제 풀기에 앞서 생각할 것]1. 공유기 사이의 간격을 최대가 되도록 하는 문제.2. '간격'을 Binary Search를 이용해서 찾아 나간다.3. 공유기의 갯수가 많을 수록 간격은 좁아지며, 반대로 공유기의 갯수가 적을 수록 간격은 넓어진다.[B.S 알고리즘]문제의 예시처럼 1,2,4,8,9 라는 좌표가 주어졌을 때를 생각해보자.최소 간격은 1이고, 최대 간격은 8이다.따라서 1~8 사이에 우리가 원하는 정답이 있다.B.S를 적용하기 위해 mid = (1+8)/2 --> 4 로 설정하자. 이는, 가장 가까운 집 사이의 간격이 4가 되도록 공유기를 설치하겠다는 의미이다.따라서 공유기를 직접 설.......

Naver Blog

백준 1449번 수리공항승

https://www.acmicpc.net/problem/1449[문제 풀기 전 생각할 것]테이프를 붙일 때, 결국 왼쪽 오른쪽 0.5씩 여백을 줘야하기 때문에 한 번에 수리가 가능한 길이는 L-1이다.예를 들어,파이프 위치가 [1,2,3,4,10,15,20] 으로 주어지고, 테이프의 길이가 4라고 하자.pipe[1]-pipe[0] = 2-1 = 1 이므로 테이프의 길이-1인 3보다 작다. 따라서 pipe[0], pipe[1]은 한 번에 수리가 가능하다.pipe[2]-pipe[1] = 3-1 = 2 이므로 테이프의 길이-1인 3보다 작다. 따라서 pipe[0], pipe[1], pipe[2]는 한 번에 수리가 가능하다.이렇게 문제 풀이를 생각했다.이 방법이 안되는 것은 아니지만, 더 간단하게 생각해볼 수 있.......

Naver Blog

[CSS] font 요약 정리 ( font-size, font-family, text-align, line-height)

1. font 스타일 적용하기(1) font-family는 '글씨체'를 의미합니다. 여러 개를 입력 가능하며, 띄어쓰기가 존재할 경우에는 " "로 감싸줘야 합니다. 마지막에 serif를 명시하면, 나열된 글씨체 중에 존재하는 글씨체를 선택하여 적용합니다.(2) font-size는 15px 처럼 절대적인 값을 줄 수도 있으며, 'em' (부모 요소의 배수)를 사용할 수도 있습니다. 'rem' (root의 폰트 사이즈의 배수) 을 사용하면 곱셈이 중첩되는 현상을 막을 수 있습니다.(3) font-weight는 글자 굵기입니다. 100~900까지 값을 지정할 수 있습니다. "bold" 라는 예약어도 사용 가능합니다.(4) font-style은 '기울.......

Naver Blog

[CSS] float과 position 사용하기

1. float이처럼 이미지와 글이 물 흐르듯이 자연스럽게 작성될 수 있도록 도와주는 속성입니다. 레이아웃의 배치에도 활용할 수 있습니다.float을 이용하여 각 컬럼이 30%의 비중을 차지할 수 있도록 작성할 수도 있습니다. 마지막 컬럼 오른쪽에는 10%의 여백이 남는 것이 보이네요.이 여백을 무시하기 위해서는 clear라는 속성을 사용해주어야 합니다. clear의 속성으로는 left, right, both가 있습니다.[CSS 코드]2. positionposition은 기본적으로 static으로 설정되어있습니다. 상황에 따라서 relative, absolute, fixed로 바꾸며 사용할 수 있습니다.(1) absolute보시는 것처럼, 절대적인 위치를 지정할 수 있습니다.bottom .......

Naver Blog

백준 1049번 기타줄

https://www.acmicpc.net/problem/1049[문제 풀기 전 생각할 것]기타줄 6묶음(패키지) 가격이 낱개로 구매하는 것보다 저렴한지 파악해야 한다.만약 패키지가 저렴하다면, 6의 배수만큼 기타줄을 구매하고, 나머지 부분은 낱개 중 가장 저렴한 요금으로 구매하는 것이 좋다.만약 패키지보다 낱개가 저렴하다면, 필요한 개수 전부를 낱개로 구매하는 것이 바람직하다.[알고리즘]1. 입력으로부터 가장 저렴한 패키지 가격과 가장 저렴한 낱개 가격을 저장한다. 2. 패키지로 구매하는 것이 저렴한지, 낱개로 구매하는 것이 저렴한지 비교한다.3. 낱개로 구매하는 것이 저렴하다면, 필요한 기타줄을 낱개로 전부 구매한다.4. 패키지로 구매.......

Naver Blog

백준 1946번 신입사원

https://www.acmicpc.net/problem/1946[문제 풀기 전 생각할 것]서류 또는 면접에서 1등한 사람은 반드시 선발된다는 사실을 알 수 있다.편의를 위해 서류 성적이 1등인 사람을 먼저 선발했다고 가정해보자.서류 성적이 2등인 사람이 선발되기 위해서는, 서류1등보다 면접 성적이 높으면 된다.따라서 서류 2등은 딱 1번의 비교만으로 선발 유무 파악이 가능하다.서류 3등은, 서류 1등과 서류 2등 중에서 면접 성적이 높은 사람보다 면접 점수가 높으면 선발된다.[알고리즘]예시 : [[1,4], [2,3] ,[3,2] , [4,1] , [5,5]]1. 주어진 점수를 서류 점수 기준으로 오름차순 정렬한다.2. 서류 1등을 우선적으로 선발하고, 인터뷰 등수를.......

Naver Blog

백준 9372번 상근이의 여행

https://www.acmicpc.net/problem/9372[문제 풀기 전 생각할 것]이 문제는 BFS/DFS로 분류되지만, 잘못 출제된 문제에 가깝다.주어진 문제 조건을 보면, 모든 국가는 연결그래프이다. 연결 그래프라는 것은 모든 국가가 이어져있어서, 비행기로 갈 수 없는 국가가 없다는 뜻이다.그럼 N개의 국가를 여행할 때 몇 종류의 비행기를 타야할까? 직접 여행은 간다고 생각해보자.대만, 일본, 태국을 방문하려고 한다면, 다음 두 편도 비행기를 타면 된다. (출발지를 맘대로 설정할 수 있기 때문)대만 -> 일본일본 -> 태국따라서 모든 경우에 정답이 N-1이 됨을 알 수 있다.[Python 3.x]#백준 #9372 #상근이의 #여행 #baekjoon .......

Naver Blog

백준 10026번 적록색약

https://www.acmicpc.net/problem/100261. BFS, DFS 기본 문제.2. DFS를 사용할 때에는 sys.setrecursionlimit()을 설정한다.[Python 3.x]#백준 #10026 #적록색약 #baekjoon #online #judge #BFS #DFS #algorithm #coding #test #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

Naver Blog

백준 1389번 케빈 베이컨의 6단계 법칙

https://www.acmicpc.net/problem/1389BFS 기본 문제[Python 3.x]전역변수를 굳이 사용하지 않아도 구현이 가능하다.#백준 1389 #케빈베이컨 #6단계 #법칙 #baekjoon #online #judge #BFS #DFS #algorithm #coding #test #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

Naver Blog

백준 1260번 DFS와 BFS

https://www.acmicpc.net/problem/1260알고리즘 대회에서 가장 많이 출제되는 유형입니다.깊이우선 탐색(DFS)은 Stack을 이용하여 모든 노드를 탐색하는 기법이며,너비우선탐색(BFS)은 Queue를 이용하여 모든 노드를 탐색하는 기법입니다.1. Queue를 구현할 때 queue 라이브러리를 사용할 경우 Thread safe하다는 장점은 있지만, 단일 쓰레드의 경우에는 속도가 현저하게 느려집니다. 따라서 collections 라이브러리에 존재하는 deque를 사용하는 것이 좋습니다.- popleft(), append() 연산 사용 가능.2. BFS와 DFS는 visited 라는 배열을 이용해, 방문여부를 파악합니다.3. BFS의 경우, Queue에 node 번호 외에 value를 추가로 전달하여.......

Naver Blog

백준 11403번 경로 찾기

https://www.acmicpc.net/problem/11403여기서는 Queue 라이브러리를 사용했지만, 속도가 느리기 때문에 deque를 사용하는 것이 좋다.[Python 3.x]#백준 11403 #경로 #찾기 #baekjoon #online #judge #BFS #DFS #algorithm #coding #test #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

Naver Blog

백준 1783번 병든 나이트

https://www.acmicpc.net/problem/1783[문제 풀기 전에 생각할 것]나이트의 움직임을 잘 살펴보면, 왼쪽으로 움직일 수가 없다.따라서 매 회 오른쪽으로 1,2칸 씩 움직이게 되고, 가로의 길이에 도달하면 더 이상 움직일 수 없다.즉, 오른쪽으로 1칸 씩 움직이게 만드는 것이 최선의 전략이라고 할 수 있다.하지만 오른쪽으로 1칸씩 움직이려면, 체스판의 높이가 적어도 3이 되어야 한다.즉, 체스판의 높이가 1인지, 2인지, 3이상인지로 나눠 계산한다. [알고리즘]1. 체스판의 높이가 1인 경우- 움직일 수 있는 경우가 없으므로 1을 반환2. 체스판의 높이가 2인 경우- (→→↑) (→→↓)로 움직일 수 있다. 너비의 길이에 따라 횟수.......

Naver Blog

백준 1920번 수 찾기

https://www.acmicpc.net/problem/1920이분탐색의 기본 코드이므로 설명은 하지 않는다.#백준 #baekjoon #online #judge #binary #search #algorithm #coding #test #수찾기 #1920 #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

Naver Blog

백준 1654번 랜선 자르기

https://www.acmicpc.net/problem/1654[문제 풀기에 앞서 생각할 것]1. 랜선의 길이를 찾는 문제이기 때문에, '랜선의 길이'를 Binary Search로 찾아나간다.2. '랜선의 길이'가 길어질 수록 랜선의 개수 (K)는 적어진다. 반대로 '랜선의 길이'가 짧아질 수록 랜선의 개수 (K)는 많아진다.[B.S 알고리즘]문제의 예시처럼,목표 랜선의 개수 : 11개랜선 : [457, 539, 743, 802] 가 주어졌다고 하자.'랜선의 길이'는 1부터 (457+539+743+802)/11 까지 가질 수 있지만, 편의상 802로 놓아도 문제 없다.따라서 1~802 사이에 정답이 존재한다.B.S를 적용하여 '랜선의 길이' mid =.......

Naver Blog

백준 2805번 나무자르기

https://www.acmicpc.net/problem/2805[문제 풀기에 앞서 생각할 것]1. 톱날의 높이가 낮을 수록 더 많은 나무를 벨 수 있다.2. 문제 '톱날의 높이'를 Binary Search를 이용하여 찾아 나간다.3. 톱날의 높이가 결정되었을 때, M 미터보다 크거나 같으면, 톱날의 높이 H를 높여준다. (같을 때 톱날의 높이를 높여주는 것이 핵심.)M 미터보다 작으면, 톱날의 높이 H를 낮춰준다.[B.S 알고리즘]문제의 예시처럼 [10,15,17,20] 높이에 해당하는 나무가 있다고 하자.톱날의 최소 높이는 0이 될 수 있으며, 최대 높이는 20이다.즉, 우리가 원하는 답은 0~20 사이에 존재한다.B.S를 적용하기 위해 mid = (0+20)/2 ---> 10.......

Naver Blog

일본어 무작정 따라하기

위 책의 저자 후지이 아사리 씨는 사이타마 현 출신이지만, 서울대 국문과에 입학하여 고전문학을 전공했고...

Naver Blog

[일무따] 1강 かれし

먼저 모든 음성파일을 듣고 따라하신 후, 아래의 단어와 예문을 읽으며 다시 한번 반복 학습 하시길 바랍니...

Naver Blog

선택정렬(Selection Sort)

Pseudo-Code (위의 그림과는 반대로 큰 값을 먼저 정렬함) 한 스텝마다 가장 큰 값을 하나씩 결정하여 맨...

Naver Blog

버블정렬(Bubble Sort)

Pseudo-Code수행시간: T(n)= (n-1)+(n-2)+ ...1 = O(n2)

Naver Blog

삽입정렬(Insertion Sort)

Pseudo-Code수행 시간: [최악의 경우] : 추출한 값이 항상 맨 왼쪽자리에 삽입해야 하는 경우를 뜻하며, ...

Naver Blog

합병정렬(MergeSort)

분할정복법(Divide and Conquer)분할 : 해결하고자 하는 문제를 작은 크기의 "동일한" 문제...

Naver Blog

빠른정렬(quickSort)

병합정렬과 마찬가지로 분할정복법을 기반으로 문제를 해결한다. Step 1. 정렬할 데이터에서 한 요소를 P...

Naver Blog

힙 정렬(heap Sort)

1. Binary HeapHeap이란? Complete binary tree 이면서 heap property를 만족해야 한다. 위의 그림에서...

Naver Blog

계수정렬(Counting Sort)

1.Comparison Sort앞서 보았던 정렬들 [Selection, Bubble, Insertion, Merge, Quick, Heap] Sort...

Naver Blog

1. 르그랑 코드북

르그랑 코드북이란, Codebook이라는 일종의 표를 보고 암호화와 복호화를 하는 방법이다. 평문 : hi, guys...

Naver Blog

기수 정렬(Radix Sort)

기수 정렬은 계수정렬을 기반으로 이루어져 있으므로 위의 포스팅을 꼭 확인하기 바랍니다. 1. 기수정렬이...

Naver Blog

정렬 별 속도 측정

앞서 배웠던 정렬들의 실제 수행시간을 측정해보고자 한다. 조건은 다음과 같다. 1. 선택정렬 ,거품정렬, ...

Naver Blog

파이썬 책 소개

Jump to python은 쌩초보들, 다른 언어에 대한 지식이 없는 독자들도 읽을 수 있을 정도로 잘 되어있다. ...

Naver Blog

1강 Python이란?

Python이란? 파이썬은 우리나라에서는 아직 대중적으로 사용되고 있지 않지만 외국에서는 교육 목적뿐 아...

Naver Blog

2강 숫자형 자료형

숫자형과 사칙연산 1. 실수 선언 >>>a=1.2 >>>a=-3.45 >>>a=4.24E8 >>&...

Naver Blog

3강. 문자형 자료형

문자형(자료형) 1. "Hello World" ex) food = "Python's favorite food is perl" #작은 따옴표(‘)를 포...

Naver Blog

4강. 리스트,튜플 자료형

리스트 자료형 리스트 자료형은 Python의 강력한 도구이고, 배열보다 훨씬 사용범위가 넓으며, 큐나 덱 등...

Naver Blog

5강. 딕셔너리(사전) 자료형

딕셔너리 자료형 (Key : Value) (1) 생성 및 추가 삭제 >>> dic = { "김연아" : "피겨스케이팅",...

Naver Blog

6강. 집합 자료형

집합 자료형-중복되는 요소가 없어야 할 때 사용한다. -인덱싱이 필요하다면 list나 tuple로 형 변환해서 ...

Naver Blog

7강. if, while, for 문

if문-들여쓰기는 space bar 4칸 or tab으로 일치시킨다. 직관적이고 간단하므로 크게 설명하지 않는다. Wh...

Naver Blog

8강. 함수

함수- 반복적인 코드를 묶어서 한번만 작성 - 프로그램의 흐름을 간결하게 만들어줌 1. 함수의 구조 입력 ...

Naver Blog

9강. 다양한 입력과 출력

사용자 입력과 출력 (1)입력input()은 사용자로부터 입력을 기다리며, 엔터가 입력될 때까지 계속 기다린다...

Naver Blog

10강. 클래스(Class) 上

클래스- 객체를 만들어내는 설계도면 또는 객체가 가질 수 있는 기능들을 적어놓은 것. - 클래스가 없으면 ...

Naver Blog

11강. 클래스(Class) 下

5. 클래스의 상속 - 다른 클래스의 기능을 물려받아 사용하는 것 - 포인트 : 마린이나 뮤탈리스크나 체력, ...

Naver Blog

12강. 모듈

모듈-함수나 변수 또는 클래스를 모아 놓은 파일이다. 1. 모듈 생성과 불러오기* python.exe가 설치된 디렉...

Naver Blog

13강. 패키지

패키지-모듈을 모아놓은 디렉토리(폴더) -공동작업, 유지보수, 변수명 중복에 유리하다. 1. 패키지의 구조g...

Naver Blog

1강. 네트워크프로그래밍과 소켓 용어정리

먼저 앞으로 우리가 다루게 될 소켓과 관련된 용어에 익숙해지는 것이 좋다. 1. 네트워크 프로그래밍이란? ...

Naver Blog

2강. 리눅스 파일 입출력

리눅스 계열에서는 소켓도 파일의 일종이므로 파일 입출력을 알면 소켓의 입출력을 다룰 수 있다. 1. 파일 ...

Naver Blog

3강. 소켓의 프로토콜(TCP/UDP)

프로토콜이란 ? A와 B가 의사소통을 하기로 약속했는데, A는 전화로 대화를 시도하고 B는 문자로 대화...

Naver Blog

4강. 소켓의 주소체계(IP/Port)

IP란?Internet Protocol의 약자이며 데이터를 송수신하기 위한 목적으로 컴퓨터에게 부여하는 값을 의...

Naver Blog

5강. 소켓의 주소체계 2(IPv4)

1. sockaddr_in, in_addr 구조체앞에서 클라이언트 소켓을 잠깐 보여드렸을 때, 위와 같은 구조체가 쓰이는...

Naver Blog

[오사카 여행] 관광지 추천(꿀팁)

오사카 여행 가기 전 준비물에 대해 알고 싶은 분들은 아래 링크를 참고하길 바란다. 불 필요한 정보는 적...

Naver Blog

[오사카 여행] 패스 및 준비물

오사카 여행지가 뭐뭐 있는지 궁금하신 분들은 아래 링크를 들어가서 구경하길 바란다.오사카 여행 시 필요...

Naver Blog

6강. TCP 서버/클라이언트

너무 깊게 설명하기에는 포스팅이라는 컨디션 때문에 무리가 있어 간략하게 정리하여 올리기로 결심했습니...

Naver Blog

[가고시마 여행] #1. 덴몬칸

가고시마는 동양의 나폴리라고 불리는 일본 남큐슈에 위치한 지역이다. 날씨가 따뜻하여 10~1월이 적기라고...

Naver Blog

[가고시마 여행] #2. 사쿠라지마

사쿠라지마 관광은 페리 왕복 시간을 포함하여, 크게 4~5시간정도 생각하시면 될 것 같습니다. 1. 웰컴 큐...

Naver Blog

[가고시마 여행] #3. 센간엔 / 돌핀포트

이 포스팅은 여행 다녀온 것을 자랑하는 글이 아니며, 타인에게 도움을 주고자 작성한 글입니다. 따라서 개...

Naver Blog

[가고시마 여행] #4. 가고시마추오

본 포스팅은 필자의 주관적인 여행담이 아니며, 여행에 도움을 주고자 최대한 객관성을 반영하여 작성한 글...

Naver Blog

[C 언어] 파일입출력, 입출력

파일입출력 간단 정리. 1. fgetc : 파일에서 한 글자를 받아온다.2. fgets : 파일에서 문자열을 받아온다.3...

Naver Blog

[C 언어] 문자를 정수로 바꾸기

1. 단일 문자의 경우아스키코드 값으로 바라보고 뺄셈을 진행하면 된다. 2. 문자열의 경우3. hex형태로 적...

Naver Blog

[Python] Euclidean Algorithm

최대공약수를 구하는 방법이다. 임의의 a,b에 대해서 a = q*b + r 을 만족시키는 유일한 q, r(0<=r<a...

Naver Blog

[가고시마 여행] #5. 이부스키 (도센쿄/플라워파크)

본 포스팅은 필자의 여행을 바탕으로 작성하였으나 주관적인 여행담이 아니며, 여행에 도움을 주고자 최대...

Naver Blog

[가고시마 여행] #5. 이부스키 (류구신사/ 나가사키바나 / 이케다호수)

본 포스팅은 필자의 여행을 바탕으로 작성하였으나 주관적인 여행담이 아니며, 여행에 도움을 주고자 최대...

Naver Blog

[Python] 문자열을 hex로 변환

1. 문자열을 hex값으로 encoding하기 (Python 2.x)2. 문자열을 hex값으로 encoding하기 (Python 3.x)3. ...

Naver Blog

[C 언어] 랜덤함수

srand는 딱 한 번만 설정하여야 한다. rand함수 내에서 시드를 이용하는 루틴이 구현되어있기 때문. stdlib...

Naver Blog

[Python] 큰 수의 루트처리

리눅스 플랫폼에서는 gmpy2를 다운받아 이용하는 것이 좋아 보인다. numpy를 사용하면 부동소수점 오차를 ...

1 2 3