반응형

https://penthegom.tistory.com/46

 

LG 미니빔 PF50KA 리뷰!

집에 LG OLED TV가 있지만.. 쇼파에서 보는게 점점 귀찮아지고 있을때 쯤 눈에 들어온 게 빔프로젝터이다. 이전사용해봤던 제품은 대륙의 실수 라고 불렸던 가성비 빔프로젝터 GM60를 사용했었다. (새제품 기준 약..

penthegom.tistory.com

이전에 LG 빔프로젝터를 사고 소리가 너무 빈약하여 사운드바를 고민했다.

인터넷 기준 LG SK1 8만원대 사운드바와 JBL BAR STUDIO 14만원대..

일단 가격차이가 약 1.8배가 나는데.. 같은 LG라서 LG로 갈까 하다가 .. 코스트코에서 JBL BAR STUDIO 를 판매하는 것을 보고 덜컥 구매했다.. 심지어 인터넷가보다 싸다.. 129,900원인가.. 중고나라에서 12만원에 판매하던걸 봤던지라 ㅋㅋ

 

 

 

 

상세스펙을 살펴보자


사운드바 / USB / 30W / 2채널 / 블루투스 / 단자: HDMI, AUX, 옵티컬 / 벽걸이가능 / 가로:61.4cm / 듀얼우퍼 / 사운드모드 / ARC(오디오리턴채널)
등록월 2018.07

 

 

비록 타 사운드바에 비해 30W밖에 안되지만 안방 좁은곳에서 1W밖에 되지않는 빔프로젝터 소리보단 나을것같아 구매를 결정.

 

 

삼성서비스센터에서 AS접수 가능함!

 

 

 

상품 개봉

 

 

구성품

설명서 및 제품보증서, 사운드바 본품, 광케이블?, 충전어댑터, 충전케이블 4개, 리모컨, 일반 스피커연결선?, 벽걸이용 브라켓 및 나사

 

 

이상하게 충전케이블이 4개나 있다. 2개는 눈으로 봐도 우리나라용이 아니기때문에 패스~

 

 

근데 이 2개에서 뭔지 잘 몰라서 기존에 사용하고 있던 공기청정기의 A와 V를 보니.. 16A 250V.. 

저 2개는 10A 250V, 2.5A 250V 잉??뭐지.. 하다가 다른 콘센트에서 꼽아져있던거 확인해보니 2.5A 250V발견함. 그래서 그냥 2.5A 250V짜리로 결정

 

 

요건 리모컨이다.

 

 

설치한 사진 후기~ 빔프로젝터 드라마 나의나라와 함께 ㅎㅎ

후기

LG PF50KA 빔프로젝터에서 인터넷은 WIFI, 블루투스로 사운드바 연결 후 넷플릭스를 보는데 자꾸 사운드가 끊긴다.. 정말 몰입도 떨어지고 짜증났다.

폭풍검색 후 WIFI 주파수 대역대와 블루투스 주파수 대역대가 동일한 대역을 사용하여 간섭이 일어난다고 한다.

 

 

먼저 애플에서 제공하는 방법이다.

무선 간섭을 줄이는 방법

다음과 같은 일반적인 조치를 취해 더 깨끗하고 강한 무선 신호를 잡을 수 있습니다.

  • Wi-Fi 기기와 Wi-Fi 라우터를 서로 더 가까운 곳으로 옮깁니다. 서로 연결되어 있는 Bluetooth 기기를 더 가까운 곳으로 옮깁니다. 
  • 전원 케이블, 전자 레인지, 형광등, 무선 비디오 카메라, 무선 전화기 등 흔히 볼 수 있는 간섭 요인 근처에서 무선 기기를 사용하지 않습니다.
  • 동일한 무선 주파수 대역을 사용하는 활성 기기의 수를 줄입니다. Bluetooth 및 Wi-Fi 기기는 모두 2.4GHz 대역을 사용하지만, 2.4GHz 대신 5GHz 대역을 사용할 수 있는 Wi-Fi 기기가 많습니다. Wi-Fi 라우터에서 두 대역을 모두 지원하는 경우 Wi-Fi 기기를 5GHz 대역에 더 많이 연결하면 도움이 될 수 있습니다. 일부 듀얼 밴드 라우터에서는 자동으로 이렇게 관리하기도 합니다.
  • 다른 Wi-Fi 채널을 사용하도록 Wi-Fi 라우터를 구성하거나, Wi-Fi 라우터에서 간섭이 가장 적은 채널을 검색하도록 합니다. 대부분의 라우터는 시동될 때 또는 재설정될 때 자동으로 간섭이 가장 적은 채널을 검색합니다.

컴퓨터에서 USB 3 기기를 사용 중인 경우 근처의 무선 기기에 간섭을 일으킬 가능성을 다음과 같은 방법으로 제한할 수 있습니다.

  • 각 USB 3 기기에 고품질의 차폐된 USB 케이블을 사용합니다.
  • USB 허브를 비롯한 USB 3 기기를 무선 기기에서 더 멀리 떼어 놓습니다.
  • USB 3 기기를 컴퓨터의 Wi-Fi 안테나에서 가장 멀리 떨어진 포트에 연결합니다. 예를 들어 컴퓨터 후면에 포트가 있는 경우 되도록 가운데에서 가장 가까운 USB 포트를 사용합니다. 컴퓨터 측면에 포트가 있는 경우 전면에서 가장 가까운 USB 포트를 사용하는 것이 좋습니다.
  • 사용하지 않는 USB 3 기기를 모두 끕니다.

무선 신호 경로에 있는 물리적 장애물을 피합니다. 예를 들어 Bluetooth 마우스와 컴퓨터 사이에 있는 금속 표면으로 인해 마우스의 성능이 저하될 수 있으며, Wi-Fi 라우터와 Wi-Fi 기기 사이에 있는 철근 강화 콘크리트 바닥으로 인해 Wi-Fi 성능이 저하될 수 있습니다.

  • 간섭의 가능성이 낮은 물질: 목재, 유리 및 대다수 합성 물질
  • 간섭의 가능성이 중간 정도인 물질: 물, 벽돌, 대리석
  • 간섭의 가능성이 높은 물질: 석고, 콘크리트, 방탄 유리
  • 간섭의 가능성이 매우 높은 물질: 금속

 

본인이 검색한 결과는 아래방법들이 있다.

조건에 따라 아래 방법을 시도해보자

 

방법 1. (5G 와이파이 없으면 못함)

인터넷 WIFI를 2G가 아닌 5G로 잡으면 간섭이 사라질것이라고 한다. 기기의 wifi를 5G로 잡아보자.

 

방법 2. 

공유기 설정에서 WIFI 2.4GHz 대역의 channel width를 auto나 40MHz가 아닌 20MHz로 설정하시면 블루투스와 충돌이 나지 않는다고 한다. 최대한 주파수 대역을 조절해서 간섭이 최대한 없게 하자.

 

방법 3.

빔프로젝터(또는 TV)의 인터넷을 WIFI를 쓰지 않고 유선으로 연결한다. 가장 확실한 방법이다. 단점은 선을 연결할 수 없는 환경이면 하지 못한다.

 

 

나는 방법 1이 가능해서 5G로 잡아도 간섭이 심하더라.. 방법2는 뭔가 복잡한거 같고.. 방법3이 가능한 조건이라 아예 방법3으로 했는데, 끊김없이 잘 된다!!

 

 

 

총평

사운드가 좋아 구매했지만 거진 밤에 안방에서 사용하기 때문에 크게 틀어놓고 본적이 손에 꼽는다..ㅋㅋㅋㅋ

일단 베이스 조절이 가능해서 만족하고, 잘들려서 만족한다.. 영화볼맛 나는군! ㅋㅋ

단점은 wifi, 블투 간섭 잘 모르면 개빡칠듯. 본인이 그랬음..ㅋㅋ

 

 

끝.

 

 

 

 

 

반응형
반응형

일반 날면도기 쓰는게 슬슬 귀찮아지고 있을 때 마침 전기면도기를 써볼까? 하게 되었다. 어떤 전기면도기를 써야할지 종류가 많아 고민하였다. 난 수염이 굵고.. 억세고.. 또 아침면도후 그날 밤이 되면 "야 면도 안했냐?" 라는 소리를 들을 정도로 굉장히 빨리 자란다.. 폭풍 검색을 시작하게 되어 구매까지 하게 되었다.

 

각종 커뮤니티에서 검색해보니 절삭력 기준 파나소닉 >> 브라운 >> 필립스 이라고 한다.

파나소닉은 일본불매로 제외시키고.. 

절삭력, 피부손상도 등등 나의 수염에 맞는 브라운이라는 브랜드를 선택하게 되었다.

 

브라운 전기면도기는 여러 제품들이 있는데 아래 표를 참고해보자

 

3시리즈 5만원짜리 부터 시작해서 7시리즈 15만원, 9시리즈 24만원.. 점점 눈이 올라가서 비교 하게 되었다.

 

 

그냥 신제품 사서 써보자 라는 마음에 2019년 8월에 출시된 신규 시리즈 8시리즈를 접하여 사게 되었다.

 

 

7시리즈의 날과 기능 9시리즈의 본체(프레임?) 을 합쳐놓고 8시리즈라고 하더라..

아무튼 새제품이라고 하니ㅋㅋ cc와 s의 차이는 세척스테이션 차이이고 가격은 약 3만원이니 그냥 cc로 구매!

 

 

브라운 시리즈8 8390cc

상세 스펙
전기면도기 / 왕복식(일자형) / 4헤드 / 충전식 / 전체방수 / 면도타입: 건식, 습식 / 1시간충전 / 60분사용 / 배터리: 리튬이온 / 잠금기능 / 트리머 / 프리볼트 / 충전거치대 / LED디스플레이 / 울트라액티브리프트 / 옵티포일 / 싱크로소닉테크놀로지 / 오토센싱테크놀로지 / 세척충전스테이션 / 멀티헤드락 / 색상:프리미엄실버블루
등록월 2019.08

 

위 스펙은 다나와에서 복붙함..

gsshop에서 이것저것 포인트와 쿠폰 먹이니 약 21만원 쯔음에 구매 완료!

 

 

 

개봉기!

아디다스 무슨 가방을 사은품으로 준다고 하였는데 저렇게 뒤에 있더라..

 

 

 

오예 80명 랜덤에게 주는 꾸까 꽃다발 쿠폰까지 ~ ㅎㅎ

 

 

 

아디다스 가방 생각보다 짱짱하네요. 각이 잡혀있음.



상품 박스

 

 

 

개봉하자마자 세척액이 보임.

 

 

 

구성품은

설명서, 세척액, 세척스테이션, 충전기, 본품, 케이스, 세척솔

 

 

 

세척액은 뚜껑 따고 세척스테이션 하단에 장착하면 됨. 사진 못찍음. ㅋㅋ 충전은 자석으로 착 붙는다. 근데 삐뚫어진건 이상한게 아니라 원래 저렇게 삐뚫어져 있다.. 세척사용은 본품 꼽고 전원버튼 한번 누르면 된다

 

 

 

사용 총평

 

날면도기만 약 15년 사용했다가 처음으로 전기면도기를 사용했는데.. 확실히 날면도기보다는 면도가 잘 안된다.

그러나!

날면도기 사용할때는 셰이빙 폼 묻히고, 날면도 하고 면도 끝나면 털고. 날을 좀 닦고.. 솔찍히 면도날 털고 닦는데 시간 제일 많이 가는거 같다. 

전기면도기는 그냥 건식으로도 사용가능하니. 깎고 충전스테이션에 끼고 세척눌러놓으면 끝이다.

 

 

장점은 시간이 엄청 단축되고 편하다.

단점은 날면도기보다는 안밀린다. 피부트러블 날 수가 있다. 면도날이 비싸다.

 

쓰고보니 단점이 더 많은것 같지만 장점이 강력하다.

끝.

반응형
반응형

Java Persistence API (일명 JPA)는 객체와 관계 데이터베이스 간의 데이터를 관리, 유지 및 액세스하기위한 Java 사양입니다. 최대 절전 모드는 JPA 사양을 구현하는 ORM (Object Relational Mapping) 도구입니다.

이 예에서는 Hibernate를 퍼시스턴스 제공자로 사용하여 Spring을 JPA와 통합하는 방법을 학습합니다.

이 응용 프로그램에 사용되는 도구 및 기술은 다음과 같습니다.

 

  • Spring 4.3.7.RELEASE
  • Hibernate 5.2.9.Final
  • JPA 2.1
  • MySQL Connector 6.0.5
  • MySQL Server 5.7.12
  • Eclipse Neon.3
  • Maven 3.3.9
  • JavaSE 1.8

Spring, Hibernate 및 JPA를 사용하여 간단한 독립형 애플리케이션을 작성해 봅시다.

프로젝트 구조

다음 maven 프로젝트 구조를 검토하십시오.

배우기-  이클립스에서 maven 프로젝트를 만드는 방법 .

Jar dependencies

pom.xml파일을 편집 하고 다음과 같이 Spring, Hibernate 및 MySQL 종속성을 추가 하십시오 .

pom.xml

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
  http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.boraji.tutorial.hibernate</groupId>
  <artifactId>spring-hibernate-jpa-example</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>spring-hibernate-jpa-tutorial</name>
  <url>http://maven.apache.org</url>
 
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
 
  <dependencies>
    <!-- Spring Context -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <!-- Spring ORM -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <!-- Mysql Connector -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>6.0.5</version>
    </dependency>
    <!-- Hibernate 5.2.9 Final -->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>5.2.9.Final</version>
    </dependency>
    <!-- Apache Commons DBCP -->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-dbcp2</artifactId>
      <version>2.1.1</version>
    </dependency>
  </dependencies>
 
  <build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
cs

JPA Entity class

다음과 같이 패키지 @Entity아래  클래스를  작성하십시오 com.boraji.tutorial.spring.entity.

Person.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.boraji.tutorial.spring.entity;
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
 
@Entity
@Table(name = "PERSONS")
public class Person {
 
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Long id;
 
   @Column(name = "FIRST_NAME")
   private String firstName;
 
   @Column(name = "LAST_NAME")
   private String lastName;
 
   @Column(name = "EMAIL")
   private String email;
 
   public Person() {}
   
   public Person(String firstName, String lastName, String email) {
      this.firstName = firstName;
      this.lastName = lastName;
      this.email = email;
   }
 
   // Getter and Setter methods
}
cs

Data Access Object (DAO) class

다음과 같이 패키지 @Repository 아래에 클래스를  작성하십시오  com.boraji.tutorial.spring.dao.

PersonDao.java

 

1
2
3
4
5
6
7
8
9
10
package com.boraji.tutorial.spring.dao;
 
import java.util.List;
 
import com.boraji.tutorial.spring.entity.Person;
 
public interface PersonDao {
   void add(Person person);
   List<Person> listPersons();
}
cs

PersonDaoImp.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.boraji.tutorial.spring.dao;
 
import java.util.List;
 
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
 
import org.springframework.stereotype.Repository;
 
import com.boraji.tutorial.spring.entity.Person;
 
/**
 * @author imssbora
 *
 */
@Repository
public class PersonDaoImp implements PersonDao {
 
   @PersistenceContext
   private EntityManager em;
 
   @Override
   public void add(Person person) {
      em.persist(person);
   }
 
   @Override
   public List<Person> listPersons() {
      CriteriaQuery<Person> criteriaQuery = em.getCriteriaBuilder().createQuery(Person.class);
      @SuppressWarnings("unused")
      Root<Person> root = criteriaQuery.from(Person.class);
      return em.createQuery(criteriaQuery).getResultList();
   }
 
}
cs

@PersistenceContext주석은 주입하는 데 사용됩니다 EntityManagerDOA 클래스로 객체를.

 

 

Service class

 다음과 같이 패키지 @Service 아래에 클래스를  작성하십시오  com.boraji.tutorial.spring.service.

PersonService.java

1
2
3
4
5
6
7
8
9
10
package com.boraji.tutorial.spring.service;
 
import java.util.List;
 
import com.boraji.tutorial.spring.entity.Person;
 
public interface PersonService {
    void add(Person person);
    List<Person> listPersons();
}
cs

PersonServiceImp.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.boraji.tutorial.spring.service;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import com.boraji.tutorial.spring.dao.PersonDao;
import com.boraji.tutorial.spring.entity.Person;
 
/**
 * @author imssbora
 *
 */
@Service
public class PersonServiceImp implements PersonService {
 
   @Autowired
   private PersonDao userDao;
 
   @Transactional
   @Override
   public void add(Person person) {
      userDao.add(person);
   }
 
   @Transactional(readOnly = true)
   @Override
   public List<Person> listPersons() {
      return userDao.listPersons();
   }
 
}
cs

 

persistence.xml 파일

폴더 persistence.xml아래  파일을 src/main/java/META-INF작성하고 다음 코드를 작성하십시오.

persistence.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
  version="2.1">
 
  <persistence-unit name="LOCAL_PERSISTENCE">
    <description> Spring Hibernate JPA Configuration Example</description>
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
 
    <properties>
      <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver" />
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/BORAJI" />
      <property name="javax.persistence.jdbc.user" value="root" />
      <property name="javax.persistence.jdbc.password" value="admin" />
      <property name="hibernate.show_sql" value="true" />
      <property name="hibernate.hbm2ddl.auto" value="update" />
    </properties>
 
  </persistence-unit>
</persistence>
cs

이것은 persistence.xml를 구성하는 데 사용되는 EntityManager응용 프로그램 서버 또는 독립 실행 형 응용 프로그램 내에서. 데이터베이스 (연결 URL, 사용자 이름, 비밀번호 등) 및 ORM 관련 정보가 들어 있습니다.

Spring configuration

 패키지 @Configuration 아래에 클래스를  만듭니다  com.boraji.tutorial.spring.config.

@EnableTransactionManagement 트랜잭션 관리 기능을 사용하려면 주석으로이 구성 클래스에 주석을 답니다  .

AppConfig.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.boraji.tutorial.spring.config;
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScans;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalEntityManagerFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
 
/**
 * @author imssbora
 *
 */
@Configuration
@EnableTransactionManagement
@ComponentScans(value = { @ComponentScan("com.boraji.tutorial.spring.dao"),
      @ComponentScan("com.boraji.tutorial.spring.service") })
public class AppConfig {
 
   @Bean
   public LocalEntityManagerFactoryBean geEntityManagerFactoryBean() {
      LocalEntityManagerFactoryBean factoryBean = new LocalEntityManagerFactoryBean();
      factoryBean.setPersistenceUnitName("LOCAL_PERSISTENCE");
      return factoryBean;
   }
 
   @Bean
   public JpaTransactionManager geJpaTransactionManager() {
      JpaTransactionManager transactionManager = new JpaTransactionManager();
      transactionManager.setEntityManagerFactory(geEntityManagerFactoryBean().getObject());
      return transactionManager;
   }
}
cs

Run application

위의 spring-hibernate-jpa 구성을 테스트 할 기본 클래스를 작성하십시오.

MainApp.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.boraji.tutorial.spring;
 
import java.util.List;
 
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 
import com.boraji.tutorial.spring.config.AppConfig;
import com.boraji.tutorial.spring.entity.Person;
import com.boraji.tutorial.spring.service.PersonService;
 
/**
 * @author imssbora
 *
 */
public class MainApp {
   public static void main(String[] args) {
      AnnotationConfigApplicationContext context = 
            new AnnotationConfigApplicationContext(AppConfig.class);
 
      PersonService personService = context.getBean(PersonService.class);
 
      // Add Persons
      personService.add(new Person("Sunil""Bora""suni.bora@example.com"));
      personService.add(new Person("David""Miller""david.miller@example.com"));
      personService.add(new Person("Sameer""Singh""sameer.singh@example.com"));
      personService.add(new Person("Paul""Smith""paul.smith@example.com"));
 
      // Get Persons
      List<Person> persons = personService.listPersons();
      for (Person person : persons) {
         System.out.println("Id = "+person.getId());
         System.out.println("First Name = "+person.getFirstName());
         System.out.println("Last Name = "+person.getLastName());
         System.out.println("Email = "+person.getEmail());
         System.out.println();
      }
 
      context.close();
   }
}
cs

Output

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Hibernate: create table PERSONS (id bigint not null auto_increment, EMAIL varchar(255), FIRST_NAME varchar(255), LAST_NAME varchar(255), primary key (id)) engine=MyISAM
Hibernate: insert into PERSONS (EMAIL, FIRST_NAME, LAST_NAME) values (?, ?, ?)
Hibernate: insert into PERSONS (EMAIL, FIRST_NAME, LAST_NAME) values (?, ?, ?)
Hibernate: insert into PERSONS (EMAIL, FIRST_NAME, LAST_NAME) values (?, ?, ?)
Hibernate: insert into PERSONS (EMAIL, FIRST_NAME, LAST_NAME) values (?, ?, ?)
Hibernate: select person0_.id as id1_0_, person0_.EMAIL as EMAIL2_0_, person0_.FIRST_NAME as FIRST_NA3_0_, person0_.LAST_NAME as LAST_NAM4_0_ from PERSONS person0_
Id = 1
First Name = Sunil
Last Name = Bora
Email = suni.bora@example.com
 
Id = 2
First Name = David
Last Name = Miller
Email = david.miller@example.com
 
Id = 3
First Name = Sameer
Last Name = Singh
Email = sameer.singh@example.com
 
Id = 4
First Name = Paul
Last Name = Smith
Email = paul.smith@example.com
cs

 

Download Sources

spring-hibernate-jpa-example.zip18.19 KB

반응형

'JAVA/SPRING > SPRING' 카테고리의 다른 글

Spring Framework: annotation 정리  (0) 2017.12.04
Spring Web MVC, @Controller 어노테이션 정리  (0) 2017.12.04
반응형

개발하다가 재기동과 새로고침을 아무리해도 적용이 되지 않는 경우가 있다.

2가지방법을 제안한다.

 

 

1. F12를 눌러보면 개발자 도구가 뜬다. 그 상태에서 새로고침 버튼을 우클릭하면 아래와 같이 된다.

캐시 비우기 및 강력 새로고침 하면 된다~

 

 

2. F12를 누른 후 빨간 네모인 Disable cache 에 체크를 한다.

 

끝.

반응형
반응형

https://penthegom.tistory.com/48

 

[Spring Boot]Spring MVC JSP 웹 튜토리얼(인텔리제이용 intelliJ) - 1

이 글에서는 스프링 부트 프레임 워크를 사용하여 스프링 MVC 웹 애플리케이션을 만들고 부트 스트랩하는 방법을 설명하겠다. JSP를 웹 애플리케이션의보기로 사용합니다. 이 응용 프로그램에 사용되는 도구 및 기..

penthegom.tistory.com

앞서 기본 Spring Boot MVC 를 만들어봤다. 이어서 이제 Mybatis와 PostgreSQL을 연결하는 방법을 설명하겠다.

이 응용 프로그램에 사용되는 도구 및 기술은 다음과 같다.

 

  • Spring Boot 2.1.x
  • Tomcat Embedded (Spring Boot 내장)
  • JavaSE 1.8
  • Maven
  • Mybatis
  • PostgreSQL 9.6.15
  • IntelliJ IDEA Ultimate 

 

프로젝트 구조(TREE)

1. DB설치 및 테이블 생성

Oracle, PostgreSQL, MySQL 등등 DB툴을 설치 해야한다. 여기서는 PostgreSQL을 사용하기로 한다.

이번 튜토리얼을 하기 위해 test라는 DB스키마를 생성한다.

 

1
2
3
4
5
6
7
8
CREATE TABLE test (
    id integer NOT NULL,
    name varchar NULL,
    CONSTRAINT test_pkey PRIMARY KEY (id)
);
 
INSERT INTO test (id, "name")
VALUES(1'펜다곰'),(2'홍길동');
cs

 

2. 각종 소스

 

- pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.penthegom.example</groupId>
    <artifactId>penthegomdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>penthegomdemo</name>
    <description>Demo project for Spring Boot</description>
 
    <properties>
        <java.version>1.8</java.version>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
 
        <!-- JSP -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
 
</project>
 
cs

 

- application.yml(application.properties 를 application.yml로 변경후 적읍시다! 한글주석과 트리형태로 관리가 됩니다.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp
    static-path-pattern: /resources/**
  #DB 설정
  datasource:
    url: jdbc:postgresql://127.0.0.1:5432/tutorial
    driver-class-name: org.postgresql.Driver
   username: penthegom
   password: penthegom
  #JSP 바로적용 설정
  devtools:
    livereload:
      enabled: true
#로그 레벨
logging:
  level:
    # 쿼리 보기
    com.penthegom.example.penthegomdemo: DEBUG
 
cs

 

 

- DatabaseConfig.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.penthegom.example.penthegomdemo.config;
 
import javax.sql.DataSource;
 
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.transaction.annotation.EnableTransactionManagement;
 
@Configuration
@MapperScan(basePackages="com.penthegom.example.penthegomdemo.mapper")
@EnableTransactionManagement
public class DatabaseConfig {
 
    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        sessionFactory.setMapperLocations(resolver.getResources("classpath:mapper/postgresql/*.xml"));
        return sessionFactory.getObject();
    }
    
    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) throws Exception {
      final SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);
      return sqlSessionTemplate;
    }
}
cs

 

- HelloController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.penthegom.example.penthegomdemo.controller;
 
import com.penthegom.example.penthegomdemo.dto.Test;
import com.penthegom.example.penthegomdemo.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
import java.util.List;
 
@Controller
public class HelloController {
 
    @Autowired
    TestService testService;
 
    @RequestMapping("/")
    public String index() {
 
        return "index";
    }
 
    @RequestMapping("/query")
    public @ResponseBody
    List<Test> query() throws Exception{
        return testService.getAll();
    }
}
 
cs

 

- Test.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.penthegom.example.penthegomdemo.dto;
 
public class Test {
    private String id;
    private String name;
 
    public String getId() {
        return id;
    }
 
    public void setId(String id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
}
cs

 

- TestMapper.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.penthegom.example.penthegomdemo.mapper;
 
import java.util.List;
 
import com.penthegom.example.penthegomdemo.dto.Test;
import org.springframework.stereotype.Repository;
 
@Repository
public interface TestMapper {
 
    public List<Test> getAll() throws Exception;
    
}
 
cs

 

- TestService.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.penthegom.example.penthegomdemo.service;
 
import java.util.List;
 
import com.penthegom.example.penthegomdemo.dto.Test;
import com.penthegom.example.penthegomdemo.mapper.TestMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
 
@Service
public class TestService {
 
    @Autowired
    TestMapper testMapper;
    
    public List<Test> getAll() throws Exception{
        return testMapper.getAll();
    }
}
 
cs

 

- test.xml

1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.penthegom.example.penthegomdemo.mapper.TestMapper">
    <select id="getAll" resultType="com.penthegom.example.penthegomdemo.dto.Test">
        SELECT * FROM test
    </select>
</mapper>
cs

 

3. 실행 결과

 

반응형
반응형

spring boot 1.x 버전대

- application.properties

server.jsp-servlet.init-parameters.development=true

 

spring boot 2.x 버전대

dependency 추가

1
2
3
4
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
cs

application.properties 추가

JSP 바로적용 설정

devtools.livereload.enabled=true

반응형
반응형

colorscripter

colorscripter의 사용법은 쉽습니다. https://colorscripter.com/ 웹페이지에 접속해서 코드를 붙여넣고 우측하단의 '클립보드 복사' 버튼을 눌러서 복사한 다음 포스팅 내에 붙여 넣으면 끝.

 

 

포스팅 내에서 html로 보기 눌러서 해당 값 아래에 html 붙여넣기 하면 끝!

반응형
반응형

이 글에서는 스프링 부트 프레임 워크를 사용하여 스프링 MVC 웹 애플리케이션을 만들고 부트 스트랩하는 방법을 설명하겠다. JSP를 웹 애플리케이션의보기로 사용합니다.

이 응용 프로그램에 사용되는 도구 및 기술은 다음과 같습니다.

 

 

  • Spring Boot 2.1.x
  • Tomcat Embedded (Spring Boot 내장)
  • JavaSE 1.8
  • Maven
  • IntelliJ IDEA Ultimate 

 

프로젝트 구조(TREE)

 

1. 프로젝트 추가

 

2. 실행해보기(오류 발생)

 

우측 상단에 빨간펜으로 칠한 실행버튼을 누르면 프로젝트를 받자마자 에러가 납니다.

properties 에 db관련정보가 없어서 에러가 납니다. 

방법은 db접속정보를 넣어주거나 일단 tutorial이니 어노테이션 하나로 처리합시다.

 

@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})

 

 

실행이 잘 성공한다면 아래와같이 나온다.

 

 

 

3. 각종 소스

 

- pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.penthegom.example</groupId>
    <artifactId>penthegomdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>penthegomdemo</name>
    <description>Demo project for Spring Boot</description>
 
    <properties>
        <java.version>1.8</java.version>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>
 
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
 
        <!-- JSP -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
 
</project>
 
cs

- application.yml(application.properties 를 application.yml로 변경후 적읍시다! 한글주석과 트리형태로 관리가 됩니다.)

1
2
3
4
5
6
spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp
    static-path-pattern: /resources/**
cs

- index.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP - Hello World Tutorial - penthegom</title>
</head>
<body>
<%= "Hello World!" %>
Hi penthegom !!
</body>
</html>
cs

 

- test.html

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
resources test
</body>
</html>
cs

 

- HelloController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.penthegom.example.penthegomdemo.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
@Controller
public class HelloController {
 
    @RequestMapping("/")
    public String index() {
        return "index";
    }
}
 
cs

 

4. 실행 결과 화면

 

################## 필자가 하면서 에러 났던 부분 혹은 참고사항 ##################

 

문제 -> No mapping for GET /WEB-INF/views 어쩌구 저쩌구... 와 함께 404에러

해결 -> pom.xml에 jsp읽을 수 있는 디펜던시 추가(위 pom.xml 47라인 참고)

 

문제 -> jsp나 html수정시 재기동 해야만 적용되는거 바로바로 적용되게 하려면?

해결 -> https://penthegom.tistory.com/50 글 참고

 

문제 -> 이클립스에서 maven 관련 꼬임현상(?)이 빈번하게 일어나 항상 project-clean, maven clean 등 인텔리제이에서도 무언가가 적용이 되지 않을때.. 예) 디펜던시 추가 후 라이브러리가 제대로 추가가 되지 않는다면?

 

해결 -> 빨간 새로고침 버튼 클릭(Reimport All Maven Projects)

 

반응형
반응형

 

IntelliJ에서 Ctrl + Alt + L 을 누르면, 자동 정렬을 해준다. (macOS: Cmd + Alt + L)

 

그리고, 설정을 통해서 자동 정렬 스타일을 지정할 수 있다.

 

 

그 중, 사소한 설정 하나로 너무나 큰 감동을 주 었으니..

 

 

JavaScript Object Properties 정렬 설정이다..

 

정렬 전 코드는 아래와 같다.

 

 

 

이제 블럭 설정을 하고, 마법의 단축키를 누르면 !?

 

 

 

말 그대로, Object의 Property를 Colon에 맞추서 정렬 해준다.

 

예전에는 일일히 스페이스바를 두들기며 맞춰줬는데..

 

이렇게 간단한 단축키 하나로 자동 정렬을 해준다니.. 사소하지만 너무 감동스럽다.

 

 

단축키를 설정하려면, 아래 메뉴로 이동한다.

 

File | Settings | Editor | Code Style for Windows and Linux

 

IntelliJ IDEA | Preferences | Editor | Code Style for macOS

 

JavaScript를 선택하고, 아래의 Align object properties On colon 으로 설정해준다.

 

 

#인텔리제이 #IntelliJ #align #자동정렬

 

2018.07

 

언젠가 IntelliJ가 업데이트 되면서 위치가 아래와 같이 변경 되었다.

 



출처: https://jason-moon.tistory.com/136 [Programmer]

반응형
반응형

집에 LG OLED TV가 있지만.. 쇼파에서 보는게 점점 귀찮아지고 있을때 쯤 눈에 들어온 게 빔프로젝터이다.

이전사용해봤던 제품은 대륙의 실수 라고 불렸던 가성비 빔프로젝터 GM60를 사용했었다.

(새제품 기준 약 9~10만원)

어디껀진 잘 모르겠지만 해상도도 800x480에 소음도 큰 제품을 몇번 써보지도 못하고 약 한달정도 사용하다가 중고나라로 보냈다. 이유는 생각보다 화질이 너무 구려서.. 글씨가 자글자글해서 눈나빠지겠다는 생각이 들었기 때문이다.

 

고로 이번에는 적어도 FHD(1920x1080) 정도 되는 해상도를 구입하고자 이번 제품을 고르게 되었다.

HD(1280x720)인 PH550 을 고려했었으나 기왕 사는김에 좋은제품 써보자.. 라는마음에 약 20만원을 더주고 구매했다. LG TV대용처럼 LG전용 WebOS 3.5 를 사용할 수 있다는 것도 무척 컸다. (넷플릭스, 티빙, 푹, 유투브 등 사용 가능한 점)

위메프에서 쿠폰 이것저것 받고 해서 약 59만원에 구입할 수 있었다.

결론은 매우만족이다.ㅎㅎ

 

LG공식 홈페이지에서 제공하는 스펙은 

 

 

 

제품 리뷰에 앞서 안시가 무엇인지 검색해서 찾아보았다. (참고)

 

 루멘 (lumen) : 광원 즉 전구나 LED 또는 촛불 등의 밝기를 나타내는 수치, 단위는 lm
    '루멘'은 단순히 램프 자체의 밝기만 나타낼뿐이고, 실제 멀리 떨어진 스크린에 투사 되는 밝기를 나타 낼수 없습니다.  그래서 '안시루멘' 이라는 단위가 만들어 집니다. 

 안시루멘 (ANSI lumen) : 보통 줄여서 '안시' 라고 부르고 있음. 스크린을 9개 면적으로 나누고, 실제 투사된 밝기의 평균을 내어 산출합니다 (스크린의 크기가 감안된 실제 빔의 밝기)
 1 안시루멘은 대략 1개 촛불 밝기
 좁은 실내는 400안시루멘 / 일반 가정은 600 ~ 1,000 정도 / 넓은 강당은 2,000 안시가 적당.
 쇼핑몰 같은데서 소형 빔의 밝기를 조금이라도 높게 표시 하려고 '루멘'으로 적어 놓는곳이 있으며, 이경우 완전히 다른 단위이고, 수치도 높게 나타나므로 일종의 속임수라고 할수 있으니 햇갈리지 말아야 합니다.

 

 

 

 택배받은 배송 박스

 

포장은 뾱뾱이가 정말 많이 싸져있어서 파손이란 있을수 없어 보였음

 

 

구매처 리뷰랑 QNA를 보면 정품라벨이 붙여져 있지 않다는 언급이 있어 혹시나 했는데 붙여져 있진않았다.

중고나라에서 미개봉 파는사람중 LG정품라벨이 붙여져 있는 사진을 보긴 했다. 씰은 확실하게 있긴 하다.

 

 

LG 정품라벨은 없지만 박스 뒷면에 제조년월이 2019년 9월이라는 점이 매우 마음에 들었다..ㅎㅎ 제일 최근제품이라니..

 

 

제품을 언박싱 하고 구성품을 살펴보면 아래와 같이 리모컨, 건전지, 제품보증서와 설명서, 충전잭, 충전기, 제품 으로 구성되어 있다.

 

 

제품의 뒷 단자와 리모컨이다.

 

 

단자를 살펴보면 일반 LG TV 단자와 비슷한 느낌입니다. 특이한 점이 있다면 usb type-C 가 있다는것?..

LAN포트는 기본적으로 와이파이 연결을 지원하기 때문에 잘 안쓰는것같고,

여기서 사용할건 충전선 밖에 안보입니다. ㅋㅋ 가끔 다운받은 영상 보기 위한 USB정도..

리모컨은 그냥 LG TV와 비슷한 리모컨인것 같습니다. 요즘 나오는 매직리모컨이 훨씬 편하긴 한데...ㅎㅎ

 

 

제품 초기셋팅 화면 ㅎㅎ

 

 

무슨 이용약관이 있는데.. 잘 몰라서 나중에 동의하기...ㅋ

 

 

이게.. 셋톱박스로 기본설정을 해놨는데.. 매번 프로젝트 킬때마다 지지직 화면이라서 좀 짜증난다.. 

설정을어떻게 바꾸는지 잘 모르겠음.. 아래와 같이 나옴.

 

 

테스트를 위해 YouTube를 켜서 확인..

 

 

1080p로 아주 잘 재생되는걸 볼 수 있다!!

 

넷플릭스도 테스트!

 

 

아주 잘 되는 걸로!!

 

### 사게 된 계기

거실 쇼파가 점점 불편해져서 안방 침대에서 보고싶다는 욕구가 생김

 

### 장점

1. LG WebOS 를 사용할 수 있어 YouTube, 넷플릭스 이용 가능

2. 내장배터리가 있으므로 선없이 약 2시간 사용 가능

3. 집 침대에 누워서 영화관처럼 볼 수 있다.

 

### 단점

1. 빔프로젝터가 침대 바로 옆에서 쏴서 생각보다 소음이 잘들림..

2. 사운드가 좀 빈약함.. LG SK1 사운드바 살까 고려중.. 8만원정도..

3. 배터리로 구동시 밝기가 약함. (밝기를 높이면 왠지 1시간도 안갈 느낌..)

 

끝.

반응형

+ Recent posts