pjok1122의 등록된 링크

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

IntelliJ 서버 속도 향상시키기 [내부링크]

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

MongoTemplate을 이용한 배열 처리 [내부링크]

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

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

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

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

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

[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 이상 버전.......

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

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

[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

[Spring] ResourceLoader [내부링크]

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

[Spring] ApplicationEventPublisher [내부링크]

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

[Spring] Validation 추상화 [내부링크]

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

[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 간의 변환.......

[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가 존재한다........

[Spring] Summernote 이미지 업로드 [내부링크]

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

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.......

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.......

[JDBC] DAO, DTO(=VO) 개념과 활용 [내부링크]

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

[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 객체.......

[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] 만약 전달하는.......

[JSP] 자바빈즈(Java Beans) [내부링크]

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

[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으로 넘겨.......

[Spring] IoC 개념 , IoC 컨테이너, Spring IOC, DI [내부링크]

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

[Spring] IoC 컨테이너와 Bean [내부링크]

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

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

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

[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같은 타입의.......

백준 7562번 나이트의 이동 [내부링크]

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

청년구직활동지원금 사용 (사용법, 사용 범위) [내부링크]

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

아파치 톰캣(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.......

웹 프로젝트 생성, 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에서.......

Servlet 동작순서, 라이프사이클(생명주기), 선처리 후처리 (PostConstruct, PreDestory) [내부링크]

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

Servlet Parameter 읽기, 한글 인코딩하기 [내부링크]

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

Servlet 초기화 파라미터, 리스너 사용하기 [내부링크]

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

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) 표현식 태그.......

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과 스크립트릿 태그들이 혼합되어 굉장히 복잡해지는 것을 확인할.......

[JSP] Cookie와 Session [내부링크]

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

[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 .......

백준 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가 되도록 공유기를 설치하겠다는 의미이다.따라서 공유기를 직접 설.......

백준 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]는 한 번에 수리가 가능하다.이렇게 문제 풀이를 생각했다.이 방법이 안되는 것은 아니지만, 더 간단하게 생각해볼 수 있.......

[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은 '기울.......

[CSS] float과 position 사용하기 [내부링크]

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

백준 1049번 기타줄 [내부링크]

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

백준 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등을 우선적으로 선발하고, 인터뷰 등수를.......

백준 9372번 상근이의 여행 [내부링크]

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

백준 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 #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

백준 1389번 케빈 베이컨의 6단계 법칙 [내부링크]

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

백준 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를 추가로 전달하여.......

백준 11403번 경로 찾기 [내부링크]

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

백준 1783번 병든 나이트 [내부링크]

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

백준 1920번 수 찾기 [내부링크]

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

백준 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 =.......

백준 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.......

일본어 무작정 따라하기 [내부링크]

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

[일무따] 1강 かれし [내부링크]

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

선택정렬(Selection Sort) [내부링크]

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

버블정렬(Bubble Sort) [내부링크]

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

삽입정렬(Insertion Sort) [내부링크]

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

합병정렬(MergeSort) [내부링크]

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

빠른정렬(quickSort) [내부링크]

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

힙 정렬(heap Sort) [내부링크]

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

계수정렬(Counting Sort) [내부링크]

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

1. 르그랑 코드북 [내부링크]

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

기수 정렬(Radix Sort) [내부링크]

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

정렬 별 속도 측정 [내부링크]

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

파이썬 책 소개 [내부링크]

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

1강 Python이란? [내부링크]

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

2강 숫자형 자료형 [내부링크]

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

3강. 문자형 자료형 [내부링크]

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

4강. 리스트,튜플 자료형 [내부링크]

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

5강. 딕셔너리(사전) 자료형 [내부링크]

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

6강. 집합 자료형 [내부링크]

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

7강. if, while, for 문 [내부링크]

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

8강. 함수 [내부링크]

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

9강. 다양한 입력과 출력 [내부링크]

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

10강. 클래스(Class) 上 [내부링크]

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

11강. 클래스(Class) 下 [내부링크]

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

12강. 모듈 [내부링크]

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

13강. 패키지 [내부링크]

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

1강. 네트워크프로그래밍과 소켓 용어정리 [내부링크]

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

2강. 리눅스 파일 입출력 [내부링크]

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

3강. 소켓의 프로토콜(TCP/UDP) [내부링크]

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

4강. 소켓의 주소체계(IP/Port) [내부링크]

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

5강. 소켓의 주소체계 2(IPv4) [내부링크]

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

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

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

[오사카 여행] 패스 및 준비물 [내부링크]

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

6강. TCP 서버/클라이언트 [내부링크]

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

[가고시마 여행] #1. 덴몬칸 [내부링크]

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

[가고시마 여행] #2. 사쿠라지마 [내부링크]

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

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

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

[가고시마 여행] #4. 가고시마추오 [내부링크]

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

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

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

[C 언어] 문자를 정수로 바꾸기 [내부링크]

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

[Python] Euclidean Algorithm [내부링크]

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

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

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

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

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

[Python] 문자열을 hex로 변환 [내부링크]

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

[C 언어] 랜덤함수 [내부링크]

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

[Python] 큰 수의 루트처리 [내부링크]

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

[가고시마 여행] #6. 하쿠스이칸(백수관) [내부링크]

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

[안드로이드] Render problem [내부링크]

activity_main.xml에서 가상 디바이스가 반영이 안되는 경우. 이렇게 수정하면 된다. API 버전을 낮추는...

[Python] 10진수를 2진수로 출력하는 방법 [내부링크]

DDT에서 pla파일 만들 때, SMT에서 BVPLUS할 때 사용했음

[C 언어] 16진수 출력 방법 [내부링크]

%8x : 8자리로 출력하되, 공백으로 공간을 채운다. %.8x : 8자리 중 공백에 해당하는 자리는 0으로 패딩하...

[C 언어] char *, char [] 차이 [내부링크]

char *b="Hi"는 포인터이므로 값의 변경이 불가능하다. sizeof(b)의 경우, 주소값을 저장하는 포인터이므...

[타이베이 여행] #1. 대만 여행 준비 [내부링크]

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

[타이베이 여행] #2. 융캉제 존맛, 맛집 정리 [내부링크]

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

[Python] 그래프 그리기 [내부링크]

1. Matplotlib 설치커맨드 라인에서 "pip install matplotlib"를 작성하여 라이브러리 설치를 ...

스택(Stack) 구현하기 [내부링크]

스택은 FILO(First in Last out) 구조의 자료형이다.따라서 구현을 위해서는 데이터를 저장하는 공...

Java Programming 언어란? [내부링크]

1. 자바는 왜 개발되었는가?자바는 Green Project를 위해서 개발된 언어이다. Green Project는 가전...

자바(Java) 프로그램 구조 및 데이터타입 [내부링크]

1. 자바 프로그램 구조 - 자바 프로그램은 하나의 '.java' 파일에 하나의 클래스를 정의한다. - ...

자바(Java) 연산자 및 배열 [내부링크]

1. 증감연산자위와 같은 코드를 실행했을 때, total과 total2에는 얼마가 들어갈까?total ==2t...

객체지향 프로그래밍 (Object Oriented Programming) [내부링크]

1. 객체 지향 프로그래밍의 역사 1960년 대까지 소프트웨어는 하드웨어에 비해 발전속도가 굉장히 더뎠다...

자바(Java) 상속 및 다형성 [내부링크]

1. 상속 - 두 객체가 포함 관계인 경우, 상속을 이용하여 코드의 재사용성을 높일 수 있다. - 상속은 부모...

자바(java) 추상화, 캡슐화, 정보 은닉 [내부링크]

1. 추상화(Abstraction) - 추상화란 구체적인 사실들을 일반화 시켜 기술한 것을 의미한다. - 현실 세계에...

자바(Java) 접근제한자 public, private, protected, default [내부링크]

1. 클래스의 구조- 3번 째, 4번 째 줄은 각각 변수와 메서드를 정의하는 방법이다.- 2번 째 줄은 클래스의 ...

자바(Java) Getter,Setter,ToString 메써드(Method) [내부링크]

1. Method(메서드) - 메서드는 반복적인 로직(프로세스)을 묶어 코드를 간결하고 재사용성이 높도록 만들...

자바(Java) 메서드 오버로딩(Method Overloading) [내부링크]

지난 포스팅보다 조금 더 자세하게 메서드 오버로딩의 개념과 필요한 이유에 대해 설명하고자 한다.1. 메...

자바(Java) 가변적 매개변수(Variable argument) [내부링크]

1. 가변적 매개변수 - 매개변수의 개수가 지정되어야만 하는 제한을 극복하기 위해 만들어졌음. (유지보수...

자바(Java) 상속과 생성자 [내부링크]

상속은 부모 클래스의 멤버 변수를 자식 클래스에서 물려받고, 자식 클래스의 특성을 확장하여 사용하는 것...

자바(java) 객체의 형변환 [내부링크]

1. 묵시적 형변환 - 형변환 연산자를 사용하지 않아도 자동으로 이루어지는 형변환을 의미한다. - 더 넓은 ...

자바(Java) 인터페이스(interface) [내부링크]

1. 인터페이스- 인터페이스는 추상클래스보다 더 추상도가 깊은 개념이다.- 멤버변수는 모두 상수로 선언해...

자바(java) 패키지(Package) [내부링크]

1. 패키지- 패키지란 폴더 또는 디렉터리를 의미한다.- 자바 패키지는 관련된 인터페이스나 클래스를 적절...

자바(java) 예외(Exception), 예외처리 try-catch [내부링크]

1. 오류 1) 에러 - 프로그램으로 처리할 수 없는 오류로서 에러 발생 시 프로그램이 중단된다. ex) 네트워...

자바(Java) 사용자 정의 예외(CustomException) [내부링크]

1. 사용자 정의 예외- 프로그램의 스타일에 따라 예외로 처리해야하는 경우, 사용자 정의 예외 클래스를 만...

자바(Java) java.lang 패키지 [내부링크]

1. java.lang 패키지- 가장 기본이 되는 필수 클래스와 인터페이스를 포함한 패키지- java.lang 패키지는 i...

자바(Java) String(문자열) 과 StringBuffer(문자열 버퍼) [내부링크]

1. String 클래스- 고정된 문자열을 생성할 때 주로 사용된다.- 객체이지만, 특이하게도 new 예약어를 사...

자바(Java) Date, Calendar, Formatter [내부링크]

<java.util 패키지의 구조>이번 포스팅에서는 날짜와 시간을 조작하는 Date,Calendar, 다양한 형태...

백준 1080번 행렬 [내부링크]

https://www.acmicpc.net/problem/1080[문제]3x3 부분행렬의 값을 전부 0->1 ,1->0으로 뒤집을 수 있는 연산을 가지고,A행렬 -> B행렬로 만드는 최소 연산 횟수를 구하여라.[문제 풀기 전 생각할 것](0,0) (N-1,0), (0, M-1), (N-1,M-1)의 값을 결정할 수 있는 부분행렬은 딱 1개밖에 존재하지 않는다.즉, (0,0)에서 3x3 매트릭스를 그려서, A[0][0] != B[0][0] 이라면 3x3 매트릭스에 해당하는 값을 전부 뒤집는다.이제, (0,1)에 영향을 주는 매트릭스는 (0,1)을 꼭지점으로 하는 매트릭스 하나뿐이다. 마찬가지로 A[0][1] != B[0][1]을 확인한다.위의 예시처럼 → 방향으로 순서대로 확인을 해나간다.[알고리즘.......

백준 로프 2217번 [내부링크]

https://www.acmicpc.net/problem/2217문제 : N개의 로프가 주어지는데, 로프가 견딜 수 있는 무게는 각각 다르다. 로프를 K개 사용하면 각 로프가 받는 무게는 W/K로 정확하게 나눠진다.로프를 적절히 배합하여 견딜 수 있는 최대 무게를 찾아라.1. 로프의 개수가 100000개까지 나올 수 있으므로 상대적으로 입출력이 빠른 sys.stdin.readline()을 사용한다.2. 로프를 K개 선택했다고 했을 때, 해당 로프 조합이 견딜 수 있는 최대 무게는, 가장 약한 로프에 의존한다.3. 따라서 로프를 오름차순으로 정렬하여 사용하는 것이 바람직하다.4. 로프를 오름차순으로 정렬한 후, N개의 로프를 선택했을 때부터 1개의 로프를 선택했을 때까지 모든.......

백준 대회 or 인턴 2875번 [내부링크]

https://www.acmicpc.net/problem/2875문제 : 팀을 구성할 때는 반드시 여자 2명과 남자 1명으로 구성된다. 가장 많은 팀을 구성하는 것이 문제.하지만, 인턴직으로 근무해야하는 사람 수(K)는 반드시 보장해주어야 한다.1. 남은 사람의 수가 K보다 작아지지 않도록 팀을 구성하면 끝.2. 시간 복잡도 O(n). 코드 개선 시 O(1)도 가능하다.[Python 3.x]#백준 #baekjoon #online #judge #greedy #algorithm #coding #test #대회 #or #인턴 #2875 #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

백준 회의실 배정 1931번 [내부링크]

https://www.acmicpc.net/problem/1931겹치지 않게 최대한 많은 회의 수를 찾는 문제.[시작시간, 끝나는 시간] 으로 이루어져있다고 했을 때, 회의 시간이 겹치지 않게 구성해야 한다.만약, 회의 시간이 [1,4] , [3,5]인 두 회의가 있다고 하면, 3~4시는 회의가 겹치기 때문에 참석할 수 없다.자, 그럼 여러 회의가 있을 때, 어떤 회의를 선택해야 할까?최대한 많은 회의를 하기 위해서는 반드시 일찍 끝나는 회의를 진행하는 것이 좋다.일찍 끝나는 회의란, `절대 시간`이 짧은 회의를 의미하는 것이지, 회의 시간의 길이를 의미하는 것이 아니다.즉, [1,4], [3,5] 두 회의가 있다면 4시에 끝나는 1번 회의를 선택하는 것이.......

백준 수 묶기 1744번 [내부링크]

https://www.acmicpc.net/problem/1744주어진 수를 적절히 묶어, 최댓값을 갖게 하는 문제.[문제 풀기 전에 생각해야 할 것]어떻게 묶어야 값이 커지는 지를 파악해야 한다.예를 들어, [-3,-2, 0,1,2,3] 이라는 숫자가 있다면,(-3)*(-2), 0, 1, (2*3) 으로 만들고 더 해주면 가장 큰 값인 13을 갖는다.이 논리를 정리하면, 다음과 같다.1) 음수는 작은 수 끼리 묶는다.2) 양수는 큰 수 끼리 묶는다.3) 0은 더하나 마나 제외.[알고리즘]안타깝게도 위 논리에는 예외가 있다. 따라서 좀 더 명쾌하게 정리하는 작업이 필요하다.예를 들어, [1,1,1,1] 이라는 숫자가 있다면 어떨까? 위에 정의한 알고리즘을 사용하면 (1*1)+(1*1)&#x3.......

백준 10610번 (30) [내부링크]

https://www.acmicpc.net/problem/10610주어진 숫자를 잘 조합하여 가장 큰 30의 배수로 만드는 문제.[문제 풀기전에 생각할 것]30의 배수가 가능한 경우와 불가능한 경우를 나누어 생각해본다.초등학생 때 배우는 사실만으로도 충분히 문제에 대한 접근이 가능하다..1. 30의 배수가 되기 위해서는 반드시 '0' 이라는 숫자가 포함되어야 한다.2. 30의 배수가 되기 위해서는 반드시 모든 숫자의 합이 3의 배수여야 한다.그렇다면 가장 큰 수는 어떻게 찾을까?주어진 숫자가 1,2 조건을 만족한다고 가정하자.그럴 경우, 맨 뒤의 숫자를 0으로만 고정한다면 어떤 값이라도 30의 배수가 된다.따라서 가장 큰 수부터 나열하.......

백준 잃어버린 괄호 1541번 [내부링크]

https://www.acmicpc.net/problem/1541[문제 풀기 전 생각할 것]수식이 나열되어있을 때, 괄호를 어디에 쳐야하는 지를 파악한다.1+2-3+4+5+6-7+8+9 라는 수열이 주어지면, 괄호는 다음과 같이 쳐야 한다.1+2-(3+4+5+6)-(7+8+9)즉, -부호일 때 괄호를 열고 다시 -부호를 만날 때 괄호를 닫아준다.물론, 끝까지 -부호를 안만날 수도 있기 때문에 수의 끝에 도달해도 괄호를 닫는다.논리는 비교적 쉬우나, 구현할 때는 조금 짜증나는 문제가 될 수 있다.[Python 3.x]#백준 #baekjoon #online #judge #algorithm #coding #test #잃어버린 #괄호 #1541 #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

백준 부등호 2529번 [내부링크]

https://www.acmicpc.net/problem/25291. 전수조사를 진행한다면 시간복잡도는 10! 이라는 것을 알 수 있음. (순열로 풀 수 있음.)2. 하지만, 부등호가 만족되지 않는다면 더 이상 깊이 탐색할 필요가 없음. (Branch and bound나 backtracking을 떠올리는 것이 일반적)3. 최댓값과 최솟값을 찾으면 되기 때문에 함수를 분할하는 것이 타당.[Python 3.x]#백준 #baekjoon #online #judge #greedy #algorithm #coding #test #부등호 #2529 #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

백준 한줄로 서기 1138번 [내부링크]

https://www.acmicpc.net/problem/11381. Permutation을 이용해도 Pass 할 확률이 높다. 제한시간이 2초기 때문. 다만, 메모리 제한이 128MB 이기 때문에, 모든 Permutation을 저장해두고 사용하는 방식은 바람직하지 못함.2. Permutation은 무식하게 해결하는 방법이므로 Greedy한 접근이라고 볼 수 없음.3. 이 문제의 핵심 아이디어는 작은 숫자부터 나열할 경우 어디에 나열해야 하는지 위치를 바로 결정할 수 있다는 것!4. 작은 숫자부터 나열할 경우, 왼쪽 빈 자리의 갯수 == 나보다 큰 숫자의 갯수 라는 규칙이 성립함.5. 이유를 잘 생각해보면 다음과 같음. 작은 숫자부터 나열하기 때문에, 현재 숫자를 나열할 때에는 반드시.......

백준 DNA 1969번 [내부링크]

https://www.acmicpc.net/problem/1969주어진 DNA 문자열에서 Hamming Distance의 합이 최소가 되도록 하는 문제.1. 가장 많이 등장하는 뉴클레오티드('문자')를 세고 그 값을 Max로 설정. 가장 많이 등장하는 문자가 H.D가 최소가 되도록 하므로 DNA 결과(result)에 포함시킨다.2. 하나의 뉴클레오티드가 결정될 때마다 H.D의 값은 N - Max 만큼 증가한다.3. 시간복잡도 : O(N*M) ~ O(N)[Python 3.x]#백준 #baekjoon #online #judge #greedy #algorithm #coding #test #DNA #1969 #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

백준 문자열 1120번 [내부링크]

https://www.acmicpc.net/problem/11201. B의 부분 문자열 중에서 A 문자열과 가장 일치하는 부분을 찾는다.2. A의 문자열의 앞 뒤에 B의 문자열과 일치하도록 삽입한다. (문제 풀이에 필요 없음.)3. 시간 복잡도 : O(25*25/4)= O(1), 사이즈가 너무 작음.[Python 3.x]#백준 #baekjoon #online #judge #algorithm #coding #test #문자열 #차이 #1120 #온라인 #저지 #코딩 #테스트 #코테 #알고리즘

백준 거스름돈 5585번 [내부링크]

https://www.acmicpc.net/problem/55851. 1000엔으로 물건을 산 후 거스름돈을 받는데, 동전이 최소가 되...

[Vue-CLI] CLI로 작성된 SPA 배포하기 [내부링크]

1. 배포 준비하기https://cli.vuejs.org/guide/deployment.html#netlify공식 사이트에 자세히 나와있습...

백준 ATM 11399번 [내부링크]

https://www.acmicpc.net/problem/11399모든 사람의 ATM 대기시간의 합이 최소가 되도록 설정하는 문...

백준 동전0 11047번 [내부링크]

1. price[] 에 맞춰, 동전의 개수를 최소로 주는 문제.2. pirce는 오름차순으로 정렬되어있기 때문에 가...

[Javascript] 비동기 처리 패턴 Callback, Promise, Async await [내부링크]

1. 비동기 처리 패턴자바스크립트는 비동기 처리를 해결하기 위해 끊임없이 새로운 기법을 개발했습니다....

[Vue-CLI] Async-await로 비동기 처리하기 [내부링크]

1. 비동기 처리 패턴에 대한 글https://blog.naver.com/pjok1122/2216458827732. Async-await로 리팩...

[Vue-CLI] 외부 라이브러리를 컴포넌트화 하기 [내부링크]

1. 외부라이브러리 모듈화Vue.js는 React에 비해 자료가 많이 부족한 편입니다. 따라서 Vue.js 관련 ...

[Vue-CLI] Vue plugin 만들기 [내부링크]

1. plugin 이란?https://kr.vuejs.org/v2/guide/plugins.html공식 사이트에 자세하게 나와있지만, 간단하...

[Vue-CLI] 공통 컴포넌트 만들기 (Refactoring 1) [내부링크]

먼저 웹 페이지의 모습을 보시죠.News | Ask | Jobs 를 눌렀을 때 각각 NewsView, AskView, Jobs...

[Vue-CLI] High Order Component 만들기 (Refactoring 2) [내부링크]

1. HOC(하이오더 컴포넌트)란?컴포넌트의 코드 마저 재사용하는 고급 기술을 HOC라고 합니다. 현재...

[Vue-CLI] Mixin을 이용한 리팩토링 [내부링크]

1. Mixin이란?Mixin은 OOP, django 등 다양한 분야에서 등장하지만, Vue.js에서의 Mixin은 여러 ...

[Vue-CLI] Spinner Component 사용하기, vue router 라우터 네비게이션 가드 [내부링크]

1. 스피너란?웹 페이지의 로딩 상태를 나타내는 컴포넌트를 의미합니다.2. 스피너의 사용스피너 외부...

[Vue.js] Vue CLI 환경 만들기 [내부링크]

Vue CLI는 Front 개발을 쉽게 하기 위해 정돈된 폴더(?)들을 사전에 제공해주는 기능을 합니다.1. Vu...

[Vue-CLI] Vue-Router 사용하기 [내부링크]

어떤 식으로 소스 코드들을 관리하는 지를 중점적으로 다루겠습니다.만들고자 하는 사이트가 news, ask, ...

[Vue-CLI] Vuex 사용하기 [내부링크]

1. Vuex란?Vue에서 컴포넌트들 간의 데이터 전송은 반드시 props와 event를 통해서 전달한다고 했습니...

[Vue.js] 컴포넌트 통신 (Props, Event emit) [내부링크]

1. 컴포넌트 통신이란? 컴포넌트 간의 통신에는 규칙이 있습니다.(1) 부모에서 자식으로 데이터를 전달...

[Vue.js] 라우터(Vue Router) 설치 및 사용 (router-view, router-link) [내부링크]

1. Vue-router란?Router란 경로를 결정짓는 하드웨어나 소프트웨어를 의미합니다. Vue Router는 사용...

[Vue.js] Axios 사용하기 (Http 통신 라이브러리) [내부링크]

1. AxiosAxios는 Http 통신을 위해 개발된 라이브러리입니다. 기존에는 Ajax를 많이들 사용했지만, ...

[Vue.js] v-model, v-if, v-show, v-bind, v-on [내부링크]

Vue에서 제공하는 directive를 사용해 봅시다.우선 이처럼 여러 개의 데이터를 갖는 Vue를 생성했다고 합...

[Python / Django] Paginator 사용하기 [내부링크]

1. PaginatorPaginator란, 게시판과 같은 목록이 주어져있을 때, 페이지 당 몇 개의 글을 보여줄지 지...

[Vue.js] Vue란? Vue 설치하기 [내부링크]

1. Vue란?UI를 빠르게 개발하기 위해 만들어진 자바스크립트 프레임워크입니다. MVVM(Model-Vie...

[Vue.js] Reactivity 와 Vue 인스턴스 [내부링크]

1. Reactivity란?한글로 나타내면 반응성이라는 뜻입니다. '반응성'의 의미는 값이 변했을 때...

[Vue.js] 컴포넌트 (Component) [내부링크]

1. 컴포넌트란?Vue는 화면의 모든 요소를 컴포넌트로 생각합니다. 따라서 컴포넌트를 설계하고, 페이지 ...

한국사 고급 자격증 1급 취득하기, 한국사능력검정 1급 자격증 합격 후기, 시험 정보 (2021년 7급 공무원 한국사 시험 대체) [내부링크]

1. 합격인증고급을 응시했고 두 문제 틀리고 합격해, 1급 증서를 발급받았다.2. 시험정보<시험 요...

RESTful API, REST (Representational status transfer)란? 간단정리. [내부링크]

1. REST란?Representational status transfer의 약자이며 의미에서 유추할 수 있듯 '무언가&#x...

Django Rest Framework, DRF 사용하기. (Class based view로 구현) [내부링크]

1. DRF란?만약 Rest API가 뭔지 모른다면, 해당 포스팅을 먼저 참고하시기 바랍니다.https://bl...

[jQuery] Ajax 사용하기 [내부링크]

1. Ajax란?현재 웹 페이지는 그대로 두고 변경된 부분만을 보여주는 기술을 의미합니다. 불필요하게 모...

[Python / Django] pythonanywhere 배포하기(웹 호스팅) [내부링크]

1. 배포를 위한 설정Setting.py에서 다음을 수정하셔야 합니다.(1) DEBUG처음에는 DEBUG &#...

[자격증] 리눅스 마스터 2급 자격증 취득, 후기 (공부 방법, 공부시간, 꿀팁!) [내부링크]

1. 합격 인증당시 필기, 실기 점수는 제법 높은 편이었던 걸로 기억한다. 따라서 필자가 했던 공부 방법을 ...

[Python / Django] Class-based view, FormView 사용하기 [내부링크]

1. Class-based view란?view는 데이터를 처리하는 코드들을 모아놓은 부분입니다. 즉 사용자에게 보여지...

[Python / Django] Class based view, ListView 사용하기, humanize filter 사용하기 [내부링크]

1. Humanize 사용하기휴머나이즈 필터는 날짜, 숫자 등을 사람 눈에 더 친숙하게 바꿔주는 필터를 제공...

[Python / Django] Summernote 사용하기. WYSIWYG(위그지그) 에디터 [내부링크]

1. WYSIWYG란?WYSIWYG는 "What you see is what you get"의 약자로, 보는 것 ...

[Python / Django] DetailView, ListView, FormView, Form 활용하기 (오버라이딩, 전달 객체 추가, 인자 추가) [내부링크]

1. DetailView (Template에 추가 데이터 전달하기)DetailView는 queryset이나 model을 전달받고, ur...

[Python / Django] Decorator(데코레이터) 사용하기 [내부링크]

1. Decorator란?함수를 Wrapping 하는 기법으로 반복되는 코드를 줄일 수 있다는 장점이 있습니다. 물...

[Python / Django] 로그인 예외처리, 404 에러 페이지 전송하기 [내부링크]

1. 로그인 예외처리(Form)(1) 예외가 발생할 수 있는 문장입니다.(2) 예외가 발생한 경우, form의 error ...

[자격증] 정보처리기사 합격 후기 및 그 외 모든 정보 (공부시간, 공부방법, 2020년 필기 시험 변경) [내부링크]

1. 합격 인증과목 당 한 두 문제정도씩 틀렸으니, 아주 손쉽게 합격했다고 볼 수 있다. 점수를 인증하는 이...

[Python / Django] 태그(tag) 기능 사용하기 [내부링크]

1. 태그란?태그란, 해당 글이 어떤 관련이 있는지를 나타내기 위해 사용됩니다. 태그를 이용해서 검색과 ...

[Python / Django] Static(정적) 파일 사용하기 (이미지, 동영상 등) [내부링크]

1. static 파일이란?정적파일이란 의미로, 변하지 않는 파일을 의미합니다. 이미지, 동영상, CSS파일,...

[Database / SQLite3] 파이썬에서 데이터베이스 테이블 생성 및 삽입하기 (Create table, Insert, delete) [내부링크]

1. SQLite3란?SQLite는 MySQL나 PostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버...

[Database / SQLite3] 테이블 조회 (Select, where, order by), SQL Dump 만들기 [내부링크]

SQLite로 테이블을 조회하는 방법은 MySQL 또는 Oracle과 매우 유사합니다.1. 전체 조회- fetcho...

[Database / SQLite3] 튜플, 데이터(리스트) 변경 및 삭제 (Update, Delete) [내부링크]

이제 굉장히 익숙하리라 생각하고, 코드만 보여드리겠습니다.1. 데이터 수정(Update)- Auto commit이 ...

[HTML / CSS / Javascript] 꿀팁! 개발 시 도움되는 웹 사이트 추천, 크롬 검색엔진 등록 [내부링크]

1. codepen.io이 사이트는 HTML / CSS/ Javascript 코드를 별도의 설치 없이 테스트할 수 있습니...

HTML 기초 문법, <dl>, <dt> <dd> 태그 [내부링크]

1. dl, dt, dd 태그dl : definition list의 약자로 어떤 내용을 정의할 때 사용하는 태그입니다.dt : def...

HTML 기초 문법, <code> <pre> 태그 [내부링크]

<code>와 <pre> 태그 모두 이전에 사용하던 서체와 다른 서체가 사용됩니다.- pre는 이전에 ...

[Django] Django(장고) 개발환경 만들기 [내부링크]

1. Django란?장고란 파이썬 언어를 기반으로 하는 웹 Framework입니다. 프레임워크란, 서비스를 개발하...

[Python / Django] MTV의 M 만들기 [내부링크]

저는 toy_community 프로젝트의 users 앱 안에 있는 models.py를 수정하고 있습니다.(1) class users(model...

[Python / Django] Admin(관리자) 페이지 만들기 [내부링크]

1. Admin 페이지란?DB 테이블을 웹 페이지 상에서 손쉽게 관리할 수 있도록 도와주는 웹페이지를 의미...

[Python / Django] MTV 패턴의 T,V 생성하기 (Templates, Views) [내부링크]

1. Templates 생성하기템플릿이란 HTML 코드를 의미합니다. HTML 코드를 직접 만들어 사용해도 ...

시저 암호 / 카이사르 암호 (Caesar cipher) [내부링크]

1. 시저 암호란?약 기원전 100년 경에 로마의 장군인 Caesar가 동맹군들과 소통하기 위해 만든 암호입니...

[Python / Django] MTV 패턴, Templates 확장하기 (HTML 상속) [내부링크]

1. HTML 상속이란? 회원가입 페이지와 로그인 페이지를 생각해볼 때, html 코드는 아주 유사합니다. ...

[Python / Django] Form을 이용하여 로그인 구현하기 / Login 구현 (feat. session, template tag) [내부링크]

장고에서 Form을 얼마나 잘 다루냐가 실력을 좌우한다고 해도 과언이 아닐정도로 Form은 굉장히 중요한 ...

자바(JAVA) 자격증 OCJP 합격 후기와 그 외 모든 정보 (공부 방법, 공부 기간, 시험 정보, Dump) [내부링크]

먼저 합격인증부터 시작한다.필자는 2015년에 합격했지만, 2019년에도 똑같은 문제를 출제하고 있다더라.. ...

[Nodejs] lowdb 사용하기 [내부링크]

1. lowdb란?JSON이라는 파일 형식을 이용하여 데이터를 저장하는 아주 간단한 데이터베이스입니다. ...

[Nodejs] bcrpyt를 이용하여 암호화하기 [내부링크]

1. 패스워드 암호화사용자의 개인정보나 비밀번호는 외부로 유출될 경우 형사상의 책임을 물을 수도 있는...

[OAuth] OAuth 2.0 개념 정리 [내부링크]

1. OAuth 2.0 이란?OAuth란, 타사의 사이트에 대한 접근 권한을 얻고, 그 권한을 이용하여 개발할 수 ...

[OAuth 2.0] AccessToken 발급 과정 [내부링크]

지난 포스팅에서 AccessToken을 발급받기 위해서 Resource Server에게 Client를 등록하는 얘기를 다뤄...

[버전관리 시스템 / Git] revert와 reset의 차이점 [내부링크]

revert와 reset은 커밋을 취소할 때 사용한다고 많이들 알고 있습니다. 하지만 이 둘의 차이점에 대해서는 ...

[버전관리 시스템 / Git] rebase와 merge의 차이점 [내부링크]

많은 분들이 rebase는 고급기술이라고 생각합니다. 하지만 rebase는 생각보다 쉽습니다. rebase에 대해 알...

[OAuth 2.0] 구글 로그인 (Google login) 등록 절차 [내부링크]

구글 로그인 기능을 제공하기 위해, 내 웹 서비스를 구글에 등록하는 과정을 살펴봅시다.(1) https://conso...

[Python] pip install 에러 UnicodeDecodeError 해결하기 [내부링크]

1. UnicodeDecodeError란?python 3.x 버전에서는 웬만해선 이런 문제가 발생하지 않습니다. 하지만, p...

[Python] Python2, Python3 같이 사용하기. pip2 pip3 [내부링크]

파이썬 2.x를 사용하기 싫긴한데, 원하는 모듈이 python2에만 존재하는 경우가 간혹 있습니다.이런 경우에 ...

[Python] 가변 길이의 매개변수 함수 [내부링크]

1. 가변 매개변수(*args)매개변수를 *args로 하는 경우, 매개변수의 개수는 가변이지만, args는 튜플로 반...

[Python] 람다(lambda) 함수 사용하기 [내부링크]

1. lambda 함수람다 표현식은 기존의 함수식보다 메모리, 속도 면에서 우수하다. 파이썬은 OOP(객체 ...

[Python] 가상환경 설정(Virtual Environment) [내부링크]

1. 파이썬 가상환경파이썬을 2.x, 3.x를 설치하신 분들에게는 가상 환경 설정이 매우 중요합니다. 앞서 ...

[Python] CSV 파일 읽고 쓰기 [내부링크]

1. CSV 파일이란?Comma Separated Values의 약자입니다. 해석해보자면 콤마로 구분된 문자열 (파일...

[Python] 엑셀(Excel) 파일 입출력, XSL, XLSX 확장자 입출력 [내부링크]

1. 엑셀 파일엑셀 파일은 우리가 흔히 알고 있는 응용 소프트웨어 프로그램입니다. 즉, Optional한 프로...

[버전 관리 시스템 / Git ] 태그 사용하기 (git tag) [내부링크]

1. 태그란?깃에서 태그는 특정 커밋에 이름을 붙여주는 기능입니다. 배포(Release)할 때 주로 사용되며,...

[Nodejs] [Express] Passport를 이용하여 로그인 구현하기 [내부링크]

1. passportpassport는 세션을 내부적으로 처리해주는 아주 기특한 패키지입니다. 이 패키지를 이용하면 ...

[Nodejs] [Express] Passport를 이용하여 로그아웃 구현하기 [내부링크]

로그아웃은 상당히 간단하므로 바로 본론으로 얘기하고 끝내겠습니다.공식 홈페이지 : http://www.passpo...

[Nodejs] [Express] Flash message 사용하기 (휘발성) [내부링크]

1. Flash message란? 플래시 메시지란 한 번 출력되고 사라지는 메시지를 뜻합니다.2. 설치connect-flas...

[대만 여행] #3. 중정기념당 / 화산 1914 / 타이베이 101빌딩 / 샹산 [내부링크]

본 포스팅은 필자의 여행을 바탕으로 작성하였으나, 여행에 도움을 주고자 최대한 객관성을 반영하여 작...

[Nodejs] [Express] Application level middleware(미들웨어) 이해하기 [내부링크]

코드를 먼저 보고 내용을 하나하나 정리해보겠습니다.가장 기본적인 형태로, function을 미들웨어로 등록...

[Nodejs] [Express] 정적(static) 파일 서비스 하기 [내부링크]

1. Static File(정적 파일)정적 파일이란, 직접 값에 변화를 주지 않는 이상 변하지 않는 파일을 의미...

[Nodejs] [Express] express.Router을 이용한 routing 모듈화 [내부링크]

현재의 Routing 방식을 모듈로서 정리하는 방법에 대해 얘기해보고자 합니다.먼저 현재의 Routing 방식...

[Nodejs] [Express] 오류 처리 (Error Handling) [내부링크]

1. 오류처리 오류 처리란, 예상치 못한 요구가 들어왔을 때 서버에서 어떻게 대처할지를 미리 정해주는 ...

[버전 관리 시스템 / Git] git add, commit, status, log 명령어 사용하기 (add, commit, status, log) [내부링크]

1. 버전 관리 시스템버전 관리란, 소프트웨어를 새로운 기능이 추가되거나 버그를 수정할 때마다 소프트...

[버전 관리 시스템 / Git] git add, commit 자세히 알아보기 (add, commit) [내부링크]

1. git addgit add의 의미는 다음과 같습니다.(1) 해당 파일을 Staging area로 올린다.(2) 해당 파일을 in...

[Nodejs] 쿠키(Cookie) 사용하기 [내부링크]

1. 쿠키(Cookie) 쿠키는 크게 세 가지의 용도로 사용됩니다.(1) 세션 관리(Session management) 로그...

[MySQL] MySQL 패스워드 잃어버린 경우 해결방법 [내부링크]

블로그에 놀러오신 분이 해결을 힘들어하셔서 이렇게 포스팅해드립니다. zsess1님에게 도움이 되었으면 좋...

[버전 관리 시스템 / Git ] Git branch 생성, 병합, 사용하기 (branch, merge) [내부링크]

1. branch란? branch란 나뭇가지란 뜻으로, 버전 관리를 여러 갈래로 나누어 해야할 때 사용합니다. 예를...

[버전 관리 시스템 / Git ] Git branch 자세히 알아보기 [내부링크]

앞서 branch는 여러 기능들을 실험해보거나 가지를 나눠 버전을 관리해야 할 때 사용할 수 있다고 언급했습...

[Nodejs] [Express] 세션(Session) 사용하기 [내부링크]

1. 세션이란?앞서 설명했던 쿠키는 웹 브라우저에 저장되는 '키-밸류' 타입의 데이터라고 언급...

[버전 관리 시스템 / Git] github 사용하기 [내부링크]

1. Github이란?우리의 컴퓨터는 지역저장소(local storage) 라고 부릅니다. 우리의 작업물을 지역저장소...

[버전 관리 시스템 / Git ] SSH 이용하기 [내부링크]

1. SSH란?SSH는 Secure shell의 약자입니다. 보안 껍데기(?) 뭐 그런 해석이 되겠네요. SSH는 ...

[MySQL] Inner Join(내부 조인)과 Outer Join(외부 조인) [내부링크]

조인에는 생각보다 다양한 조인이 존재합니다. 그 중에서 제일 대표적인 두 가지만 살펴보도록 합시다.1....

[Nodejs] HTML 태그로 콤보박스 만들기 (Select tag) [내부링크]

콤보박스는 선택가능한 종류를 보여주는 유저 인터페이스 중 하나이다.사용 방법은 다음과 같다.(1) 콤보...

[Nodejs] SQL injection prevention(SQL 주입 보안) [내부링크]

1. 코드 주입(Code injection) 유효하지 않은 데이터를 처리함으로써 발생되는 버그를 활용하여 시스템...

[Nodejs] MySQL InsertID [내부링크]

INSERT 문이 실행됐을 때, 삽입된 데이터의 id를 얻는 방법입니다.(1) 실행된 결과를 저장하는 res...

[Nodejs] [Express] Express Framework 설치 및 사용예시 [내부링크]

1. Express Framework프레임워크란, 애플리케이션을 개발할 때 필요한 공통적인 요소들을 묶어서 제공...

[Nodejs] [Express] 주요 라우팅(Route) 정리 [내부링크]

1. 라우팅이란?라우팅이란 경로를 선택하는 것을 의미합니다. 보통 네트워크 패킷의 경로를 설정해주는 ...

[Nodejs] [Express] BodyParser 미들웨어 사용하기 [내부링크]

1. 미들웨어애플리케이션과 운영체제 사이에서 제공되는 서비스를 미들웨어라고 합니다.우리는 Expres...

[Nodejs] [Express] 미들웨어 만들기 [내부링크]

앞서 express에서의 미들웨어의 사용 방법은 다음과 같다고 했습니다.사실 middleware의 정체는 함수입니다...

[Nodejs] HTML form 태그 사용하기 [내부링크]

1. <form> 태그(1) submit 버튼을 눌렀을 때, 어떤 페이지로 안내해줄 것인지에 대한 내용은 action ...

[Nodejs] 웹 페이지에 원치 않는 태그 막는 방법 (sanitize-HTML) [내부링크]

메시지에 자바스크립트언어를 심어, 예기치 못한 동작을 야기하는 공격 기법들을 예방하는 방법에 대해 얘...

[MySQL] 설치 및 실습환경 구축 [내부링크]

1. MySQL 설치하기Window 운영체제에서 MySQL 설치 과정을 알아보겠습니다.Window에는 Bitn...

[MySQL] 테이블 만들기,수정하기 (Create table, Alter table) [내부링크]

1. DATABASEMySQL 테이블을 만들기 전에 database가 무엇인지 알아야합니다. database는 서...

[MySQL] Select, Insert, Update, Delete 명령어 [내부링크]

MySQL Server에게 원하는 자료들을 삽입, 수정, 삭제,조회 라는 질의를 하기 위해서는 SQL이라는 ...

[Nodejs] mysql 외부 모듈 사용하기 [내부링크]

nodejs는 mysql과 연동할 수 있는 내장 모듈이 존재하지 않습니다. 따라서 다른 소프트웨어 개발자가 개발...

[MySQL] 조인(Join) 명령어 [내부링크]

조인은 MySQL(RDBMS)에서 Select와 함께 가장 많이 쓰이는 옵션입니다. 데이터베이스에 존재하는...

[Javascript] 함수와 배열 사용하기 [내부링크]

1. 사용 방법타 언어의 함수사용법과 크게 다르지 않다. 함수는 코드의 리팩토링에 아주 중요한 요소이므로...

[Javascript] 객체 문법(간단하게 총정리) [내부링크]

1. 객체와 배열의 차이1) 객체의 각 요소는 property라고 부른다.2) 객체의 요소로는 property 뿐만 아니라...

[Javascript] js 파일 만들기 [내부링크]

js파일만들기 html 파일이 많아질 수록 html 파일 내에 <script> 파일을 작성해서 사용하는 것은 바...

[Javascript] jQuery CDN 사용하기 [내부링크]

1. jQuery란? - jQuery는 javascript 언어의 library이다. - jQuery의 사용법은 간단하며, javascript p...

[Javascript] jQuery 간단 정리 [내부링크]

1. 기본 문법- $는 jQuery에 접근하거나 정의할 때 사용하는 심볼이다.- $(selector) : html문서에서 sele...

[Node.js] 파일 시스템(File System) 모듈, 파일 입출력 [내부링크]

1. 모듈 사용 방법Node.js는 다양한 모듈이 구현되어있고, 해당 모듈을 사용하기 위해서 변수를 이용한...

[Node.js] console 객체 [내부링크]

1. console 객체 - console 객체에서 주로 사용하는 함수는 크게 3가지가 있다. - console.log(), console....

[Node.js] process 객체 [내부링크]

process 객체는 프로그램과 관련된 정보를 나타내는 객체로 속성과 메서드가 많다. 필요한 것은 API를 ...

[Node.js] url 모듈 사용하기 [내부링크]

1. url 모듈url 모듈은 url 정보를 객체로 가져와서 분석(parse)하거나, url 객체를 문자열로 바꿔주는 기...

[Node.js] favicon이란? favicon.ico란? [내부링크]

앞서 우리는 웹 서버 프로그램을 동작시키는 간단한 코드를 살펴봤습니다. 하지만 해당 코드에는 문제점이 ...

[Node.js] 동적 웹페이지 만들기(query String 사용하기), 리팩토링(refactoring) (1) [내부링크]

이 포스팅은 제 toy website를 기반으로 리팩토링하는 과정입니다. 대부분의 과정을 압축해서 작성했기 떄...

[Node.js] 동적 웹페이지 만들기(query String 사용하기), 리팩토링(refactoring) (2) [내부링크]

3) query String을 읽어들여 클라이언트가 요청하는 문자열 전송하기(1) template.js 파일에 작성된 함수...

[Nodejs] 동적 웹페이지 만들기, 리팩토링(refactoring), 확장성 [내부링크]

확장성이전 포스팅에서는 반복되는 코드를 사용하는 것을 줄이기 위해 반복되는 부분을 생성해주는 함수...

[Nodejs] 외부 패키지 pm2(process manager 2) 사용하기 [내부링크]

1. 패키지 매니저(PM) 패키지 매니저란 외부 패키지를 다운로드, 업데이트, 삭제, 의존성 관리 등을 한 ...

[Javascript] html과 javascript 사용 (2. event) [내부링크]

javascript를 사용하는 두 번째 방법은 event를 이용하는 것이다.1. event - 이벤트란 특정 행동이 발생...

[Javascript] 토글(toggle) 만들기, 웹 브라우저 제어, 리팩토링(refactoring) (내용 접기, 내용 펼치기) [내부링크]

1. 토글- 토글이란 하나의 설정 값에서 다른 값으로 변경하는 것을 의미한다.- 토글은 딱 두 가지의 상태만...

[CSS] Box model(박스 모델) [내부링크]

CSS box modelCSS box model은 다음과 같다.- padding은 border 내부의 여백이고, margin은 border...

[CSS] grid layout (그리드 레이아웃) 사용하기 [내부링크]

1. grid layout - 웹 사이트 layout을 만드는 도구 중 하나. - 아무 의미없는 <div> 태그나 <span...

[CSS] media query(미디어 쿼리)를 이용해 반응형 디자인 만들기 [내부링크]

1. 반응형 디자인과 media query웹 페이지는 다양한 웹 브라우저 뿐만 아니라 다양한 디바이스(스마트폰, ...

[CSS] 코드의 재사용성 (css 파일 만들기, <link> 태그) [내부링크]

1. 반복되는 코드앞서 만든 웹페이지를 먼저 보자.현재 보고 있는 웹페이지는 index.html이고 grid layout...

[JavaScript] 자바스크립트란 무엇인가? [내부링크]

Javascript란?위키피디아의 내용을 해석해서 정리해본 결과 다음과 같다.- HTML, CSS와 함께 Wo...

[JavaScript] html과 javascript 사용 (1. script 태그) [내부링크]

앞서 얘기했듯이, javascript는 html 위에서 동작하기 때문에 어디서부터 어디까지가 javascript 언어인지 ...

HTML 웹 사이트 만들기. 호스팅하는 방법 [내부링크]

1. 웹 호스팅웹 페이지를 배포하기 위해서는 서버 프로그램을 실행시켜야 한다. 하지만, 서버 프로그램을 ...

HTML 웹 사이트 만들기/웹 페이지 동작 과정/ Apache(아파치) 설치, 비트나미(bitnami WAMP) 설치 [내부링크]

1. 웹 서버 프로그램웹 브라우저로 웹 사이트에 접속하는 과정은 다음과 같다.1) 클라이언트가 웹 브라우...

웹 사이트에 댓글 기능 추가하기 (Disqus, livere) [내부링크]

1. 위젯 형식으로 빌려오기- Disqus와 livere가 댓글 서비스를 무료로 제공해주는 사이트이다.- https://d...

[Node.js] Node.js 설치 및 실습환경 구축 [내부링크]

Node.js는 javascript 언어를 서버 단에서 사용하여 클라이언트와 소통할 수 있는 웹페이지를 만들 수 있...

[Node.js] 웹 서버 프로그램 실행하기 [내부링크]

node.js는 apache 처럼 웹 서버의 기능을 포함하고 있다. 그 기능을 사용해보자.1. 웹 서버 프로그램&l...

CSS란 무엇인가? HTML과 CSS의 관계, CSS의 소개 [내부링크]

1. CSS - Cascading Style Sheets의 약자로 웹 문서의 스타일을 지정하고 꾸미는 데에 사용되는 언어...

CSS의 사용 방법 2가지 [내부링크]

1. <Style> 태그 사용1) head 태그 안에 <style> 태그를 삽입한다.2) style 태그 안에 꾸미...

[CSS] Selector(선택자) 선언 및 종류 [내부링크]

이전에 Selector로 HTML 태그를 지정하여, 디자인을 변경하는 법에 대해서 살펴봤다. 만약 n개의 데...

[CSS] Block level element(블록 레벨 요소), inline element(인라인 요소) [내부링크]

CSS에서 가장 중요한 개념은 박스 모델이다. 박스 모델을 이해하기 위해서는 block level과 inline을 이...

HTML 기초 문법, <ul>, <ol>, <li> 태그 [내부링크]

우리의 Index.html의 목표를 다시 한 번 상기해보자. Animals에 대한 내용을 작성하는 것까지는 어느 정...

HTML 기초 문법, 하이퍼링크 <a> 태그 [내부링크]

우리가 앞서 만든 HTML 파일의 목차에 하이퍼링크를 걸어서 다른 페이지로 이동시키는 일을 해보자.1...

HTML 기초 문법, <title> 태그 [내부링크]

1. <title> 태그- 웹 페이지의 이름을 지정하는 태그이다.빨간색 부분을 보면, 파일의 절대경로로 나...

HTML 기초 문법, HTML 문서와 구조 [내부링크]

1. 가장 빈도가 높은 html 태그최상위에 있는 html과 head의 경우 무려 100%의 사용률을 보인다. 즉, 모든 ...

HTML 기초 문법, 테이블 태그 <table> <tr> <td> [내부링크]

1. <table> 태그- table 태그는 단독으로 사용되지 않으며, <tr> <td> 태그와 함께 사용...

HTML 기본 문법, 이미지 태그 <img> [내부링크]

<img> 태그- 이미지 태그는 웹 페이지에 사진을 올리는 태그이다.- <img> 태그는 속성 값으로 ...

HTML 기초 문법, 동영상 삽입 <iframe>, <video> [내부링크]

1. 내 컴퓨터에 있는 동영상 삽입 (video 태그)- <video> 태그는 다양한 속성을 가지고 있다.- src, ...

자바(Java) 스택(Stack), 큐(Queue) 사용 방법 [내부링크]

1. 스택- LIFO 형태의 자료구조- 계산기, 뒤로가기 버튼 등에 구현.<사용 코드>- Collection...

Collection 프레임워크(Framework), ArrayList, LinkedList, HashSet, TreeSet [내부링크]

1. Collection Framework- 프로그램에서 사용할 데이터들을 효과적으로 관리할 수 있도록 다양한 기능의 ...

자바(Java) HashMap, LinkedHashMap, TreeMap [내부링크]

1. Map- 키(key)와 값(value)를 한 쌍으로 묶어 데이터를 처리하는 Collection Framework이다.- key는 ...

자바(Java) java.io.File 객체, 스트림(Stream) 클래스 [내부링크]

1. java.io- 자바로 입출력 기능을 구현하는 데에 필요한 다양한 클래스를 포함하고 있는 패키지- File 클...

자바(Java) InputStream, OutputStream, FileInputStream, FileOutputStream [내부링크]

1. InputStream- 바이트 단위의 입력스트림의 최상위 클래스(추상클래스)로서 스스로 객체 생성이 불가능...

자바(Java) 인코딩(Encoding), ASCII , EUC-KR, UTF-8 [내부링크]

1. ASCII 코드- 7bit를 가지고 알파벳, 공백, 쉼표, 특수문자 등을 표현하는 문차체계이다.- 최상위 ...

자바(Java) 문자 스트림(Reader/Writer), FileReader, FileWriter, PrintStream, PrintWriter [내부링크]

1. Reader/Writer- 문자 스트림으로 2바이트씩 데이터를 읽어서 처리하도록 하는 스트림의 최상위 추상클...

자바(Java) 쓰레드(Thread), 멀티 쓰레드(Multi Thread) [내부링크]

1. 쓰레드와 멀티쓰레드- 한 프로세스 내에서 동작하는 기능들을 서로 독립적인 기능들로 모듈화한 것으로 ...

자바(Java) 동기화(Synchronized) 처리 [내부링크]

1. 임계구역(Critical Region)- 두 개 이상의 쓰레드가 공유 데이터를 조작할 때, 원하지 않는 결과를 얻...

자바(Java) TCP/UDP, 소켓 프로그래밍, OSI 7계층 [내부링크]

소켓 프로그래밍은 네트워크에 대한 기본적인 지식이 필요하다. 블로그 카테고리에 있으니 참고하여도 좋다...

HTML 에디터(Editor) 설치 및 실습환경 구축 [내부링크]

1. HTML 이란?HTML(HyperText Markup Language)은 가장 단순한 형태의 웹 언어이다. 웹 서버에...

HTML 기초 문법, 태그 (<h1>, <u>, <meta>) [내부링크]

앞서 HTML 편집기인 Atom을 설치하는 과정을 살펴봤다. 이번에는 HTML에서 가장 많이 쓰이는 문법...

HTML 기초 문법, 줄바꿈<br> 태그, 문단<p> 태그, <strong> 태그 [내부링크]

현재 이렇게 작성되어있는 HTML 문서를 줄바꿈과 문단을 이용하여 깔끔하게 만들어보자.1. <p>...

자바(java) 벡터(Vector), Enumeration 사용방법 [내부링크]

1. Vector - 배열의 고정 길이라는 한계점을 보완한 Collection 클래스 - 객체만을 원소로 저장할 수 있...

자바(Java) 설치 및 환경설정 & 이클립스(Eclipse) 설치 [내부링크]

1. 자바 개발 환경(JDK) 설치https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downlo...